|
@@ -146,6 +146,17 @@ static int omap_mcbsp_dai_startup(struct snd_pcm_substream *substream,
|
|
|
struct omap_mcbsp_data *mcbsp_data = to_mcbsp(cpu_dai->private_data);
|
|
|
int err = 0;
|
|
|
|
|
|
+ if (cpu_is_omap343x() && mcbsp_data->bus_id == 1) {
|
|
|
+ /*
|
|
|
+ * McBSP2 in OMAP3 has 1024 * 32-bit internal audio buffer.
|
|
|
+ * Set constraint for minimum buffer size to the same than FIFO
|
|
|
+ * size in order to avoid underruns in playback startup because
|
|
|
+ * HW is keeping the DMA request active until FIFO is filled.
|
|
|
+ */
|
|
|
+ snd_pcm_hw_constraint_minmax(substream->runtime,
|
|
|
+ SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 4096, UINT_MAX);
|
|
|
+ }
|
|
|
+
|
|
|
if (!cpu_dai->active)
|
|
|
err = omap_mcbsp_request(mcbsp_data->bus_id);
|
|
|
|