On Tue, 13 Oct 2020, "Lee, Shawn C" <shawn.c.lee@xxxxxxxxx> wrote: > 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; > + + connector->override_edid = false; + ret = drm_connector_update_edid_property(connector, edid); + if (ret) + return; + + connector->override_edid = true; + drm_dbg_kms(&i915->drm, "Using OpRegion EDID for [CONNECTOR:%d:%s]\n", + connector->base.id, connector->name); http://lore.kernel.org/r/20200831083657.15600-1-jani.nikula@xxxxxxxxx BR, Jani. > 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 -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx