diff options
| author | Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> | 2023-06-12 14:06:39 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-08-09 09:46:04 -0400 |
| commit | ec8e59cb4e0c1a52d5a541fff9dcec398b48f7b4 (patch) | |
| tree | 57bb02ea9e59ff2ae444c836c7d2ba5e2f22b203 /drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c | |
| parent | drm/amdgpu: Add FRU sysfs nodes only if needed (diff) | |
| download | linux-ec8e59cb4e0c1a52d5a541fff9dcec398b48f7b4.tar.gz linux-ec8e59cb4e0c1a52d5a541fff9dcec398b48f7b4.zip | |
drm/amd/display: Get replay info from VSDB
We need to make sure that the panel supports replay.
This info is inside the amd vsdb (vendor specific data block). Create a
function to parse the block and read the replay_mode bit.
Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c index b3e14997b470..32d3086c4cb7 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c @@ -46,6 +46,9 @@ static bool link_supports_replay(struct dc_link *link, struct amdgpu_dm_connecto if (!state->freesync_capable) return false; + if (!aconnector->vsdb_info.replay_mode) + return false; + // Check the eDP version if (dpcd_caps->edp_rev < EDP_REVISION_13) return false; @@ -71,6 +74,10 @@ bool amdgpu_dm_setup_replay(struct dc_link *link, struct amdgpu_dm_connector *ac struct replay_config pr_config; union replay_debug_flags *debug_flags = NULL; + // For eDP, if Replay is supported, return true to skip checks + if (link->replay_settings.config.replay_supported) + return true; + if (!dc_is_embedded_signal(link->connector_signal)) return false; |
