Unverified Commit 89621b57 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: uniphier: merge DAI call back functions into ops



ALSA SoC merges DAI call backs into .ops.
This patch merge these into one.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87pm3x9m62.wl-kuninori.morimoto.gx@renesas.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent bd6af1bc
Loading
Loading
Loading
Loading
+134 −27
Original line number Diff line number Diff line
@@ -355,30 +355,7 @@ static int uniphier_aio_prepare(struct snd_pcm_substream *substream,
	return 0;
}

const struct snd_soc_dai_ops uniphier_aio_i2s_ops = {
	.set_sysclk  = uniphier_aio_set_sysclk,
	.set_pll     = uniphier_aio_set_pll,
	.set_fmt     = uniphier_aio_set_fmt,
	.startup     = uniphier_aio_startup,
	.shutdown    = uniphier_aio_shutdown,
	.hw_params   = uniphier_aio_hw_params,
	.hw_free     = uniphier_aio_hw_free,
	.prepare     = uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_i2s_ops);

const struct snd_soc_dai_ops uniphier_aio_spdif_ops = {
	.set_sysclk  = uniphier_aio_set_sysclk,
	.set_pll     = uniphier_aio_set_pll,
	.startup     = uniphier_aio_startup,
	.shutdown    = uniphier_aio_shutdown,
	.hw_params   = uniphier_aio_hw_params,
	.hw_free     = uniphier_aio_hw_free,
	.prepare     = uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_spdif_ops);

int uniphier_aio_dai_probe(struct snd_soc_dai *dai)
static int uniphier_aio_dai_probe(struct snd_soc_dai *dai)
{
	struct uniphier_aio *aio = uniphier_priv(dai);
	int i;
@@ -403,9 +380,8 @@ int uniphier_aio_dai_probe(struct snd_soc_dai *dai)

	return 0;
}
EXPORT_SYMBOL_GPL(uniphier_aio_dai_probe);

int uniphier_aio_dai_remove(struct snd_soc_dai *dai)
static int uniphier_aio_dai_remove(struct snd_soc_dai *dai)
{
	struct uniphier_aio *aio = uniphier_priv(dai);

@@ -413,7 +389,138 @@ int uniphier_aio_dai_remove(struct snd_soc_dai *dai)

	return 0;
}
EXPORT_SYMBOL_GPL(uniphier_aio_dai_remove);

static int uniphier_aio_ld11_probe(struct snd_soc_dai *dai)
{
	int ret;

	ret = uniphier_aio_dai_probe(dai);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A1, 0, 0, 36864000);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F1, 0, 0, 36864000);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A2, 0, 0, 33868800);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F2, 0, 0, 33868800);
	if (ret < 0)
		return ret;

	return 0;
}

static int uniphier_aio_pxs2_probe(struct snd_soc_dai *dai)
{
	int ret;

	ret = uniphier_aio_dai_probe(dai);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A1, 0, 0, 36864000);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F1, 0, 0, 36864000);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A2, 0, 0, 33868800);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F2, 0, 0, 33868800);
	if (ret < 0)
		return ret;

	return 0;
}

const struct snd_soc_dai_ops uniphier_aio_i2s_ld11_ops = {
	.probe		= uniphier_aio_ld11_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.set_fmt	= uniphier_aio_set_fmt,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_i2s_ld11_ops);

const struct snd_soc_dai_ops uniphier_aio_spdif_ld11_ops = {
	.probe		= uniphier_aio_ld11_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_spdif_ld11_ops);

const struct snd_soc_dai_ops uniphier_aio_spdif_ld11_ops2 = {
	.probe		= uniphier_aio_ld11_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
	.compress_new	= snd_soc_new_compress,
};
EXPORT_SYMBOL_GPL(uniphier_aio_spdif_ld11_ops2);

const struct snd_soc_dai_ops uniphier_aio_i2s_pxs2_ops = {
	.probe		= uniphier_aio_pxs2_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.set_fmt	= uniphier_aio_set_fmt,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_i2s_pxs2_ops);

const struct snd_soc_dai_ops uniphier_aio_spdif_pxs2_ops = {
	.probe		= uniphier_aio_pxs2_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
};
EXPORT_SYMBOL_GPL(uniphier_aio_spdif_pxs2_ops);

const struct snd_soc_dai_ops uniphier_aio_spdif_pxs2_ops2 = {
	.probe		= uniphier_aio_pxs2_probe,
	.remove		= uniphier_aio_dai_remove,
	.set_sysclk	= uniphier_aio_set_sysclk,
	.set_pll	= uniphier_aio_set_pll,
	.startup	= uniphier_aio_startup,
	.shutdown	= uniphier_aio_shutdown,
	.hw_params	= uniphier_aio_hw_params,
	.hw_free	= uniphier_aio_hw_free,
	.prepare	= uniphier_aio_prepare,
	.compress_new	= snd_soc_new_compress,
};
EXPORT_SYMBOL_GPL(uniphier_aio_spdif_pxs2_ops2);

static void uniphier_aio_dai_suspend(struct snd_soc_dai *dai)
{
+9 −53
Original line number Diff line number Diff line
@@ -188,36 +188,9 @@ static const struct uniphier_aio_pll uniphier_aio_pll_ld11[] = {
	[AUD_PLL_HSC0] = { .enable = true, },
};

static int uniphier_aio_ld11_probe(struct snd_soc_dai *dai)
{
	int ret;

	ret = uniphier_aio_dai_probe(dai);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A1, 0, 0, 36864000);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F1, 0, 0, 36864000);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A2, 0, 0, 33868800);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F2, 0, 0, 33868800);
	if (ret < 0)
		return ret;

	return 0;
}

