Re: [PATCH] drm/i915/sdvo: Reorder i2c initialisation before ddc proxy

From: Keith Packard
Date: Wed May 18 2011 - 10:40:55 EST


On Wed, 18 May 2011 09:04:11 +0100, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 17 May 2011 18:22:52 -0700, Keith Packard <keithp@xxxxxxxxxx> wrote:
> > On Tue, 17 May 2011 14:03:50 +0100, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> > > The ddc proxy depends upon the underlying i2c bus being selected. Under
> > > certain configurations, the i2c-adapter functionality is queried during
> > > initialisation and so may trigger an OOPS during boot. Hence, we need to
> > > reorder the initialisation of the ddc proxy until after we hook up the i2c
> > > adapter for the SDVO device.
> >
> > I'd love more explanation here about how this code ever worked -- what
> > are these 'certain configurations' of which you speak?
>
> The condition under which it fails is when the i2c_add_adapter calls into
> i2c_detect which will attempt to probe all valid addresses on the adapter
> iff there is a pre-existing i2c_driver with the same class as the freshly
> added i2c_adapter.

Lovely.

> So it appears to depend upon having compiled in (or loaded such a module
> before i915.ko) an i2c-driver that likes to futz over the i2c_adapters
> claiming DDC support.

Thanks for your additional explanation, as I said, the patch looks sane
on the face of it (always nice to initialize values before use).

I've marked this as reviewed, added your additional explanation and
merged it to drm-intel-next. Seems like it might like a cc to stable?

--
keith.packard@xxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature