On platforms without CONFIG_GENERIC_ALLOCATOR, these functions can be no-ops. The code that uses the memory buffers does the right thing if they are NULL.
Signed-off-by: Daniel Mack zonque@gmail.com Cc: Hebbar, Gururaja gururaja.hebbar@ti.com Cc: Matt Porter mporter@ti.com Cc: Anil Kumar anilkumar.v@ti.com --- Alternatively, the gen_pool functions could stub out themselves for !CONFIG_GENERIC_ALLOCATOR.
sound/soc/davinci/davinci-pcm.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-)
diff --git a/sound/soc/davinci/davinci-pcm.c b/sound/soc/davinci/davinci-pcm.c index 01b3f17..afab81f 100644 --- a/sound/soc/davinci/davinci-pcm.c +++ b/sound/soc/davinci/davinci-pcm.c @@ -251,6 +251,7 @@ static void davinci_pcm_dma_irq(unsigned link, u16 ch_status, void *data) } }
+#ifdef CONFIG_GENERIC_ALLOCATOR static int allocate_sram(struct snd_pcm_substream *substream, struct gen_pool *sram_pool, unsigned size, struct snd_pcm_hardware *ppcm) @@ -284,6 +285,28 @@ exit1: return -ENOMEM; }
+static void davinci_free_sram(struct snd_pcm_substream *substream, + struct snd_dma_buffer *iram_dma) +{ + struct davinci_runtime_data *prtd = substream->runtime->private_data; + struct gen_pool *sram_pool = prtd->params->sram_pool; + + gen_pool_free(sram_pool, (unsigned) iram_dma->area, iram_dma->bytes); +} +#else +static int allocate_sram(struct snd_pcm_substream *substream, + struct gen_pool *sram_pool, unsigned size, + struct snd_pcm_hardware *ppcm) +{ + return 0; +} + +static void davinci_free_sram(struct snd_pcm_substream *substream, + struct snd_dma_buffer *iram_dma) +{ +} +#endif + /* * Only used with ping/pong. * This is called after runtime->dma_addr, period_bytes and data_type are valid @@ -813,11 +836,7 @@ static void davinci_pcm_free(struct snd_pcm *pcm) buf->area = NULL; iram_dma = buf->private_data; if (iram_dma) { - struct davinci_runtime_data *prtd = - substream->runtime->private_data; - struct gen_pool *sram_pool = prtd->params->sram_pool; - gen_pool_free(sram_pool, (unsigned)iram_dma->area, - iram_dma->bytes); + davinci_free_sram(substream, iram_dma); kfree(iram_dma); } }