mirror of https://gitee.com/openkylin/linux.git
drm/amd/display: Detach backlight from stream
[Why] Backlight is conceptually a property of links, not streams. All backlight programming is done on links, but there is a stream property bl_pwm_level that is used to restore backlight on dpms on and s3 resume. This is unnecessary, as backlight is already restored by hardware with no driver intervention. [How] Remove bl_pwm_level, and the stream argument to set_backlight Signed-off-by: David Francis <David.Francis@amd.com> Reviewed-by: Harry Wentland <Harry.Wentland@amd.com> Acked-by: Anthony Koo <Anthony.Koo@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
923a3743ab
commit
923fe49512
|
@ -1760,7 +1760,7 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd)
|
||||||
+ caps.min_input_signal * 0x101;
|
+ caps.min_input_signal * 0x101;
|
||||||
|
|
||||||
if (dc_link_set_backlight_level(dm->backlight_link,
|
if (dc_link_set_backlight_level(dm->backlight_link,
|
||||||
brightness, 0, 0))
|
brightness, 0))
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -2186,8 +2186,7 @@ int dc_link_get_backlight_level(const struct dc_link *link)
|
||||||
|
|
||||||
bool dc_link_set_backlight_level(const struct dc_link *link,
|
bool dc_link_set_backlight_level(const struct dc_link *link,
|
||||||
uint32_t backlight_pwm_u16_16,
|
uint32_t backlight_pwm_u16_16,
|
||||||
uint32_t frame_ramp,
|
uint32_t frame_ramp)
|
||||||
const struct dc_stream_state *stream)
|
|
||||||
{
|
{
|
||||||
struct dc *core_dc = link->ctx->dc;
|
struct dc *core_dc = link->ctx->dc;
|
||||||
struct abm *abm = core_dc->res_pool->abm;
|
struct abm *abm = core_dc->res_pool->abm;
|
||||||
|
@ -2202,10 +2201,6 @@ bool dc_link_set_backlight_level(const struct dc_link *link,
|
||||||
(abm->funcs->set_backlight_level_pwm == NULL))
|
(abm->funcs->set_backlight_level_pwm == NULL))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (stream)
|
|
||||||
((struct dc_stream_state *)stream)->bl_pwm_level =
|
|
||||||
backlight_pwm_u16_16;
|
|
||||||
|
|
||||||
use_smooth_brightness = dmcu->funcs->is_dmcu_initialized(dmcu);
|
use_smooth_brightness = dmcu->funcs->is_dmcu_initialized(dmcu);
|
||||||
|
|
||||||
DC_LOG_BACKLIGHT("New Backlight level: %d (0x%X)\n",
|
DC_LOG_BACKLIGHT("New Backlight level: %d (0x%X)\n",
|
||||||
|
@ -2633,11 +2628,6 @@ void core_link_enable_stream(
|
||||||
|
|
||||||
if (dc_is_dp_signal(pipe_ctx->stream->signal))
|
if (dc_is_dp_signal(pipe_ctx->stream->signal))
|
||||||
enable_stream_features(pipe_ctx);
|
enable_stream_features(pipe_ctx);
|
||||||
|
|
||||||
dc_link_set_backlight_level(pipe_ctx->stream->link,
|
|
||||||
pipe_ctx->stream->bl_pwm_level,
|
|
||||||
0,
|
|
||||||
pipe_ctx->stream);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,8 +147,7 @@ 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,
|
bool dc_link_set_backlight_level(const struct dc_link *dc_link,
|
||||||
uint32_t backlight_pwm_u16_16,
|
uint32_t backlight_pwm_u16_16,
|
||||||
uint32_t frame_ramp,
|
uint32_t frame_ramp);
|
||||||
const struct dc_stream_state *stream);
|
|
||||||
|
|
||||||
int dc_link_get_backlight_level(const struct dc_link *dc_link);
|
int dc_link_get_backlight_level(const struct dc_link *dc_link);
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,6 @@ struct dc_stream_state {
|
||||||
|
|
||||||
/* DMCU info */
|
/* DMCU info */
|
||||||
unsigned int abm_level;
|
unsigned int abm_level;
|
||||||
unsigned int bl_pwm_level;
|
|
||||||
|
|
||||||
/* from core_stream struct */
|
/* from core_stream struct */
|
||||||
struct dc_context *ctx;
|
struct dc_context *ctx;
|
||||||
|
|
Loading…
Reference in New Issue