summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/codecs/wm8753.c11
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);