ASoC: sprd: use snd_compress_ops
We can use snd_compress_ops. Let's switch to use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87mu76vdiv.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
39118ce50b
Коммит
27ecad217c
|
@ -96,7 +96,8 @@ struct sprd_compr_stream {
|
||||||
int stage1_pointer;
|
int stage1_pointer;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int sprd_platform_compr_trigger(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_trigger(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
int cmd);
|
int cmd);
|
||||||
|
|
||||||
static void sprd_platform_compr_drain_notify(void *arg)
|
static void sprd_platform_compr_drain_notify(void *arg)
|
||||||
|
@ -125,15 +126,14 @@ static void sprd_platform_compr_dma_complete(void *data)
|
||||||
snd_compr_fragment_elapsed(cstream);
|
snd_compr_fragment_elapsed(cstream);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_dma_config(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_dma_config(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_params *params,
|
struct snd_compr_params *params,
|
||||||
int channel)
|
int channel)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
struct sprd_compr_stream *stream = runtime->private_data;
|
struct sprd_compr_stream *stream = runtime->private_data;
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
||||||
struct snd_soc_component *component =
|
|
||||||
snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
|
||||||
struct device *dev = component->dev;
|
struct device *dev = component->dev;
|
||||||
struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
|
struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
|
||||||
struct sprd_pcm_dma_params *dma_params = data->dma_params;
|
struct sprd_pcm_dma_params *dma_params = data->dma_params;
|
||||||
|
@ -261,14 +261,12 @@ sg_err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_set_params(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_set_params(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_params *params)
|
struct snd_compr_params *params)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
struct sprd_compr_stream *stream = runtime->private_data;
|
struct sprd_compr_stream *stream = runtime->private_data;
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
|
||||||
struct snd_soc_component *component =
|
|
||||||
snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
|
||||||
struct device *dev = component->dev;
|
struct device *dev = component->dev;
|
||||||
struct sprd_compr_params compr_params = { };
|
struct sprd_compr_params compr_params = { };
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -279,13 +277,13 @@ static int sprd_platform_compr_set_params(struct snd_compr_stream *cstream,
|
||||||
* means once the source channel's transaction is done, it will trigger
|
* means once the source channel's transaction is done, it will trigger
|
||||||
* the destination channel's transaction automatically.
|
* the destination channel's transaction automatically.
|
||||||
*/
|
*/
|
||||||
ret = sprd_platform_compr_dma_config(cstream, params, 1);
|
ret = sprd_platform_compr_dma_config(component, cstream, params, 1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to config stage 1 DMA: %d\n", ret);
|
dev_err(dev, "failed to config stage 1 DMA: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = sprd_platform_compr_dma_config(cstream, params, 0);
|
ret = sprd_platform_compr_dma_config(component, cstream, params, 0);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to config stage 0 DMA: %d\n", ret);
|
dev_err(dev, "failed to config stage 0 DMA: %d\n", ret);
|
||||||
goto config_err;
|
goto config_err;
|
||||||
|
@ -314,12 +312,11 @@ config_err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_open(struct snd_compr_stream *cstream)
|
static int sprd_platform_compr_open(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
||||||
struct snd_soc_component *component =
|
|
||||||
snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
|
||||||
struct device *dev = component->dev;
|
struct device *dev = component->dev;
|
||||||
struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
|
struct sprd_compr_data *data = snd_soc_dai_get_drvdata(asoc_rtd_to_cpu(rtd, 0));
|
||||||
struct sprd_compr_stream *stream;
|
struct sprd_compr_stream *stream;
|
||||||
|
@ -392,13 +389,11 @@ err_iram:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_free(struct snd_compr_stream *cstream)
|
static int sprd_platform_compr_free(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
struct sprd_compr_stream *stream = runtime->private_data;
|
struct sprd_compr_stream *stream = runtime->private_data;
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
|
||||||
struct snd_soc_component *component =
|
|
||||||
snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
|
||||||
struct device *dev = component->dev;
|
struct device *dev = component->dev;
|
||||||
int stream_id = cstream->direction, i;
|
int stream_id = cstream->direction, i;
|
||||||
|
|
||||||
|
@ -420,14 +415,12 @@ static int sprd_platform_compr_free(struct snd_compr_stream *cstream)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_trigger(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_trigger(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
int cmd)
|
int cmd)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
struct sprd_compr_stream *stream = runtime->private_data;
|
struct sprd_compr_stream *stream = runtime->private_data;
|
||||||
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
|
|
||||||
struct snd_soc_component *component =
|
|
||||||
snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
|
||||||
struct device *dev = component->dev;
|
struct device *dev = component->dev;
|
||||||
int channels = stream->num_channels, ret = 0, i;
|
int channels = stream->num_channels, ret = 0, i;
|
||||||
int stream_id = cstream->direction;
|
int stream_id = cstream->direction;
|
||||||
|
@ -518,7 +511,8 @@ static int sprd_platform_compr_trigger(struct snd_compr_stream *cstream,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_pointer(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_pointer(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_tstamp *tstamp)
|
struct snd_compr_tstamp *tstamp)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
|
@ -532,7 +526,8 @@ static int sprd_platform_compr_pointer(struct snd_compr_stream *cstream,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_copy(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_copy(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
char __user *buf, size_t count)
|
char __user *buf, size_t count)
|
||||||
{
|
{
|
||||||
struct snd_compr_runtime *runtime = cstream->runtime;
|
struct snd_compr_runtime *runtime = cstream->runtime;
|
||||||
|
@ -609,7 +604,8 @@ copy_done:
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sprd_platform_compr_get_caps(struct snd_compr_stream *cstream,
|
static int sprd_platform_compr_get_caps(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_caps *caps)
|
struct snd_compr_caps *caps)
|
||||||
{
|
{
|
||||||
caps->direction = cstream->direction;
|
caps->direction = cstream->direction;
|
||||||
|
@ -625,7 +621,8 @@ static int sprd_platform_compr_get_caps(struct snd_compr_stream *cstream,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sprd_platform_compr_get_codec_caps(struct snd_compr_stream *cstream,
|
sprd_platform_compr_get_codec_caps(struct snd_soc_component *component,
|
||||||
|
struct snd_compr_stream *cstream,
|
||||||
struct snd_compr_codec_caps *codec)
|
struct snd_compr_codec_caps *codec)
|
||||||
{
|
{
|
||||||
switch (codec->codec) {
|
switch (codec->codec) {
|
||||||
|
@ -658,7 +655,7 @@ sprd_platform_compr_get_codec_caps(struct snd_compr_stream *cstream,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct snd_compr_ops sprd_platform_compr_ops = {
|
const struct snd_compress_ops sprd_platform_compress_ops = {
|
||||||
.open = sprd_platform_compr_open,
|
.open = sprd_platform_compr_open,
|
||||||
.free = sprd_platform_compr_free,
|
.free = sprd_platform_compr_free,
|
||||||
.set_params = sprd_platform_compr_set_params,
|
.set_params = sprd_platform_compr_set_params,
|
||||||
|
|
|
@ -515,7 +515,7 @@ static const struct snd_soc_component_driver sprd_soc_component = {
|
||||||
.mmap = sprd_pcm_mmap,
|
.mmap = sprd_pcm_mmap,
|
||||||
.pcm_construct = sprd_pcm_new,
|
.pcm_construct = sprd_pcm_new,
|
||||||
.pcm_destruct = sprd_pcm_free,
|
.pcm_destruct = sprd_pcm_free,
|
||||||
.compr_ops = &sprd_platform_compr_ops,
|
.compress_ops = &sprd_platform_compress_ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int sprd_soc_platform_probe(struct platform_device *pdev)
|
static int sprd_soc_platform_probe(struct platform_device *pdev)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#define DRV_NAME "sprd_pcm_dma"
|
#define DRV_NAME "sprd_pcm_dma"
|
||||||
#define SPRD_PCM_CHANNEL_MAX 2
|
#define SPRD_PCM_CHANNEL_MAX 2
|
||||||
|
|
||||||
extern const struct snd_compr_ops sprd_platform_compr_ops;
|
extern const struct snd_compress_ops sprd_platform_compress_ops;
|
||||||
|
|
||||||
struct sprd_pcm_dma_params {
|
struct sprd_pcm_dma_params {
|
||||||
dma_addr_t dev_phys[SPRD_PCM_CHANNEL_MAX];
|
dma_addr_t dev_phys[SPRD_PCM_CHANNEL_MAX];
|
||||||
|
|
Загрузка…
Ссылка в новой задаче