Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: block passive dongle EDID Emulation for USB-C ports

[Why]
Emulating passive dongle on USB-C port causes issue on some asics.

[How]
Check for DP_IS_USB_C flag in bios parser and propagate it to
encoder features flags. If DP_IS_USB_C flag is set and it is trying to
emulate passive dongle, then return fail.

Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Samson Tam and committed by
Alex Deucher
64827cad f5ce9f3c

+7 -1
+2
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
··· 1313 1313 ATOM_ENCODER_CAP_RECORD_HBR3_EN) ? 1 : 0; 1314 1314 info->HDMI_6GB_EN = (record->encodercaps & 1315 1315 ATOM_ENCODER_CAP_RECORD_HDMI6Gbps_EN) ? 1 : 0; 1316 + info->DP_IS_USB_C = (record->encodercaps & 1317 + ATOM_ENCODER_CAP_RECORD_USB_C_TYPE) ? 1 : 0; 1316 1318 1317 1319 return BP_RESULT_OK; 1318 1320 }
+2 -1
drivers/gpu/drm/amd/display/include/bios_parser_types.h
··· 307 307 uint32_t DP_HBR2_EN:1; 308 308 uint32_t DP_HBR3_EN:1; 309 309 uint32_t HDMI_6GB_EN:1; 310 - uint32_t RESERVED:30; 310 + uint32_t DP_IS_USB_C:1; 311 + uint32_t RESERVED:27; 311 312 }; 312 313 313 314 #endif /*__DAL_BIOS_PARSER_TYPES_H__ */