aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
authorDaniel Ribeiro <drwyrm@gmail.com>2009-06-15 20:44:31 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-08-06 10:52:24 -0400
commita5479e389e989acfeca9c32eeb0083d086202280 (patch)
tree5bcc8940b9e7981916d1e9812957b72d6b82b8af /sound/soc/soc-core.c
parent9029bb316bb99ccc7f0518c4d3e0d6adc0729c4f (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/soc-core.c')
-rw-r--r--sound/soc/soc-core.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index fb8d7a766155..e984a17cd656 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2223,17 +2223,20 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_fmt);
2223/** 2223/**
2224 * snd_soc_dai_set_tdm_slot - configure DAI TDM. 2224 * snd_soc_dai_set_tdm_slot - configure DAI TDM.
2225 * @dai: DAI 2225 * @dai: DAI
2226 * @mask: DAI specific mask representing used slots. 2226 * @tx_mask: bitmask representing active TX slots.
2227 * @rx_mask: bitmask representing active RX slots.
2227 * @slots: Number of slots in use. 2228 * @slots: Number of slots in use.
2229 * @slot_width: Width in bits for each slot.
2228 * 2230 *
2229 * Configures a DAI for TDM operation. Both mask and slots are codec and DAI 2231 * Configures a DAI for TDM operation. Both mask and slots are codec and DAI
2230 * specific. 2232 * specific.
2231 */ 2233 */
2232int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, 2234int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai,
2233 unsigned int mask, int slots) 2235 unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width)
2234{ 2236{
2235 if (dai->ops && dai->ops->set_tdm_slot) 2237 if (dai->ops && dai->ops->set_tdm_slot)
2236 return dai->ops->set_tdm_slot(dai, mask, slots); 2238 return dai->ops->set_tdm_slot(dai, tx_mask, rx_mask,
2239 slots, slot_width);
2237 else 2240 else
2238 return -EINVAL; 2241 return -EINVAL;
2239} 2242}