From: Taekki Kim Date: Thu, 19 Apr 2018 01:48:04 +0000 (+0900) Subject: [9610] bts: reduce peak bandwidth of MFC/DPU for FHD480fps X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6d7c45e0c902d3287800c17677da36d8935db95f;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [9610] bts: reduce peak bandwidth of MFC/DPU for FHD480fps Currently, the frame drop occurring when full HD 480fps encoding because the bandwidth from the MFC and DPU. The instantaneous high bandwidth of the MFC and DPU increase the latency of CPU. So, the priority and peak banwidth of MFC and DPU were limited on the full HD 480fps encoding scenario. These limitation does not hurt the MFC and DPU performance on a corresponding scenario. Change-Id: I61a4859d3913fc8015e47aa68567b437e30566fb Signed-off-by: Taekki Kim --- diff --git a/drivers/bts/bts-exynos9610.c b/drivers/bts/bts-exynos9610.c index f2ce5406d418..61d2fc748379 100644 --- a/drivers/bts/bts-exynos9610.c +++ b/drivers/bts/bts-exynos9610.c @@ -263,6 +263,34 @@ static struct bts_info exynos_bts[] = { .table[BS_DEFAULT].stat.timeout_en = true, .table[BS_DEFAULT].stat.timeout_r = 0x20, .table[BS_DEFAULT].stat.timeout_w = 0x20, + .table[BS_MFC_UHD].stat.scen_en = true, + .table[BS_MFC_UHD].stat.priority = 0xA, + .table[BS_MFC_UHD].stat.rmo = 0x20, + .table[BS_MFC_UHD].stat.wmo = 0x20, + .table[BS_MFC_UHD].stat.timeout_en = true, + .table[BS_MFC_UHD].stat.timeout_r = 0x20, + .table[BS_MFC_UHD].stat.timeout_w = 0x20, + .table[BS_G3D_PERFORMANCE].stat.scen_en = true, + .table[BS_G3D_PERFORMANCE].stat.priority = 0xA, + .table[BS_G3D_PERFORMANCE].stat.rmo = 0x20, + .table[BS_G3D_PERFORMANCE].stat.wmo = 0x20, + .table[BS_G3D_PERFORMANCE].stat.timeout_en = true, + .table[BS_G3D_PERFORMANCE].stat.timeout_r = 0x20, + .table[BS_G3D_PERFORMANCE].stat.timeout_w = 0x20, + .table[BS_CAMERA_DEFAULT].stat.scen_en = true, + .table[BS_CAMERA_DEFAULT].stat.priority = 0xA, + .table[BS_CAMERA_DEFAULT].stat.rmo = 0x20, + .table[BS_CAMERA_DEFAULT].stat.wmo = 0x20, + .table[BS_CAMERA_DEFAULT].stat.timeout_en = true, + .table[BS_CAMERA_DEFAULT].stat.timeout_r = 0x20, + .table[BS_CAMERA_DEFAULT].stat.timeout_w = 0x20, + .table[BS_FHD_480_ENCODING].stat.scen_en = true, + .table[BS_FHD_480_ENCODING].stat.priority = 0xA, + .table[BS_FHD_480_ENCODING].stat.rmo = 0x18, + .table[BS_FHD_480_ENCODING].stat.wmo = 0x18, + .table[BS_FHD_480_ENCODING].stat.timeout_en = true, + .table[BS_FHD_480_ENCODING].stat.timeout_r = 0x20, + .table[BS_FHD_480_ENCODING].stat.timeout_w = 0x20, }, [BTS_IDX_DIT] = { .name = "dit", @@ -470,9 +498,9 @@ static struct bts_info exynos_bts[] = { .table[BS_CAMERA_DEFAULT].stat.max_rmo = 0x1, .table[BS_CAMERA_DEFAULT].stat.max_wmo = 0x1, .table[BS_FHD_480_ENCODING].stat.scen_en = true, - .table[BS_FHD_480_ENCODING].stat.priority = 0x5, - .table[BS_FHD_480_ENCODING].stat.rmo = 0x20, - .table[BS_FHD_480_ENCODING].stat.wmo = 0x20, + .table[BS_FHD_480_ENCODING].stat.priority = 0x4, + .table[BS_FHD_480_ENCODING].stat.rmo = 0x10, + .table[BS_FHD_480_ENCODING].stat.wmo = 0x10, .table[BS_FHD_480_ENCODING].stat.max_rmo = 0x4, .table[BS_FHD_480_ENCODING].stat.max_wmo = 0x4, }, @@ -506,9 +534,9 @@ static struct bts_info exynos_bts[] = { .table[BS_CAMERA_DEFAULT].stat.max_rmo = 0x1, .table[BS_CAMERA_DEFAULT].stat.max_wmo = 0x1, .table[BS_FHD_480_ENCODING].stat.scen_en = true, - .table[BS_FHD_480_ENCODING].stat.priority = 0x5, - .table[BS_FHD_480_ENCODING].stat.rmo = 0x20, - .table[BS_FHD_480_ENCODING].stat.wmo = 0x20, + .table[BS_FHD_480_ENCODING].stat.priority = 0x4, + .table[BS_FHD_480_ENCODING].stat.rmo = 0x10, + .table[BS_FHD_480_ENCODING].stat.wmo = 0x10, .table[BS_FHD_480_ENCODING].stat.max_rmo = 0x4, .table[BS_FHD_480_ENCODING].stat.max_wmo = 0x4, }, @@ -699,7 +727,7 @@ static struct drex_info exynos_drex[] = { .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x2] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x3] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x4] = 0x000A0100, - .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x5] = 0x000A0039, + .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x5] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x6] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x7] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x8] = 0x000A0011, @@ -712,7 +740,7 @@ static struct drex_info exynos_drex[] = { .table[BS_FHD_480_ENCODING].stat.drex_timeout[0xF] = 0x000A0001, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[0] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[1] = 0x00C100C1, - .table[BS_FHD_480_ENCODING].stat.vc_timer_th[2] = 0x001D00C1, + .table[BS_FHD_480_ENCODING].stat.vc_timer_th[2] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[3] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[4] = 0x00C10009, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[5] = 0x000D0022, @@ -762,7 +790,7 @@ static struct drex_info exynos_drex[] = { .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x2] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x3] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x4] = 0x000A0100, - .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x5] = 0x000A0039, + .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x5] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x6] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x7] = 0x000A0100, .table[BS_FHD_480_ENCODING].stat.drex_timeout[0x8] = 0x000A0011, @@ -775,7 +803,7 @@ static struct drex_info exynos_drex[] = { .table[BS_FHD_480_ENCODING].stat.drex_timeout[0xF] = 0x000A0001, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[0] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[1] = 0x00C100C1, - .table[BS_FHD_480_ENCODING].stat.vc_timer_th[2] = 0x001D00C1, + .table[BS_FHD_480_ENCODING].stat.vc_timer_th[2] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[3] = 0x00C100C1, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[4] = 0x00C10009, .table[BS_FHD_480_ENCODING].stat.vc_timer_th[5] = 0x000D0022,