Unverified Commit 171d1785 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: uniphier: use snd_compress_ops

parent 3a5ccf25
Loading
Loading
Loading
Loading
+29 −16
Original line number Diff line number Diff line
@@ -16,8 +16,10 @@

#include "aio.h"

static int uniphier_aio_compr_prepare(struct snd_compr_stream *cstream);
static int uniphier_aio_compr_hw_free(struct snd_compr_stream *cstream);
static int uniphier_aio_compr_prepare(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream);
static int uniphier_aio_compr_hw_free(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream);

static int uniphier_aio_comprdma_new(struct snd_soc_pcm_runtime *rtd)
{
@@ -70,7 +72,8 @@ static int uniphier_aio_comprdma_free(struct snd_soc_pcm_runtime *rtd)
	return 0;
}

static int uniphier_aio_compr_open(struct snd_compr_stream *cstream)
static int uniphier_aio_compr_open(struct snd_soc_component *component,
				   struct snd_compr_stream *cstream)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
	struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0));
@@ -95,14 +98,15 @@ static int uniphier_aio_compr_open(struct snd_compr_stream *cstream)
	return 0;
}

static int uniphier_aio_compr_free(struct snd_compr_stream *cstream)
static int uniphier_aio_compr_free(struct snd_soc_component *component,
				   struct snd_compr_stream *cstream)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
	struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0));
	struct uniphier_aio_sub *sub = &aio->sub[cstream->direction];
	int ret;

	ret = uniphier_aio_compr_hw_free(cstream);
	ret = uniphier_aio_compr_hw_free(component, cstream);
	if (ret)
		return ret;
	ret = uniphier_aio_comprdma_free(rtd);
@@ -114,7 +118,8 @@ static int uniphier_aio_compr_free(struct snd_compr_stream *cstream)
	return 0;
}

static int uniphier_aio_compr_get_params(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_get_params(struct snd_soc_component *component,
					 struct snd_compr_stream *cstream,
					 struct snd_codec *params)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -126,7 +131,8 @@ static int uniphier_aio_compr_get_params(struct snd_compr_stream *cstream,
	return 0;
}

static int uniphier_aio_compr_set_params(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_set_params(struct snd_soc_component *component,
					 struct snd_compr_stream *cstream,
					 struct snd_compr_params *params)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -155,14 +161,15 @@ static int uniphier_aio_compr_set_params(struct snd_compr_stream *cstream,
	aio_port_reset(sub);
	aio_src_reset(sub);

	ret = uniphier_aio_compr_prepare(cstream);
	ret = uniphier_aio_compr_prepare(component, cstream);
	if (ret)
		return ret;

	return 0;
}

static int uniphier_aio_compr_hw_free(struct snd_compr_stream *cstream)
static int uniphier_aio_compr_hw_free(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
	struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0));
@@ -173,7 +180,8 @@ static int uniphier_aio_compr_hw_free(struct snd_compr_stream *cstream)
	return 0;
}

static int uniphier_aio_compr_prepare(struct snd_compr_stream *cstream)
static int uniphier_aio_compr_prepare(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
	struct snd_compr_runtime *runtime = cstream->runtime;
@@ -210,7 +218,8 @@ static int uniphier_aio_compr_prepare(struct snd_compr_stream *cstream)
	return 0;
}

static int uniphier_aio_compr_trigger(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_trigger(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream,
				      int cmd)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -243,7 +252,8 @@ static int uniphier_aio_compr_trigger(struct snd_compr_stream *cstream,
	return ret;
}

static int uniphier_aio_compr_pointer(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_pointer(struct snd_soc_component *component,
				      struct snd_compr_stream *cstream,
				      struct snd_compr_tstamp *tstamp)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -316,7 +326,8 @@ static int aio_compr_send_to_hw(struct uniphier_aio_sub *sub,
	return 0;
}

static int uniphier_aio_compr_copy(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_copy(struct snd_soc_component *component,
				   struct snd_compr_stream *cstream,
				   char __user *buf, size_t count)
{
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -375,7 +386,8 @@ static int uniphier_aio_compr_copy(struct snd_compr_stream *cstream,
	return cnt;
}

static int uniphier_aio_compr_get_caps(struct snd_compr_stream *cstream,
static int uniphier_aio_compr_get_caps(struct snd_soc_component *component,
				       struct snd_compr_stream *cstream,
				       struct snd_compr_caps *caps)
{
	caps->num_codecs = 1;
@@ -401,7 +413,8 @@ static const struct snd_compr_codec_caps caps_iec = {
	.descriptor[0].formats = 0,
};

static int uniphier_aio_compr_get_codec_caps(struct snd_compr_stream *stream,
static int uniphier_aio_compr_get_codec_caps(struct snd_soc_component *component,
					     struct snd_compr_stream *stream,
					     struct snd_compr_codec_caps *codec)
{
	if (codec->codec == SND_AUDIOCODEC_IEC61937)
@@ -412,7 +425,7 @@ static int uniphier_aio_compr_get_codec_caps(struct snd_compr_stream *stream,
	return 0;
}

const struct snd_compr_ops uniphier_aio_compr_ops = {
const struct snd_compress_ops uniphier_aio_compress_ops = {
	.open           = uniphier_aio_compr_open,
	.free           = uniphier_aio_compr_free,
	.get_params     = uniphier_aio_compr_get_params,
+1 −1
Original line number Diff line number Diff line
@@ -227,7 +227,7 @@ static const struct snd_soc_component_driver uniphier_soc_platform = {
	.pointer	= uniphier_aiodma_pointer,
	.mmap		= uniphier_aiodma_mmap,
	.pcm_construct	= uniphier_aiodma_new,
	.compr_ops	= &uniphier_aio_compr_ops,
	.compress_ops	= &uniphier_aio_compress_ops,
};

static const struct regmap_config aiodma_regmap_config = {
+1 −1
Original line number Diff line number Diff line
@@ -304,7 +304,7 @@ static inline struct uniphier_aio *uniphier_priv(struct snd_soc_dai *dai)
}

int uniphier_aiodma_soc_register_platform(struct platform_device *pdev);
extern const struct snd_compr_ops uniphier_aio_compr_ops;
extern const struct snd_compress_ops uniphier_aio_compress_ops;

int uniphier_aio_dai_probe(struct snd_soc_dai *dai);
int uniphier_aio_dai_remove(struct snd_soc_dai *dai);