On Mon, 12 Oct 2020, "Lee, Shawn C" <[email protected]> wrote:
> On Fri, Aug 28, 2020 at 06:19AM, Shankar Uma wrote:
>>> -----Original Message-----
>>> From: Jani Nikula <[email protected]>
>>> Sent: Friday, August 28, 2020 11:50 AM
>>> To: [email protected]
>>> Cc: Nikula, Jani <[email protected]>; Shankar, Uma
>>> <[email protected]>
>>> 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 <[email protected]>
>>
>>> Cc: Uma Shankar <[email protected]>
>>> Signed-off-by: Jani Nikula <[email protected]>
>>> ---
>>> 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx