diff options
Diffstat (limited to 'sound/soc/codecs/wm8753.c')
-rw-r--r-- | sound/soc/codecs/wm8753.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index c822e119555f..d4b822d2d472 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c @@ -197,7 +197,8 @@ static int wm8753_set_dai(struct snd_kcontrol *kcontrol, return 0; if (codec->active) - return -EBUSY; + printk(KERN_WARNING + "Trying to Change the Dai Mode when codec is active\n"); ioctl = snd_soc_read(codec, WM8753_IOCTL); @@ -911,6 +912,10 @@ static int wm8753_pcm_hw_params(struct snd_pcm_substream *substream, /* sample rate */ if (params_rate(params) * 384 == wm8753->pcmclk) srate |= 0x80; + + /* ADC and V-DAC at same sample rate */ + srate |= 1<<8; + snd_soc_write(codec, WM8753_SRATE1, srate); snd_soc_write(codec, WM8753_PCM, voice); @@ -1130,6 +1135,10 @@ static int wm8753_i2s_hw_params(struct snd_pcm_substream *substream, printk(KERN_ERR "wm8753 invalid MCLK or rate\n"); return coeff; } + + /* ADC and HiFi-DAC at same sample rate */ + srate &= ~(1<<8); + snd_soc_write(codec, WM8753_SRATE1, srate | (coeff_div[coeff].sr << 1) | coeff_div[coeff].usb); |