summaryrefslogtreecommitdiff
path: root/sound/soc/davinci/davinci-mcasp.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-09-18 10:45:37 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-09-18 10:45:37 -0700
commit33d31d34769a67609d12753af7e57743b934ca8e (patch)
tree443616250e7f2b98b6195b116779cf957dc3700a /sound/soc/davinci/davinci-mcasp.c
parent153a9f131f50420b7ce008c94f1c6374cbc460d7 (diff)
parent779608521976e3b8d264f89c67e64c918949cc9b (diff)
Merge tag 'sound-3.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "All small fixes in random various drivers, mostly for ASoC at this time, which look reasonable for a high rc number" * tag 'sound-3.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: rockchip-i2s: dt: swap tx and rx channed request number in example ASoC: rockchip-i2s: fix registers' property of rockchip i2s controller ASoC: rockchip-i2s: fix master mode set bit error ASoC: cs4265: Fix register address to set the proper data type. ALSA: hda - Fix invalid pin powermap without jack detection ASoC: soc-pcm: fix dpcm_path_get error handling ASoC: samsung-i2s: Check secondary DAI exists before referencing ASoC: Update email id of the author ASoC: dwc: Update email id of the author ASoC: davinci-mcasp: Correct rx format unit configuration ASoC: tlv320aic31xx: Fix 24bit samples with I2S format and 12MHz mclk
Diffstat (limited to 'sound/soc/davinci/davinci-mcasp.c')
-rw-r--r--sound/soc/davinci/davinci-mcasp.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index 6a6b2ff7d7d7..68347b55f6e1 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -467,8 +467,17 @@ static int davinci_config_channel_size(struct davinci_mcasp *mcasp,
{
u32 fmt;
u32 tx_rotate = (word_length / 4) & 0x7;
- u32 rx_rotate = (32 - word_length) / 4;
u32 mask = (1ULL << word_length) - 1;
+ /*
+ * For captured data we should not rotate, inversion and masking is
+ * enoguh to get the data to the right position:
+ * Format data from bus after reverse (XRBUF)
+ * S16_LE: |LSB|MSB|xxx|xxx| |xxx|xxx|MSB|LSB|
+ * S24_3LE: |LSB|DAT|MSB|xxx| |xxx|MSB|DAT|LSB|
+ * S24_LE: |LSB|DAT|MSB|xxx| |xxx|MSB|DAT|LSB|
+ * S32_LE: |LSB|DAT|DAT|MSB| |MSB|DAT|DAT|LSB|
+ */
+ u32 rx_rotate = 0;
/*
* if s BCLK-to-LRCLK ratio has been configured via the set_clkdiv()