linux/sound
Dmitry Lavnikevich 003b4f8c41 ASoC: tlv320aic3x: fix PLL D configuration
commit 31d9f8faf9 upstream.

Current caching implementation during regcache_sync() call bypasses
all register writes of values that are already known as default
(regmap reg_defaults). Same time in TLV320AIC3x codecs register 5
(AIC3X_PLL_PROGC_REG) write should be immediately followed by register
6 write (AIC3X_PLL_PROGD_REG) even if it was not changed. Otherwise
both registers will not be written.

This brings to issue that appears particulary in case of 44.1kHz
playback with 19.2MHz master clock. In this case AIC3X_PLL_PROGC_REG
is 0x6e while AIC3X_PLL_PROGD_REG is 0x0 (same as register
default). Thus AIC3X_PLL_PROGC_REG also remains not written and we get
wrong playback speed.

In this patch snd_soc_read() is used to get cached pll values and
snd_soc_write() (unlike regcache_sync() this function doesn't bypasses
hardware default values) to write them to registers.

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-11-14 08:59:45 -08:00
..
aoa sound fixes for 3.13-rc1 2013-11-16 12:50:53 -08:00
arm ALSA: AACI: Convert to modern PM ops 2013-12-03 17:43:42 +01:00
atmel Merge branch 'for-linus' into for-next 2013-12-16 15:53:52 +01:00
core ALSA: pcm: use the same dma mmap codepath both for arm and arm64 2014-10-30 09:38:24 -07:00
drivers ALSA: pcsp: Fix the order of input device unregistration 2013-11-14 15:50:10 +01:00
firewire ALSA: dice: fix array limits in dice_proc_read() 2013-11-29 10:23:04 +01:00
i2c ALSA: ak4114: Fix wrong register array size 2013-10-29 16:42:36 +01:00
isa ALSA: isa: not allocating enough space 2013-11-13 09:28:31 +01:00
mips ALSA: mips/ad1843: Use WARN_ON() instead of BUG_ON() 2013-11-06 08:35:16 +01:00
oss sound: oss: remove last sleep_on users 2014-01-14 16:12:07 +01:00
parisc ALSA: Remove the rest of *_set_drvdata(NULL) calls 2013-05-29 12:50:59 +02:00
pci ALSA: hda - hdmi: Fix missing ELD change event on plug/unplug 2014-10-30 09:38:24 -07:00
pcmcia sound/pcmcia: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:26:39 -07:00
ppc Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-11-18 15:50:07 -08:00
sh ALSA: sh_dac_audio: Remove redundant platform_set_drvdata() 2013-05-23 14:36:45 +02:00
soc ASoC: tlv320aic3x: fix PLL D configuration 2014-11-14 08:59:45 -08:00
sparc ALSA: sparc: fix missing unlock on error in snd_cs4231_playback_prepare() 2013-11-11 16:23:16 +01:00
spi ALSA: at73c213: clk_round_rate() can return a zero upon error 2013-12-10 21:19:47 +01:00
synth
usb ALSA: usb-audio: Add support for Steinberg UR22 USB interface 2014-10-30 09:38:24 -07:00
Kconfig sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
Makefile
ac97_bus.c
last.c ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE 2012-09-03 10:07:23 +02:00
sound_core.c consolidate the reassignments of ->f_op in ->open() instances 2013-10-24 23:34:53 -04:00
sound_firmware.c sound_firmware: don't bother with filp_close() 2013-04-09 15:16:32 -04:00