On Tue, Feb 14, 2012 at 03:56:33PM -0700, Stephen Warren wrote:
Commit 022658b "ASoC: core: Add support for DAI and machine kcontrols." created new functions to create controls for cards, codecs, platforms, and DAIs. The new snd_soc_add_card_controls() passed the wrong "data" to utility function snd_soc_add_controls(); it should be passing a codec, but instead ended up passing the soc_card. Fix this.
Well, sort of. The idea with Liam's commit was to split things out so that card operations got given a card so the argument change was intentional. What's gone wrong is that things like PIN_SWITCH() (which is only ever used by cards) weren't updated to match so they still expect to find a CODEC there. This'll quite probably have broken some other machine specific controls too.
I'll send a patch for PIN_SWITCH later today but it looks like we need an audit of all the drivers using non-CODEC adds to make sure they don't assume a CODEC in the callbacks.