aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch
new file mode 100644
index 00000000..9ad0aeac
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch
@@ -0,0 +1,72 @@
+From 080d54258a5a3ef9fb506140504f07bacf493b30 Mon Sep 17 00:00:00 2001
+From: Anthony Koo <Anthony.Koo@amd.com>
+Date: Thu, 18 Oct 2018 15:03:56 -0400
+Subject: [PATCH 0735/2940] drm/amd/display: Expose target backlight level
+
+[Why]
+DM may want to understand any backlight optimizations
+applied, so DM needs a way to query from the HW both
+the real current backlight, which may be value during
+transition.
+And also target backlight, which may be after some
+backlight optimizations applied.
+
+[How]
+Add interface to query current and target backlight levels
+Target level may indicate backlight level after backlight
+optimization and reductions are applied.
+
+Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
+Reviewed-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dce/dce_abm.c | 12 ++++++++++++
+ drivers/gpu/drm/amd/display/dc/inc/hw/abm.h | 1 +
+ 2 files changed, 13 insertions(+)
+
+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 e9765bb38a8b..2a342eae80fd 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+@@ -276,6 +276,17 @@ static unsigned int dce_abm_get_current_backlight(struct abm *abm)
+ return backlight;
+ }
+
++static unsigned int dce_abm_get_target_backlight(struct abm *abm)
++{
++ struct dce_abm *abm_dce = TO_DCE_ABM(abm);
++ unsigned int backlight = REG_READ(BL1_PWM_TARGET_ABM_LEVEL);
++
++ /* return backlight in hardware format which is unsigned 17 bits, with
++ * 1 bit integer and 16 bit fractional
++ */
++ return backlight;
++}
++
+ static bool dce_abm_set_level(struct abm *abm, uint32_t level)
+ {
+ struct dce_abm *abm_dce = TO_DCE_ABM(abm);
+@@ -410,6 +421,7 @@ static const struct abm_funcs dce_funcs = {
+ .init_backlight = dce_abm_init_backlight,
+ .set_backlight_level_pwm = dce_abm_set_backlight_level_pwm,
+ .get_current_backlight = dce_abm_get_current_backlight,
++ .get_target_backlight = dce_abm_get_target_backlight,
+ .set_abm_immediate_disable = dce_abm_immediate_disable
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h b/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h
+index 458a641dc796..abc961c0906e 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h
+@@ -58,6 +58,7 @@ struct abm_funcs {
+ bool use_smooth_brightness);
+
+ unsigned int (*get_current_backlight)(struct abm *abm);
++ unsigned int (*get_target_backlight)(struct abm *abm);
+ };
+
+ #endif
+--
+2.17.1
+