The above doesn't require any change in existing machine drivers - they still pass the card data structure into the soc-audio device which then registers with the core. This the whole point, move the soc-audio device over to using an API that can also be used externally then convert the machine drivers to stop using the soc-audio device.
Btw this make me wonder what will soc_probe be used (it is not doing anything) Do we still need this and creating soc-audio device?
That's the point I'm making above. It shouldn't be involved at all except as part of the soc-audio device code, anything registering a card directly should never call it.
Agreed :) Knowing the context helps...
Above works well for probe, but not sure if that is intention for remove(). Do you expect the machine driver to call codec and platform remove before it unregisters the card. The code inside: if (card->instantiated)
~Vinod