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. > > 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