On Mon, Nov 12, 2012 at 03:40:26PM +0800, Bo Shen wrote: > static struct platform_device sam9g20ek_audio_device = { > .name = "at91sam9g20ek-audio", > - .id = -1, > + .id = 0, > }; Why are you changing this? Single devices are supposed to specify -1 as their id. > static int atmel_ssc_startup(struct snd_pcm_substream *substream, > struct snd_soc_dai *dai) > { > - struct atmel_ssc_info *ssc_p = &ssc_info[dai->id]; > + struct atmel_ssc_info *ssc_p = &ssc_info; This seems like a very big step backwards, there's now a single global variable for the ssc_info which presumably means there can be only one SSC active in the system at once. That's changing a lot more than just the registration...