On 07/23/2013 05:34 PM, Daniel Mack wrote:
With printk() in snd_soc_dapm_new_control(), I see the following widgets being created during boot (one pair for each Codec, and two pairs for the platform dai):
[ 1.963501] snd_soc_dapm_new_control() ceb6b680 name Playback [ 1.971739] snd_soc_dapm_new_control() ceb6b5c0 name Capture [ 1.996001] snd_soc_dapm_new_control() ceb6b500 name Playback [ 2.004354] snd_soc_dapm_new_control() ceb6b440 name Capture [ 2.019684] snd_soc_dapm_new_control() ceb6b380 name Playback [ 2.028053] snd_soc_dapm_new_control() ceb6b2c0 name Capture [ 2.047526] snd_soc_dapm_new_control() ceb6b200 name Playback [ 2.055846] snd_soc_dapm_new_control() ceb6b140 name Capture [ 2.071168] snd_soc_dapm_new_control() ceb6b080 name Playback [ 2.079461] snd_soc_dapm_new_control() ceb8ff00 name Capture
Can you print these with dev_err(dapm->dev, ...); so we can see the context where it is going to be added? It might worth asking the core to prefix the codecs DAPM, so you avoid name duplication on the same context. Both cs4271 and ak4101 have 'Playback'/'Capture' names for the streams.
BTW: do you see error messages about name duplication ("widget %s already exists for context\n")? Or warning about already existing debugfs entries from DAPM?