On Mon, Oct 12, 2020 at 5:09 PM, Jani Nikula wrote: >On Mon, 12 Oct 2020, "Lee, Shawn C" <shawn.c.lee@xxxxxxxxx> wrote: >> On Fri, Aug 28, 2020 at 06:19AM, Shankar Uma wrote: >>>> -----Original Message----- >>>> From: Jani Nikula <jani.nikula@xxxxxxxxx> >>>> Sent: Friday, August 28, 2020 11:50 AM >>>> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx >>>> Cc: Nikula, Jani <jani.nikula@xxxxxxxxx>; Shankar, Uma >>>> <uma.shankar@xxxxxxxxx> >>>> 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@xxxxxxxxx> >>> >>>> Cc: Uma Shankar <uma.shankar@xxxxxxxxx> >>>> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >>>> --- >>>> 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. > >In recent kernels, drm_get_edid() respects EDID override, and calling >drm_get_edid() will return the override EDID from mailbox #5 instead of retrieving the actual EDID. > >Check the kernel version they're using and the drm_get_edid() implementation. > >BR, >Jani. > Just confirm customer is using kernel v5.8. Seems drm_edid.c already include the change for override_edid. BTW. override_edid should be "true" and used to over EDID in intel_opregion_edid_override() in patch 1. Right? But it is "false" in the patch 1. + connector->override_edid = false; Best regards, Shawn > >> >> 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 > >-- >Jani Nikula, Intel Open Source Graphics Center >_______________________________________________ >Intel-gfx mailing list >Intel-gfx@xxxxxxxxxxxxxxxxxxxxx >https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx