mirror of https://gitee.com/openkylin/linux.git
8b5e2e396b
The bf5xx-i2s{,-pcm} and bf5xx-tdm{-pcm} drivers are nearly identical. Both are for the same hardware each supporting a slight different subset of the hardware. The bf5xx-i2s driver supports 2 channel I2S mode while the bf5xx-tdm driver supports TDM mode and channel remapping. This patch adds support for TDM mode and channel remapping to the bf5xx-i2s driver so that we'll eventually be able to retire the bf5xx-tdm driver. Unfortunately the hardware is fixed to using 8 channels in TDM mode. The bf5xx-tdm driver jumps through a few hoops to make it work well with other channel counts as well: * Don't support mmap * Translate between internal frame size (which is always 8 * sample_size) and ALSA frame size (which depends on the channel count) * Have special copy and silence callbacks which are aware of the mismatch between internal and ALSA frame size * Reduce the maximum buffer size to ensure that there is enough headroom for dummy data. The bf5xx-i2s driver is going to use the same mechanisms when being used int TDM mode. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
bf5xx-ac97-pcm.c | ||
bf5xx-ac97.c | ||
bf5xx-ac97.h | ||
bf5xx-ad193x.c | ||
bf5xx-ad1836.c | ||
bf5xx-ad1980.c | ||
bf5xx-ad73311.c | ||
bf5xx-i2s-pcm.c | ||
bf5xx-i2s-pcm.h | ||
bf5xx-i2s.c | ||
bf5xx-sport.c | ||
bf5xx-sport.h | ||
bf5xx-ssm2602.c | ||
bf5xx-tdm-pcm.c | ||
bf5xx-tdm.c | ||
bf5xx-tdm.h | ||
bf6xx-i2s.c | ||
bf6xx-sport.c | ||
bf6xx-sport.h | ||
bfin-eval-adau1373.c | ||
bfin-eval-adau1701.c | ||
bfin-eval-adav80x.c |