drm/amd/display: Write TEST_EDID_CHECKSUM_WRITE for EDID tests
Extract edid's checksum and send it back for verification if EDID_TEST is requested. Also added a flag for EDID checksum write in TEST_RESPONSE structure, and simple spelling fix. Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
3b070c60ea
commit
6e0ef9d85b
|
@ -497,6 +497,34 @@ enum dc_edid_status dm_helpers_read_local_edid(
|
|||
DRM_ERROR("EDID err: %d, on connector: %s",
|
||||
edid_status,
|
||||
aconnector->base.name);
|
||||
if (link->aux_mode) {
|
||||
union test_request test_request = {0};
|
||||
union test_response test_response = {0};
|
||||
|
||||
dm_helpers_dp_read_dpcd(ctx,
|
||||
link,
|
||||
DP_TEST_REQUEST,
|
||||
&test_request.raw,
|
||||
sizeof(union test_request));
|
||||
|
||||
if (!test_request.bits.EDID_READ)
|
||||
return edid_status;
|
||||
|
||||
test_response.bits.EDID_CHECKSUM_WRITE = 1;
|
||||
|
||||
dm_helpers_dp_write_dpcd(ctx,
|
||||
link,
|
||||
DP_TEST_EDID_CHECKSUM,
|
||||
&sink->dc_edid.raw_edid[sink->dc_edid.length-1],
|
||||
1);
|
||||
|
||||
dm_helpers_dp_write_dpcd(ctx,
|
||||
link,
|
||||
DP_TEST_RESPONSE,
|
||||
&test_response.raw,
|
||||
sizeof(test_response));
|
||||
|
||||
}
|
||||
|
||||
return edid_status;
|
||||
}
|
||||
|
|
|
@ -430,7 +430,7 @@ union test_request {
|
|||
struct {
|
||||
uint8_t LINK_TRAINING :1;
|
||||
uint8_t LINK_TEST_PATTRN :1;
|
||||
uint8_t EDID_REAT :1;
|
||||
uint8_t EDID_READ :1;
|
||||
uint8_t PHY_TEST_PATTERN :1;
|
||||
uint8_t AUDIO_TEST_PATTERN :1;
|
||||
uint8_t RESERVED :1;
|
||||
|
@ -443,7 +443,8 @@ union test_response {
|
|||
struct {
|
||||
uint8_t ACK :1;
|
||||
uint8_t NO_ACK :1;
|
||||
uint8_t RESERVED :6;
|
||||
uint8_t EDID_CHECKSUM_WRITE:1;
|
||||
uint8_t RESERVED :5;
|
||||
} bits;
|
||||
uint8_t raw;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue