diff options
author | Manuel Lauss <manuel.lauss@googlemail.com> | 2009-09-08 13:45:17 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-09-08 14:21:27 -0400 |
commit | cdc65fbe18aef15e92d2ebb410a189fbf956fb06 (patch) | |
tree | d121aea788bf52467683a9072ff3d15b89bd5c08 /fs/locks.c | |
parent | 87831cb660954356d68cebdb1406f3be09e784e9 (diff) |
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>
Diffstat (limited to 'fs/locks.c')
0 files changed, 0 insertions, 0 deletions