Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64827cad authored by Samson Tam's avatar Samson Tam Committed by Alex Deucher
Browse files

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: default avatarSamson Tam <Samson.Tam@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent f5ce9f3c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1313,6 +1313,8 @@ static enum bp_result bios_parser_get_encoder_cap_info(
			ATOM_ENCODER_CAP_RECORD_HBR3_EN) ? 1 : 0;
	info->HDMI_6GB_EN = (record->encodercaps &
			ATOM_ENCODER_CAP_RECORD_HDMI6Gbps_EN) ? 1 : 0;
	info->DP_IS_USB_C = (record->encodercaps &
			ATOM_ENCODER_CAP_RECORD_USB_C_TYPE) ? 1 : 0;

	return BP_RESULT_OK;
}
+2 −0
Original line number Diff line number Diff line
@@ -726,6 +726,8 @@ void dcn10_link_encoder_construct(
		enc10->base.features.flags.bits.IS_HBR3_CAPABLE =
				bp_cap_info.DP_HBR3_EN;
		enc10->base.features.flags.bits.HDMI_6GB_EN = bp_cap_info.HDMI_6GB_EN;
		enc10->base.features.flags.bits.DP_IS_USB_C =
				bp_cap_info.DP_IS_USB_C;
	} else {
		DC_LOG_WARNING("%s: Failed to get encoder_cap_info from VBIOS with error code %d!\n",
				__func__,
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ struct encoder_feature_support {
			uint32_t IS_TPS3_CAPABLE:1;
			uint32_t IS_TPS4_CAPABLE:1;
			uint32_t HDMI_6GB_EN:1;
			uint32_t DP_IS_USB_C:1;
		} bits;
		uint32_t raw;
	} flags;
+2 −1
Original line number Diff line number Diff line
@@ -307,7 +307,8 @@ struct bp_encoder_cap_info {
	uint32_t DP_HBR2_EN:1;
	uint32_t DP_HBR3_EN:1;
	uint32_t HDMI_6GB_EN:1;
	uint32_t RESERVED:30;
	uint32_t DP_IS_USB_C:1;
	uint32_t RESERVED:27;
};

#endif /*__DAL_BIOS_PARSER_TYPES_H__ */