diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0735-drm-amd-display-Expose-target-backlight-level.patch new file mode 100644 index 00000000..9ad0aeac --- /dev/null +++ b/common/recipes-kernel/linux/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 + |