<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Linux: REGRESSION: drm: cmdline EDID override mechanisms broken since 4.15"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=107583#c23">Comment # 23</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Linux: REGRESSION: drm: cmdline EDID override mechanisms broken since 4.15"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=107583">bug 107583</a>
              from <span class="vcard"><a class="email" href="mailto:jani.nikula@intel.com" title="Jani Nikula <jani.nikula@intel.com>"> <span class="fn">Jani Nikula</span></a>
</span></b>
        <pre>(In reply to harish.chegondi from <a href="show_bug.cgi?id=107583#c19">comment #19</a>)
<span class="quote">> (In reply to Jani Nikula from <a href="show_bug.cgi?id=107583#c18">comment #18</a>)
> > 
> > I think there's a conflicting set of valid requirements here, and the only
> > way to preserve functionality for all cases is to add another level of
> > connector force probe, which skips DDC probe in case of override/firmware
> > EDID.

> If I understand Jani's comment correctly, in drm_get_edid(), DDC probe
> should be skipped if the connector force is unspecified and EDID has to be
> overridden. When I analyzed the code further, I felt the check that does DDC
> probe if connector force is unspecified can be eliminated and will also fix
> this bug. I mentioned my proposed change below. I also submitted this change
> to trybot and it was successful.

> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1724,9 +1724,6 @@ struct edid *drm_get_edid(struct drm_connector
> *connector,
>    if (connector->force == DRM_FORCE_OFF)
>            return NULL;
>  
> -  if (connector->force == DRM_FORCE_UNSPECIFIED && !drm_probe_ddc(adapter))
> -          return NULL;
> -
>    edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter);
>    if (edid)
>            drm_get_displayid(connector, edid);</span >

This loses the ability to use DDC probe for detecting display, leading to
excessive failures in drm_do_get_edid() if the display isn't there.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>