mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-14 07:54:37 -05:00
drm/amd/display: Rework HDMI data channel reads
Fix the HDMI data channel reads to respect scdc_present field to pass compliance test. Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: Relja Vojvodic <rvojvodi@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
f7124dd568
commit
3471b9a31c
@@ -212,6 +212,7 @@ struct dc_edid_caps {
|
||||
bool edid_hdmi;
|
||||
bool hdr_supported;
|
||||
bool rr_capable;
|
||||
bool scdc_present;
|
||||
|
||||
struct dc_panel_patch panel_patch;
|
||||
};
|
||||
|
||||
@@ -270,6 +270,10 @@ static void read_scdc_caps(struct ddc_service *ddc_service,
|
||||
uint8_t slave_address = HDMI_SCDC_ADDRESS;
|
||||
uint8_t offset = HDMI_SCDC_MANUFACTURER_OUI;
|
||||
|
||||
if (ddc_service->link->local_sink &&
|
||||
!ddc_service->link->local_sink->edid_caps.scdc_present)
|
||||
return;
|
||||
|
||||
link_query_ddc_data(ddc_service, slave_address, &offset,
|
||||
sizeof(offset), sink->scdc_caps.manufacturer_OUI.byte,
|
||||
sizeof(sink->scdc_caps.manufacturer_OUI.byte));
|
||||
|
||||
@@ -549,7 +549,8 @@ void write_scdc_data(struct ddc_service *ddc_service,
|
||||
/*Lower than 340 Scramble bit from SCDC caps*/
|
||||
|
||||
if (ddc_service->link->local_sink &&
|
||||
ddc_service->link->local_sink->edid_caps.panel_patch.skip_scdc_overwrite)
|
||||
(ddc_service->link->local_sink->edid_caps.panel_patch.skip_scdc_overwrite ||
|
||||
!ddc_service->link->local_sink->edid_caps.scdc_present))
|
||||
return;
|
||||
|
||||
link_query_ddc_data(ddc_service, slave_address, &offset,
|
||||
|
||||
Reference in New Issue
Block a user