[PATCH] drm/bridge: sii902x: Fall back to standard modes

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Mar 1 13:18:40 PST 2018


On Thu, Mar 01, 2018 at 10:02:55PM +0100, Linus Walleij wrote:
> Hm, hard to get review feedback on this one.
> 
> It gives me proper video on an ARM Versatile Express utilizing the
> bridge driver with a plugged in DVI-to-VGA dongle with the new
> PL111 DRI driver.
> 
> Liviu? Pawel?
> 
> Some ACK is fine to know I am doing the right thing :)

Why isn't the probe helper's noedid fallback working?

> 
> Yours,
> Linus Walleij
> 
> On Wed, Feb 14, 2018 at 2:00 PM, Linus Walleij <linus.walleij at linaro.org> wrote:
> > The following happens when connection a DVI output driven
> > from the SiI9022 using a DVI-to-VGA adapter plug:
> >
> > i2c i2c-0: sendbytes: NAK bailout.
> > i2c i2c-0: sendbytes: NAK bailout.
> >
> > Then no picture. Apparently the I2C engine inside the SiI9022
> > is not smart enough to try to fall back to DDC I2C. Or the
> > vendor have not integrated the electronics properly. I don't
> > know which one it is.
> >
> > By using standard modes as fallback, the bridge probes nicely
> > with a minor warning and we get picture.
> >
> > This code is inspired by similar code in the dumb VGA bridge.
> >
> > Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> > ---
> >  drivers/gpu/drm/bridge/sii902x.c | 15 +++++++++++++--
> >  1 file changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
> > index b1ab4ab09532..4483095c4013 100644
> > --- a/drivers/gpu/drm/bridge/sii902x.c
> > +++ b/drivers/gpu/drm/bridge/sii902x.c
> > @@ -168,8 +168,19 @@ static int sii902x_get_modes(struct drm_connector *connector)
> >                 return ret;
> >
> >         edid = drm_get_edid(connector, sii902x->i2c->adapter);
> > -       drm_mode_connector_update_edid_property(connector, edid);
> > -       if (edid) {
> > +       if (!edid) {
> > +               /*
> > +                * This happens when using a simple DVI-to-VGA converter
> > +                * dongle for example: the I2C lines are not bridged over
> > +                * to VGA DDC.
> > +                */
> > +               DRM_INFO("EDID readout failed, falling back to standard modes\n");
> > +               ret = drm_add_modes_noedid(connector, 1920, 1080);
> > +               /* Set some standard resolution most monitors can handle */
> > +               drm_set_preferred_mode(connector, 1024, 768);
> > +       } else {
> > +               /* Data from EDID readout */
> > +               drm_mode_connector_update_edid_property(connector, edid);
> >                 num = drm_add_edid_modes(connector, edid);
> >                 kfree(edid);
> >         }
> > --
> > 2.14.3
> >
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel OTC



More information about the linux-arm-kernel mailing list