diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5042-drm-amd-display-Implement-backlight_ops.get_brightne.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5042-drm-amd-display-Implement-backlight_ops.get_brightne.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5042-drm-amd-display-Implement-backlight_ops.get_brightne.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5042-drm-amd-display-Implement-backlight_ops.get_brightne.patch new file mode 100644 index 00000000..2a3dc5b9 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5042-drm-amd-display-Implement-backlight_ops.get_brightne.patch @@ -0,0 +1,79 @@ +From d8eb60aab13f40734d2e739749fdd653a95151d5 Mon Sep 17 00:00:00 2001 +From: David Francis <David.Francis@amd.com> +Date: Thu, 19 Jul 2018 11:25:05 -0400 +Subject: [PATCH 5042/5725] drm/amd/display: Implement + backlight_ops.get_brightness + +[Why] +This hook that is supposed to read the actual backlight value +is used in a few places throughout the kernel to setup or force +update on backlight + +[How] +Create a dc function that calls the existing abm function, and +call that function from amdgpu + +Signed-off-by: David Francis <David.Francis@amd.com> +Reviewed-by: Harry Wentland <Harry.Wentland@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++++- + drivers/gpu/drm/amd/display/dc/core/dc_link.c | 9 +++++++++ + drivers/gpu/drm/amd/display/dc/dc_link.h | 2 ++ + 3 files changed, 17 insertions(+), 1 deletion(-) + +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 685b2fea..1c8088e 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -1437,7 +1437,12 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) + + static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd) + { +- return bd->props.brightness; ++ struct amdgpu_display_manager *dm = bl_get_data(bd); ++ int ret = dc_link_get_backlight_level(dm->backlight_link); ++ ++ if (ret == DC_ERROR_UNEXPECTED) ++ return bd->props.brightness; ++ return ret; + } + + static const struct backlight_ops amdgpu_dm_backlight_ops = { +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +index 5658eb1..186131b 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +@@ -2026,6 +2026,15 @@ enum dc_status dc_link_validate_mode_timing( + return DC_OK; + } + ++int dc_link_get_backlight_level(const struct dc_link *link) ++{ ++ struct abm *abm = link->ctx->dc->res_pool->abm; ++ ++ if (abm == NULL || abm->funcs->get_current_backlight_8_bit == NULL) ++ return DC_ERROR_UNEXPECTED; ++ ++ return (int) abm->funcs->get_current_backlight_8_bit(abm); ++} + + bool dc_link_set_backlight_level(const struct dc_link *link, uint32_t level, + uint32_t frame_ramp, const struct dc_stream_state *stream) +diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h +index 2351681..44cd31f 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_link.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_link.h +@@ -141,6 +141,8 @@ static inline struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_ + bool dc_link_set_backlight_level(const struct dc_link *dc_link, uint32_t level, + uint32_t frame_ramp, const struct dc_stream_state *stream); + ++int dc_link_get_backlight_level(const struct dc_link *dc_link); ++ + bool dc_link_set_abm_disable(const struct dc_link *dc_link); + + bool dc_link_set_psr_enable(const struct dc_link *dc_link, bool enable, bool wait); +-- +2.7.4 + |