On Tue, Jul 14, 2015 at 02:51:25PM +0800, Nicolas Boichat wrote: > + if (codec->component.card->instantiated) { > + snd_soc_dapm_force_enable_pin(dapm, "ADC L power"); > + snd_soc_dapm_force_enable_pin(dapm, "ADC R power"); > + snd_soc_dapm_sync(dapm); > + } else { > + regmap_update_bits(rt5645->regmap, RT5645_PWR_DIG1, > + RT5645_PWR_ADC_L_BIT | RT5645_PWR_ADC_R_BIT, > + RT5645_PWR_ADC_L_BIT | RT5645_PWR_ADC_R_BIT); > + } I don't understand why this isn't updating the DAPM state if the device is not yet instantiated - this means that when the card instantiates the pins will be turned off which presumably isn't what you want given the manual register map futzing in the else case. What's going on here?