static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
	{
		.name    = AUD_GNAME_HDMI,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_PCMOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -234,12 +207,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_PCMIN2,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.capture = {
			.stream_name = AUD_NAME_PCMIN2,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -247,12 +218,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_GNAME_LINE,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_PCMOUT2,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -267,12 +236,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_HPCMOUT1,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_HPCMOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -280,12 +247,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 8,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_PCMOUT3,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_PCMOUT3,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -293,12 +258,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_HIECOUT1,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_HIECOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -306,12 +269,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_ld11_ops,
	},
	{
		.name    = AUD_NAME_EPCMOUT2,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_EPCMOUT2,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -321,12 +282,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_EPCMOUT3,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_EPCMOUT3,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -336,19 +295,16 @@ static struct snd_soc_dai_driver uniphier_aio_dai_ld11[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_ld11_ops,
	},
	{
		.name    = AUD_NAME_HIECCOMPOUT1,
		.probe   = uniphier_aio_ld11_probe,
		.remove  = uniphier_aio_dai_remove,
		.compress_new = snd_soc_new_compress,
		.playback = {
			.stream_name = AUD_NAME_HIECCOMPOUT1,
			.channels_min = 1,
			.channels_max = 1,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_ld11_ops2,
	},
};

+7 −48
Original line number Diff line number Diff line
@@ -141,36 +141,9 @@ static const struct uniphier_aio_pll uniphier_aio_pll_pxs2[] = {
	[AUD_PLL_HSC0] = { .enable = true, },
};

static int uniphier_aio_pxs2_probe(struct snd_soc_dai *dai)
{
	int ret;

	ret = uniphier_aio_dai_probe(dai);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A1, 0, 0, 36864000);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F1, 0, 0, 36864000);
	if (ret < 0)
		return ret;

	ret = snd_soc_dai_set_pll(dai, AUD_PLL_A2, 0, 0, 33868800);
	if (ret < 0)
		return ret;
	ret = snd_soc_dai_set_pll(dai, AUD_PLL_F2, 0, 0, 33868800);
	if (ret < 0)
		return ret;

	return 0;
}

static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
	{
		.name    = AUD_GNAME_HDMI,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_HPCMOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -178,12 +151,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_pxs2_ops,
	},
	{
		.name    = AUD_GNAME_LINE,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_PCMOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -198,12 +169,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_pxs2_ops,
	},
	{
		.name    = AUD_GNAME_AUX,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_PCMOUT2,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -218,12 +187,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_i2s_ops,
		.ops = &uniphier_aio_i2s_pxs2_ops,
	},
	{
		.name    = AUD_NAME_HIECOUT1,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_HIECOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -231,12 +198,10 @@ static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_pxs2_ops,
	},
	{
		.name    = AUD_NAME_IECOUT1,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.playback = {
			.stream_name = AUD_NAME_IECOUT1,
			.formats     = SNDRV_PCM_FMTBIT_S32_LE,
@@ -244,31 +209,25 @@ static struct snd_soc_dai_driver uniphier_aio_dai_pxs2[] = {
			.channels_min = 2,
			.channels_max = 2,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_pxs2_ops,
	},
	{
		.name    = AUD_NAME_HIECCOMPOUT1,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.compress_new = snd_soc_new_compress,
		.playback = {
			.stream_name = AUD_NAME_HIECCOMPOUT1,
			.channels_min = 1,
			.channels_max = 1,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_pxs2_ops2,
	},
	{
		.name    = AUD_NAME_IECCOMPOUT1,
		.probe   = uniphier_aio_pxs2_probe,
		.remove  = uniphier_aio_dai_remove,
		.compress_new = snd_soc_new_compress,
		.playback = {
			.stream_name = AUD_NAME_IECCOMPOUT1,
			.channels_min = 1,
			.channels_max = 1,
		},
		.ops = &uniphier_aio_spdif_ops,
		.ops = &uniphier_aio_spdif_pxs2_ops2,
	},
};

+6 −4
Original line number Diff line number Diff line
@@ -306,12 +306,14 @@ 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_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);
int uniphier_aio_probe(struct platform_device *pdev);
int uniphier_aio_remove(struct platform_device *pdev);
extern const struct snd_soc_dai_ops uniphier_aio_i2s_ops;
extern const struct snd_soc_dai_ops uniphier_aio_spdif_ops;
extern const struct snd_soc_dai_ops uniphier_aio_i2s_ld11_ops;
extern const struct snd_soc_dai_ops uniphier_aio_i2s_pxs2_ops;
extern const struct snd_soc_dai_ops uniphier_aio_spdif_ld11_ops;
extern const struct snd_soc_dai_ops uniphier_aio_spdif_ld11_ops2;
extern const struct snd_soc_dai_ops uniphier_aio_spdif_pxs2_ops;
extern const struct snd_soc_dai_ops uniphier_aio_spdif_pxs2_ops2;

u64 aio_rb_cnt(struct uniphier_aio_sub *sub);
u64 aio_rbt_cnt_to_end(struct uniphier_aio_sub *sub);