ASoC: Disable automatic volume control in the CS4270 sound driver
Disable the automatic volume control feature of the CS4270 audio codec. This feature, which is enabled by default, causes volume change commands to be delayed. Sometimes the volume change happens after playback is started. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
ca53fb24dd
commit
0c235d1e83
1 changed files with 13 additions and 0 deletions
|
@ -450,6 +450,19 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* Disable automatic volume control. It's enabled by default, and
|
||||
* it causes volume change commands to be delayed, sometimes until
|
||||
* after playback has started.
|
||||
*/
|
||||
|
||||
reg = cs4270_read_reg_cache(codec, CS4270_TRANS);
|
||||
reg &= ~(CS4270_TRANS_SOFT | CS4270_TRANS_ZERO);
|
||||
ret = cs4270_i2c_write(codec, CS4270_TRANS, reg);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "I2C write failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Thaw and power-up the codec */
|
||||
|
||||
ret = snd_soc_write(codec, CS4270_PWRCTL, 0);
|
||||
|
|
Loading…
Reference in a new issue