diff options
author | Daniel Ribeiro <drwyrm@gmail.com> | 2009-06-15 20:44:31 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-06 10:52:24 -0400 |
commit | a5479e389e989acfeca9c32eeb0083d086202280 (patch) | |
tree | 5bcc8940b9e7981916d1e9812957b72d6b82b8af /sound/soc/codecs/wm9081.c | |
parent | 9029bb316bb99ccc7f0518c4d3e0d6adc0729c4f (diff) |
ASoC: change set_tdm_slot api to allow slot_width override.
Extend set_tdm_slot to allow the user to arbitrarily set the frame width
and active TX/RX slots.
Updates magician.c and wm9081.c for the new set_tdm_slot(). wm9081.c
still doesn't handle the slot_width override.
While being there, correct an incorrect use of SlotsPerFrm(7) use in
bitmask on pxa-ssp.c (SSCR0_SlotsPerFrm(x) is (((x) - 1) << 24)) ).
(this series is meant for Mark's for-2.6.32 branch)
Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm9081.c')
-rw-r--r-- | sound/soc/codecs/wm9081.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/soc/codecs/wm9081.c b/sound/soc/codecs/wm9081.c index 156f2a4a5930..c96532351193 100644 --- a/sound/soc/codecs/wm9081.c +++ b/sound/soc/codecs/wm9081.c | |||
@@ -1214,8 +1214,9 @@ static int wm9081_set_sysclk(struct snd_soc_dai *codec_dai, | |||
1214 | return 0; | 1214 | return 0; |
1215 | } | 1215 | } |
1216 | 1216 | ||
1217 | /* FIXME: Needs to handle slot_width */ | ||
1217 | static int wm9081_set_tdm_slot(struct snd_soc_dai *dai, | 1218 | static int wm9081_set_tdm_slot(struct snd_soc_dai *dai, |
1218 | unsigned int mask, int slots) | 1219 | unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width) |
1219 | { | 1220 | { |
1220 | struct snd_soc_codec *codec = dai->codec; | 1221 | struct snd_soc_codec *codec = dai->codec; |
1221 | unsigned int aif1 = wm9081_read(codec, WM9081_AUDIO_INTERFACE_1); | 1222 | unsigned int aif1 = wm9081_read(codec, WM9081_AUDIO_INTERFACE_1); |
@@ -1227,7 +1228,7 @@ static int wm9081_set_tdm_slot(struct snd_soc_dai *dai, | |||
1227 | 1228 | ||
1228 | aif1 |= (slots - 1) << WM9081_AIFDAC_TDM_MODE_SHIFT; | 1229 | aif1 |= (slots - 1) << WM9081_AIFDAC_TDM_MODE_SHIFT; |
1229 | 1230 | ||
1230 | switch (mask) { | 1231 | switch (rx_mask) { |
1231 | case 1: | 1232 | case 1: |
1232 | break; | 1233 | break; |
1233 | case 2: | 1234 | case 2: |