[Intel-gfx] [PATCH] Check if the bus is valid prior to discovering edid.

Eugeni Dodonov eugeni at dodonov.net
Thu Oct 13 22:36:24 CEST 2011


On Thu, Oct 13, 2011 at 17:34, Adam Jackson <ajax at redhat.com> wrote:

> On Thu, 2011-10-13 at 15:11 -0300, Eugeni Dodonov wrote:
>
> > diff --git a/drivers/gpu/drm/i915/intel_i2c.c
> b/drivers/gpu/drm/i915/intel_i2c.c
> > index d98cee6..b3a6eda 100644
> > --- a/drivers/gpu/drm/i915/intel_i2c.c
> > +++ b/drivers/gpu/drm/i915/intel_i2c.c
> > @@ -470,3 +470,45 @@ void intel_teardown_gmbus(struct drm_device *dev)
> >       kfree(dev_priv->gmbus);
> >       dev_priv->gmbus = NULL;
> >  }
> > +
> > +/**
> > + * intel_drm_get_valid_edid - gets edid from existent adapters only
> > + * @connector: DRM connector device to use
> > + * @adapter: i2c adapter
> > + *
> > + * Verifies if the i2c adapter is responding to our queries before
> > + * attempting to do proper communication with it. If it does,
> > + * retreive the EDID with help of drm_get_edid
> > + */
> > +struct edid *
> > +intel_drm_get_valid_edid(struct drm_connector *connector,
> > +             struct i2c_adapter *adapter)
> > +{
> > +     int ret;
> > +     u8 out_buf[] = { 0x0, 0x0};
> > +     u8 buf[2];
> > +     struct i2c_msg msgs[] = {
> > +             {
> > +                     .addr = 0x50,
> > +                     .flags = 0,
> > +                     .len = 1,
> > +                     .buf = out_buf,
> > +             },
> > +             {
> > +                     .addr = 0x50,
> > +                     .flags = I2C_M_RD,
> > +                     .len = 1,
> > +                     .buf = buf,
> > +             }
> > +     };
> > +
> > +     /* We just check for -ENXIO - drm_get_edid checks if the transfer
> > +      * works and manages the remaining parts of the EDID */
> > +     ret = i2c_transfer(adapter, msgs, 2);
>
> This seems like it should be the implementation body of drm_probe_ddc,
> and like that function should be EXPORT_SYMBOL()'d.  Other people want
> to do zero-length reads too, you know.
>
> - ajax
>

My other patch in the previous series (
http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg05828.html)
did exactly that, but it haven't received any comments, and there was one
report saying that it decreased the detection timing on a radeon card. I
don't have any to test, so I prefer to focus on Intel ones (which I have)
:).


-- 
Eugeni Dodonov
<http://eugeni.dodonov.net/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20111013/d51a968e/attachment.html>


More information about the Intel-gfx mailing list