|
@@ -908,6 +908,14 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream,
|
|
mcasp_set_bits(mcasp, DAVINCI_MCASP_RXFMT_REG, busel | RXORD);
|
|
mcasp_set_bits(mcasp, DAVINCI_MCASP_RXFMT_REG, busel | RXORD);
|
|
mcasp_mod_bits(mcasp, DAVINCI_MCASP_RXFMCTL_REG,
|
|
mcasp_mod_bits(mcasp, DAVINCI_MCASP_RXFMCTL_REG,
|
|
FSRMOD(total_slots), FSRMOD(0x1FF));
|
|
FSRMOD(total_slots), FSRMOD(0x1FF));
|
|
|
|
+ /*
|
|
|
|
+ * If McASP is set to be TX/RX synchronous and the playback is
|
|
|
|
+ * not running already we need to configure the TX slots in
|
|
|
|
+ * order to have correct FSX on the bus
|
|
|
|
+ */
|
|
|
|
+ if (mcasp_is_synchronous(mcasp) && !mcasp->channels)
|
|
|
|
+ mcasp_mod_bits(mcasp, DAVINCI_MCASP_TXFMCTL_REG,
|
|
|
|
+ FSXMOD(total_slots), FSXMOD(0x1FF));
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|