linux/sound
Stephen Warren 713d136978 ASoC: Tegra: I2S: Ensure clock is enabled when writing regs
The I2S controller needs a clock to respond to register writes. Without
this, register writes will at worst hang the CPU. In practice, I've only
observed writes being dropped.

Luckily, the dropped register writes historically had no effect:

TEGRA_I2S_TIMING: The value we wrote was the reset default.

TEGRA_I2S_FIFO_SCR: The default was for the FIFOs to request more data
when one slot was empty. The requested value was for the FIFOs to request
when four slots were empty. The DMA controller in the mainline kernel is
configured to burst a single entry at a time into the FIFO, hence there
was no issue. The only negative effect was on bus efficiency losses due
to an increased number of arbitration attempts.

However, in various non-upstream changes, the DMA controller now bursts
four entries at a time into the FIFO. If there is only space for one
entry, the data is simply dropped. In practice, this resulted in 3/4 of
samples being dropped, and playback at 4x the expected rate and pitch.
By fixing the clocking issue, this is solved.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-07-04 08:49:05 -07:00
..
aoa Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
arm Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39 2011-04-03 19:28:29 +09:00
atmel ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture 2011-01-25 18:07:10 +01:00
core ALSA: core: remove unused variables. 2011-05-26 08:19:04 +02:00
drivers Fix common misspellings 2011-03-31 11:26:23 -03:00
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2011-05-23 08:52:38 -07:00
i2c ALSA: tea575x: use better card and bus names 2011-05-13 19:43:24 +02:00
isa Fix common misspellings 2011-03-31 11:26:23 -03:00
mips
oss SOUND: OSS: Remove Au1550 driver. 2011-05-20 11:33:39 +02:00
parisc
pci ALSA: fix hda AZX_DCAPS_NO_TCSEL quirk check in driver_caps 2011-05-27 19:45:28 -07:00
pcmcia pcmcia: Make struct pcmcia_device_id const, sound drivers edition 2011-05-11 10:48:57 +02:00
ppc Merge branch 'topic/misc' into for-linus 2011-05-22 10:01:29 +02:00
sh
soc ASoC: Tegra: I2S: Ensure clock is enabled when writing regs 2011-07-04 08:49:05 -07:00
sparc dt/sound: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:44 -07:00
spi ALSA: AT73C213: Rectify misleading comment. 2010-11-11 02:03:29 +01:00
synth
usb ALSA: usb-audio: more control quirks for M-Audio FastTrack devices 2011-05-25 09:37:08 +02:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
Kconfig ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
last.c
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
sound_core.c sound: Use sound_register_*() for additional OSS minor devices 2011-03-09 20:10:37 +01:00
sound_firmware.c sound: read i_size with i_size_read() 2011-03-18 15:14:57 +01:00