linux-sg2042/sound/soc/au1x
Manuel Lauss cdc65fbe18 ASoC: au1x: PSC-AC97 bugfixes
This patch fixes the following bugs:

- only reprogram bitdepth if it has changed since last call to hw_params.
- add locking inside ac97_read/write functions:
  When reprogramming sample depth, the ac97 unit has to be disabled,
  which should not be done in the middle of codec register accesses.

- retry timed-out codec register accesses.

- wait for status bits to set/clear when starting/stopping various
  functional blocks; very important after reenabling AC97 unit else
  sound may be distorted (e.g. high-pitch noise in 1kHz sine wave).

- clear fifos before/after starting/stopping RX/TX.

- longer timeouts waiting for PSC/AC97 ready after cold reset
  with certain codecs this can take ridiculous amounts of time.

Run-tested on various Au1200 platforms with various codecs.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-09-08 19:21:27 +01:00
..
Kconfig ALSA: ASoC: Au12x0/Au1550 PSC Audio support 2008-07-10 09:33:07 +02:00
Makefile ALSA: ASoC: Au12x0/Au1550 PSC Audio support 2008-07-10 09:33:07 +02:00
dbdma2.c ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
psc-ac97.c ASoC: au1x: PSC-AC97 bugfixes 2009-09-08 19:21:27 +01:00
psc-i2s.c ASoC: make ops a pointer in 'struct snd_soc_dai' 2009-03-04 22:29:47 +00:00
psc.h ASoC: au1x: PSC-AC97 bugfixes 2009-09-08 19:21:27 +01:00
sample-ac97.c ASoC: Rename snd_soc_card to snd_soc_machine 2008-11-21 14:02:01 +00:00