aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
new file mode 100644
index 00000000..b4d6c74c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4277-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch
@@ -0,0 +1,79 @@
+From e6636a3d42b3291d037aa242bbe59cd040ea5caf Mon Sep 17 00:00:00 2001
+From: Leo Li <sunpeng.li@amd.com>
+Date: Mon, 21 Oct 2019 14:58:47 -0400
+Subject: [PATCH 4277/4736] drm/amdgpu: Add DC feature mask to disable
+ fractional pwm
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+[Why]
+
+Some LED panel drivers might not like fractional PWM. In such cases,
+backlight flickering may be observed.
+
+[How]
+
+Add a DC feature mask to disable fractional PWM, and associate it with
+the preexisting dc_config flag.
+
+The flag is only plumbed through the dmcu firmware, so plumb it through
+the driver path as well.
+
+To disable, add the following to the linux cmdline:
+amdgpu.dcfeaturemask=0x4
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204957
+Signed-off-by: Leo Li <sunpeng.li@amd.com>
+Reviewed-by: Anthony Koo <anthony.koo@amd.com>
+Tested-by: Lukáš Krejčí <lskrejci@gmail.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
+ drivers/gpu/drm/amd/display/dc/dce/dce_abm.c | 4 ++++
+ drivers/gpu/drm/amd/include/amd_shared.h | 1 +
+ 3 files changed, 8 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index ff89ca40f82c..5a20ce0541c6 100755
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -725,6 +725,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
+ if (amdgpu_dc_feature_mask & DC_MULTI_MON_PP_MCLK_SWITCH_MASK)
+ init_data.flags.multi_mon_pp_mclk_switch = true;
+
++ if (amdgpu_dc_feature_mask & DC_DISABLE_FRACTIONAL_PWM_MASK)
++ init_data.flags.disable_fractional_pwm = true;
++
+ init_data.flags.power_down_display_on_boot = true;
+
+ #ifdef CONFIG_DRM_AMD_DC_DCN2_0
+diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+index 4a22b50bd38a..2946998fe6a4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+@@ -402,6 +402,10 @@ static bool dce_abm_init_backlight(struct abm *abm)
+ /* Enable the backlight output */
+ REG_UPDATE(BL_PWM_CNTL, BL_PWM_EN, 1);
+
++ /* Disable fractional pwm if configured */
++ REG_UPDATE(BL_PWM_CNTL, BL_PWM_FRACTIONAL_EN,
++ abm->ctx->dc->config.disable_fractional_pwm ? 0 : 1);
++
+ /* Unlock group 2 backlight registers */
+ REG_UPDATE(BL_PWM_GRP1_REG_LOCK,
+ BL_PWM_GRP1_REG_LOCK, 0);
+diff --git a/drivers/gpu/drm/amd/include/amd_shared.h b/drivers/gpu/drm/amd/include/amd_shared.h
+index 8340ec0ab792..dc7eb28f0296 100644
+--- a/drivers/gpu/drm/amd/include/amd_shared.h
++++ b/drivers/gpu/drm/amd/include/amd_shared.h
+@@ -143,6 +143,7 @@ enum PP_FEATURE_MASK {
+ enum DC_FEATURE_MASK {
+ DC_FBC_MASK = 0x1,
+ DC_MULTI_MON_PP_MCLK_SWITCH_MASK = 0x2,
++ DC_DISABLE_FRACTIONAL_PWM_MASK = 0x4,
+ DC_PSR_MASK = 0x8,
+ };
+
+--
+2.17.1
+