[Intel-gfx] [PATCH 2/2] drm/i915/dp: use opregion mailbox #5 EDID for eDP, if available

Lee, Shawn C shawn.c.lee at intel.com
Mon Oct 12 08:37:36 UTC 2020


On Fri, Aug 28, 2020 at 06:19AM, Shankar Uma wrote:
>> -----Original Message-----
>> From: Jani Nikula <jani.nikula at intel.com>
>> Sent: Friday, August 28, 2020 11:50 AM
>> To: intel-gfx at lists.freedesktop.org
>> Cc: Nikula, Jani <jani.nikula at intel.com>; Shankar, Uma
>> <uma.shankar at intel.com>
>> Subject: [PATCH 2/2] drm/i915/dp: use opregion mailbox #5 EDID for eDP, if
>> available
>> 
>> If a panel's EDID is broken, there may be an override EDID set in the ACPI
>> OpRegion mailbox #5. Use it if available.
>
>Looks Good to me.
>Reviewed-by: Uma Shankar <uma.shankar at intel.com>
>
>> Cc: Uma Shankar <uma.shankar at intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c | 3 +++
>>  1 file changed, 3 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
>> b/drivers/gpu/drm/i915/display/intel_dp.c
>> index c57ac83bf563..d1307be196a2 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -8114,6 +8114,9 @@ static bool intel_edp_init_connector(struct intel_dp
>> *intel_dp,
>>  		goto out_vdd_off;
>>  	}
>> 
>> +	/* Set up override EDID, if any, from ACPI OpRegion */
>> +	intel_opregion_edid_override(intel_connector);
>> +

Customer report DUT still get EDID from eDP panel instead of mailbox #5.
After some investigations, this change can retrieve EDID from mailbox #5 properly.
But driver still used panel's EDID to enable eDP display. This is because of drm_get_edid()
was executed after intel_opregion_edid_override(). drm_get_edid() return panel's EDID
and overwrite mailbox #5's. 

We try to move drm_get_edid() before intel_opregion_edid_override().
The test result is positive, mailbox #5 EDID will substitute for panel's.
It seems we may need some additional change for this patch. Thanks!

Best regards,
Shawn

>>  	mutex_lock(&dev->mode_config.mutex);
>>  	edid = drm_get_edid(connector, &intel_dp->aux.ddc);
>>  	if (edid) {
>> --
>> 2.20.1


More information about the Intel-gfx mailing list