mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02: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:
parent
f7124dd568
commit
3471b9a31c
|
|
@ -212,6 +212,7 @@ struct dc_edid_caps {
|
||||||
bool edid_hdmi;
|
bool edid_hdmi;
|
||||||
bool hdr_supported;
|
bool hdr_supported;
|
||||||
bool rr_capable;
|
bool rr_capable;
|
||||||
|
bool scdc_present;
|
||||||
|
|
||||||
struct dc_panel_patch panel_patch;
|
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 slave_address = HDMI_SCDC_ADDRESS;
|
||||||
uint8_t offset = HDMI_SCDC_MANUFACTURER_OUI;
|
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,
|
link_query_ddc_data(ddc_service, slave_address, &offset,
|
||||||
sizeof(offset), sink->scdc_caps.manufacturer_OUI.byte,
|
sizeof(offset), sink->scdc_caps.manufacturer_OUI.byte,
|
||||||
sizeof(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*/
|
/*Lower than 340 Scramble bit from SCDC caps*/
|
||||||
|
|
||||||
if (ddc_service->link->local_sink &&
|
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;
|
return;
|
||||||
|
|
||||||
link_query_ddc_data(ddc_service, slave_address, &offset,
|
link_query_ddc_data(ddc_service, slave_address, &offset,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user