diff options
-rw-r--r-- | sound/soc/omap/omap-pcm.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 07cf7f46b584..6454e15f7d28 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c | |||
@@ -87,8 +87,10 @@ static int omap_pcm_hw_params(struct snd_pcm_substream *substream, | |||
87 | struct omap_pcm_dma_data *dma_data = rtd->dai->cpu_dai->dma_data; | 87 | struct omap_pcm_dma_data *dma_data = rtd->dai->cpu_dai->dma_data; |
88 | int err = 0; | 88 | int err = 0; |
89 | 89 | ||
90 | /* return if this is a bufferless transfer e.g. | ||
91 | * codec <--> BT codec or GSM modem -- lg FIXME */ | ||
90 | if (!dma_data) | 92 | if (!dma_data) |
91 | return -ENODEV; | 93 | return 0; |
92 | 94 | ||
93 | snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer); | 95 | snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer); |
94 | runtime->dma_bytes = params_buffer_bytes(params); | 96 | runtime->dma_bytes = params_buffer_bytes(params); |
@@ -134,6 +136,11 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream) | |||
134 | struct omap_pcm_dma_data *dma_data = prtd->dma_data; | 136 | struct omap_pcm_dma_data *dma_data = prtd->dma_data; |
135 | struct omap_dma_channel_params dma_params; | 137 | struct omap_dma_channel_params dma_params; |
136 | 138 | ||
139 | /* return if this is a bufferless transfer e.g. | ||
140 | * codec <--> BT codec or GSM modem -- lg FIXME */ | ||
141 | if (!prtd->dma_data) | ||
142 | return 0; | ||
143 | |||
137 | memset(&dma_params, 0, sizeof(dma_params)); | 144 | memset(&dma_params, 0, sizeof(dma_params)); |
138 | /* | 145 | /* |
139 | * Note: Regardless of interface data formats supported by OMAP McBSP | 146 | * Note: Regardless of interface data formats supported by OMAP McBSP |