Commit 5dd17a3c authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Mark Brown

ASoC: ti: davinci-mcasp: Set unused serializers as INACTIVE

Unused serializers needs to be configured as INACTIVE, otherwise they will
underflow/overflow when multiple serializers are connected, but some are
not needed for the given stream.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9e0784d0
...@@ -848,13 +848,14 @@ static int mcasp_common_hw_param(struct davinci_mcasp *mcasp, int stream, ...@@ -848,13 +848,14 @@ static int mcasp_common_hw_param(struct davinci_mcasp *mcasp, int stream,
rx_ser < max_active_serializers) { rx_ser < max_active_serializers) {
clear_bit(PIN_BIT_AXR(i), &mcasp->pdir); clear_bit(PIN_BIT_AXR(i), &mcasp->pdir);
rx_ser++; rx_ser++;
} else if (mcasp->serial_dir[i] == INACTIVE_MODE) { } else {
/* Inactive or unused pin, set it to inactive */
mcasp_mod_bits(mcasp, DAVINCI_MCASP_XRSRCTL_REG(i), mcasp_mod_bits(mcasp, DAVINCI_MCASP_XRSRCTL_REG(i),
SRMOD_INACTIVE, SRMOD_MASK); SRMOD_INACTIVE, SRMOD_MASK);
clear_bit(PIN_BIT_AXR(i), &mcasp->pdir); /* If unused, set DISMOD for the pin */
} else if (mcasp->serial_dir[i] == TX_MODE) { if (mcasp->serial_dir[i] != INACTIVE_MODE)
/* Unused TX pins, clear PDIR */ mcasp_mod_bits(mcasp,
mcasp_mod_bits(mcasp, DAVINCI_MCASP_XRSRCTL_REG(i), DAVINCI_MCASP_XRSRCTL_REG(i),
mcasp->dismod, DISMOD_MASK); mcasp->dismod, DISMOD_MASK);
clear_bit(PIN_BIT_AXR(i), &mcasp->pdir); clear_bit(PIN_BIT_AXR(i), &mcasp->pdir);
} }
...@@ -965,6 +966,7 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream, ...@@ -965,6 +966,7 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream,
for (i = 0; i < active_slots; i++) for (i = 0; i < active_slots; i++)
mask |= (1 << i); mask |= (1 << i);
} }
mcasp_clr_bits(mcasp, DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC); mcasp_clr_bits(mcasp, DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC);
if (!mcasp->dat_port) if (!mcasp->dat_port)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment