42a74e7747
The DMA channel names are specified through struct snd_dmaengine_pcm_config rather than using SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME flag when booting with devicetree in order to properly support deferred probing. Without this change the sound machine driver initialization can complete successfully with unavailable DMA resources. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
36 lines
1.0 KiB
C
36 lines
1.0 KiB
C
/*
|
|
* dma.h --
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* ALSA PCM interface for the Samsung SoC
|
|
*/
|
|
|
|
#ifndef _S3C_AUDIO_H
|
|
#define _S3C_AUDIO_H
|
|
|
|
#include <sound/dmaengine_pcm.h>
|
|
#include <linux/dmaengine.h>
|
|
|
|
struct s3c_dma_params {
|
|
void *slave; /* Channel ID */
|
|
dma_addr_t dma_addr;
|
|
int dma_size; /* Size of the DMA transfer */
|
|
char *ch_name;
|
|
struct snd_dmaengine_dai_dma_data dma_data;
|
|
};
|
|
|
|
void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
|
|
struct s3c_dma_params *playback,
|
|
struct s3c_dma_params *capture);
|
|
/*
|
|
* @tx, @rx arguments can be NULL if the DMA channel names are "tx", "rx",
|
|
* otherwise actual DMA channel names must be passed to this function.
|
|
*/
|
|
int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
|
|
const char *tx, const char *rx);
|
|
#endif
|