diff options
author | Tony Tascioglu <tony.tascioglu@amd.com> | 2022-12-12 18:20:33 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2023-01-17 23:40:28 +0300 |
commit | e0886e1fa53d0c705ff14df14769ddcc6e0a20ca (patch) | |
tree | a35aeea9c55ed7c483a34657ef981fea2b14290c /drivers/gpu/drm/amd/display/dc/bios | |
parent | 40774ad1c460ada855068f67da549f78ecb136e8 (diff) | |
download | linux-e0886e1fa53d0c705ff14df14769ddcc6e0a20ca.tar.xz |
drm/amd/display: Skip backlight control delay on external powered links
[Why]
When an eDP panel is powered externally from a different GPU, we can avoid
waiting for hardware sequencing delays when switching the backlight on/off
as the display backlight is no longer powered by the original source.
[How]
This commit extends the 'link_powered_externally' variable to allow
bypassing hardware delays for additional backlight commands and force the
backlight on/off when a link is powered by another GPU.
Tested-by: Daniel Wheeler <Daniel.Wheeler@amd.com>
Reviewed-by: Felipe Clark <felipe.clark@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Tony Tascioglu <tony.tascioglu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/bios')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/bios/command_table2.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/bios/command_table2.h | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c index 9f11dcf67c28..2c278b626256 100644 --- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c @@ -1698,14 +1698,14 @@ static enum bp_result bios_parser_enable_lvtma_control( struct dc_bios *dcb, uint8_t uc_pwr_on, uint8_t panel_instance, - uint8_t bypass_powerdown_wait) + uint8_t bypass_panel_control_wait) { struct bios_parser *bp = BP_FROM_DCB(dcb); if (!bp->cmd_tbl.enable_lvtma_control) return BP_RESULT_FAILURE; - return bp->cmd_tbl.enable_lvtma_control(bp, uc_pwr_on, panel_instance, bypass_powerdown_wait); + return bp->cmd_tbl.enable_lvtma_control(bp, uc_pwr_on, panel_instance, bypass_panel_control_wait); } static bool bios_parser_is_accelerated_mode( diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c index 91adebc5c5b7..1ef9e4053bb7 100644 --- a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c +++ b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c @@ -987,7 +987,7 @@ static enum bp_result enable_lvtma_control( struct bios_parser *bp, uint8_t uc_pwr_on, uint8_t panel_instance, - uint8_t bypass_powerdown_wait); + uint8_t bypass_panel_control_wait); static void init_enable_lvtma_control(struct bios_parser *bp) { @@ -1000,7 +1000,7 @@ static void enable_lvtma_control_dmcub( struct dc_dmub_srv *dmcub, uint8_t uc_pwr_on, uint8_t panel_instance, - uint8_t bypass_powerdown_wait) + uint8_t bypass_panel_control_wait) { union dmub_rb_cmd cmd; @@ -1014,8 +1014,8 @@ static void enable_lvtma_control_dmcub( uc_pwr_on; cmd.lvtma_control.data.panel_inst = panel_instance; - cmd.lvtma_control.data.bypass_powerdown_wait = - bypass_powerdown_wait; + cmd.lvtma_control.data.bypass_panel_control_wait = + bypass_panel_control_wait; dc_dmub_srv_cmd_queue(dmcub, &cmd); dc_dmub_srv_cmd_execute(dmcub); dc_dmub_srv_wait_idle(dmcub); @@ -1026,7 +1026,7 @@ static enum bp_result enable_lvtma_control( struct bios_parser *bp, uint8_t uc_pwr_on, uint8_t panel_instance, - uint8_t bypass_powerdown_wait) + uint8_t bypass_panel_control_wait) { enum bp_result result = BP_RESULT_FAILURE; @@ -1035,7 +1035,7 @@ static enum bp_result enable_lvtma_control( enable_lvtma_control_dmcub(bp->base.ctx->dmub_srv, uc_pwr_on, panel_instance, - bypass_powerdown_wait); + bypass_panel_control_wait); return BP_RESULT_OK; } return result; diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table2.h b/drivers/gpu/drm/amd/display/dc/bios/command_table2.h index acb7cc69f699..b6d09bf6cf72 100644 --- a/drivers/gpu/drm/amd/display/dc/bios/command_table2.h +++ b/drivers/gpu/drm/amd/display/dc/bios/command_table2.h @@ -97,7 +97,7 @@ struct cmd_tbl { enum bp_result (*enable_lvtma_control)(struct bios_parser *bp, uint8_t uc_pwr_on, uint8_t panel_instance, - uint8_t bypass_powerdown_wait); + uint8_t bypass_panel_control_wait); }; void dal_firmware_parser_init_cmd_tbl(struct bios_parser *bp); |