On Tue, Aug 23, 2016 at 06:39:35PM +0200, Robert Jarzmik wrote:
In the old ac97 bus, the match function was always returning "true", and the driver did probe. With this new implementation, the ac97 is discovered and sound/soc/codecs/wm9713.c#wm9713_ac97_probe() is called. I don't export ac97_bus_type (nor want to do it), and only _one_ device is created upon discovery, while the wm97xx-core.c would benefic a second ac97 device.
I'm wondering how to work around this :
- either I add a wm97xx-ts ac97 device in wm9713_ac97_probe()
- or I add a platform device in wm9713_ac97_probe() and add a new platform_driver in wm97xx-core ...
- or something smarter
That device really should be a MFD.
What's behind this question is : should I keep to my initial solution of 1 ac97 device discovered is bound on the ac97 to _at most_ 1 ac97 driver, or is there a know smart way to have several drivers for one device (that sounds a bit heretic regarding my understanding of the device/driver model but who knows ...) ?
MFDs are how we do multiple drivers per device.