mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 22:03:17 +01:00
drm/amd/display: Apply correct panel mode when reinitializing hardware
[Why] When link training during engine recovery, ASSR might fail causing panel mode to be reset to default. This should not happen for eDP as it will prevent the panel from turning back on. [How] Added dp_panel_mode to struct dc_link to remember previously applied panel mode. Do not reset panel mode to default while performing link training if previously used panel mode = eDP. Reviewed-by: Nicholas Kazlauskas <[email protected]> Acked-by: Qingqing Zhuo <[email protected]> Signed-off-by: Michael Mityushkin <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
This commit is contained in:
1 parent
3cf7cd3f77
commit
56d8ce9d8c
3 files changed
+6
-1
No files matched your search
@@ -1454,6 +1454,7 @@ struct dc_link {
|
||||
|
||||
struct ddc_service *ddc;
|
||||
|
||||
enum dp_panel_mode panel_mode;
|
||||
bool aux_mode;
|
||||
|
||||
/* Private to DC core */
|
||||
|
||||
@@ -1596,7 +1596,10 @@ bool perform_link_training_with_retries(
|
||||
* Report and continue with eDP panel mode to
|
||||
* perform eDP link training with right settings
|
||||
*/
|
||||
cp_psp->funcs.enable_assr(cp_psp->handle, link);
|
||||
bool result;
|
||||
result = cp_psp->funcs.enable_assr(cp_psp->handle, link);
|
||||
if (!result && link->panel_mode != DP_PANEL_MODE_EDP)
|
||||
panel_mode = DP_PANEL_MODE_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode)
|
||||
ASSERT(result == DC_OK);
|
||||
}
|
||||
}
|
||||
link->panel_mode = panel_mode;
|
||||
DC_LOG_DETECTION_DP_CAPS("Link: %d eDP panel mode supported: %d "
|
||||
"eDP panel mode enabled: %d \n",
|
||||
link->link_index,
|
||||
|
||||
Reference in new issue
Block a user