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 intended! 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; after loading the platform sound module all is working well. (tried with asoc all-modular and all-builtin).
Best regards, Manuel Lauss