ASoC: imx-audmix: remove cpu_mclk which is from cpu dai device
When defer probe happens, there may be below error:
platform 59820000.sai: Resources present before probing
The cpu_mclk clock is from the cpu dai device, if it is not released,
then the cpu dai device probe will fail for the second time.
The cpu_mclk is used to get rate for rate constraint, rate constraint
may be specific for each platform, which is not necessary for machine
driver, so remove it.
Fixes: b86ef53677
("ASoC: fsl: Add Audio Mixer machine driver")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20250213070518.547375-1-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
f6841309b6
commit
571b69f2f9
1 changed files with 0 additions and 31 deletions
|
@ -23,7 +23,6 @@ struct imx_audmix {
|
|||
struct snd_soc_card card;
|
||||
struct platform_device *audmix_pdev;
|
||||
struct platform_device *out_pdev;
|
||||
struct clk *cpu_mclk;
|
||||
int num_dai;
|
||||
struct snd_soc_dai_link *dai;
|
||||
int num_dai_conf;
|
||||
|
@ -32,34 +31,11 @@ struct imx_audmix {
|
|||
struct snd_soc_dapm_route *dapm_routes;
|
||||
};
|
||||
|
||||
static const u32 imx_audmix_rates[] = {
|
||||
8000, 12000, 16000, 24000, 32000, 48000, 64000, 96000,
|
||||
};
|
||||
|
||||
static const struct snd_pcm_hw_constraint_list imx_audmix_rate_constraints = {
|
||||
.count = ARRAY_SIZE(imx_audmix_rates),
|
||||
.list = imx_audmix_rates,
|
||||
};
|
||||
|
||||
static int imx_audmix_fe_startup(struct snd_pcm_substream *substream)
|
||||
{
|
||||
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
|
||||
struct imx_audmix *priv = snd_soc_card_get_drvdata(rtd->card);
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
struct device *dev = rtd->card->dev;
|
||||
unsigned long clk_rate = clk_get_rate(priv->cpu_mclk);
|
||||
int ret;
|
||||
|
||||
if (clk_rate % 24576000 == 0) {
|
||||
ret = snd_pcm_hw_constraint_list(runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_RATE,
|
||||
&imx_audmix_rate_constraints);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
} else {
|
||||
dev_warn(dev, "mclk may be not supported %lu\n", clk_rate);
|
||||
}
|
||||
|
||||
ret = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_CHANNELS,
|
||||
1, 8);
|
||||
if (ret < 0)
|
||||
|
@ -323,13 +299,6 @@ static int imx_audmix_probe(struct platform_device *pdev)
|
|||
}
|
||||
put_device(&cpu_pdev->dev);
|
||||
|
||||
priv->cpu_mclk = devm_clk_get(&cpu_pdev->dev, "mclk1");
|
||||
if (IS_ERR(priv->cpu_mclk)) {
|
||||
ret = PTR_ERR(priv->cpu_mclk);
|
||||
dev_err(&cpu_pdev->dev, "failed to get DAI mclk1: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
priv->audmix_pdev = audmix_pdev;
|
||||
priv->out_pdev = cpu_pdev;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue