[alsa-devel] [PATCH] ASoC: Convert wm8731 to a new-style i2c driver (testers wanted)
khali at linux-fr.org
Thu Aug 28 19:37:54 CEST 2008
On Thu, 28 Aug 2008 19:25:40 +0200, Manuel Lauss wrote:
> Hi Mark,
> On Tue, Aug 26, 2008 at 08:37:28PM +0100, Mark Brown wrote:
> > On Tue, Aug 26, 2008 at 09:20:43PM +0200, Manuel Lauss wrote:
> > > I don't know about other wm8731 users, but I'd prefer to let the board
> > > code register the codec i2c device. Then you could also get rid
> > > of "struct wm8731_setup_data" altogether.
> > Yes, that would have been the ideal thing with the old I2C API too IIRC.
> > Unfortunately ASoC v1 requires that all the devices comprising the ASoC
> > system be registered in one fell swoop. Once enough of v2 has been
> > merged to allow the codec drivers to register their DAIs independantly
> > of everything else the codecs can be instantiated from wherever the
> > platform feels like doing it.
> I modified Jean's newest patch a bit to just register the i2c driver and
> leave the actual device registration to the board code. It works as
Great, thanks for testing this. Could you please post an incremental
patch going on top of mine? So that I see what it looks like and also
so that both patches can be pushed upstream.
> The only difference is that udev loads the wm8731 module at boot
> but that is expected due to the set owner field in struct i2c_driver;
What makes the wm8731 driver load at boot is the module alias that is
now exported by the wm8731 module ("i2c:wm8731"). When you create the
wm8731 I2C device from your platform code, udev and the surrounding
scripts notice it and basically call "modprobe i2c:wm8731".
This is one of the various benefits of the new i2c device driver
> after loading the platform sound module all is working well.
> (tried with asoc all-modular and all-builtin).
More information about the Alsa-devel