|
@@ -631,7 +631,8 @@ static int davinci_config_channel_size(struct davinci_audio_dev *dev,
|
|
|
int word_length)
|
|
|
{
|
|
|
u32 fmt;
|
|
|
- u32 rotate = (word_length / 4) & 0x7;
|
|
|
+ u32 tx_rotate = (word_length / 4) & 0x7;
|
|
|
+ u32 rx_rotate = (32 - word_length) / 4;
|
|
|
u32 mask = (1ULL << word_length) - 1;
|
|
|
|
|
|
/*
|
|
@@ -655,9 +656,9 @@ static int davinci_config_channel_size(struct davinci_audio_dev *dev,
|
|
|
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
|
|
|
TXSSZ(fmt), TXSSZ(0x0F));
|
|
|
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
|
|
|
- TXROT(rotate), TXROT(7));
|
|
|
+ TXROT(tx_rotate), TXROT(7));
|
|
|
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG,
|
|
|
- RXROT(rotate), RXROT(7));
|
|
|
+ RXROT(rx_rotate), RXROT(7));
|
|
|
mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG,
|
|
|
mask);
|
|
|
}
|