Merge existing fixes from asoc/for-5.15
This commit is contained in:
commit
0c7985e1b9
|
@ -17891,7 +17891,8 @@ M: Olivier Moysan <olivier.moysan@foss.st.com>
|
||||||
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/iio/adc/st,stm32-*.yaml
|
F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
|
||||||
|
F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml
|
||||||
F: sound/soc/stm/
|
F: sound/soc/stm/
|
||||||
|
|
||||||
STM32 TIMER/LPTIMER DRIVERS
|
STM32 TIMER/LPTIMER DRIVERS
|
||||||
|
|
|
@ -1073,6 +1073,16 @@ static int fsl_esai_probe(struct platform_device *pdev)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_pm_get_sync;
|
goto err_pm_get_sync;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register platform component before registering cpu dai for there
|
||||||
|
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
|
||||||
|
*/
|
||||||
|
ret = imx_pcm_dma_init(pdev, IMX_ESAI_DMABUF_SIZE);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(&pdev->dev, "failed to init imx pcm dma: %d\n", ret);
|
||||||
|
goto err_pm_get_sync;
|
||||||
|
}
|
||||||
|
|
||||||
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_esai_component,
|
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_esai_component,
|
||||||
&fsl_esai_dai, 1);
|
&fsl_esai_dai, 1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1082,12 +1092,6 @@ static int fsl_esai_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
INIT_WORK(&esai_priv->work, fsl_esai_hw_reset);
|
INIT_WORK(&esai_priv->work, fsl_esai_hw_reset);
|
||||||
|
|
||||||
ret = imx_pcm_dma_init(pdev, IMX_ESAI_DMABUF_SIZE);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(&pdev->dev, "failed to init imx pcm dma: %d\n", ret);
|
|
||||||
goto err_pm_get_sync;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
err_pm_get_sync:
|
err_pm_get_sync:
|
||||||
|
|
|
@ -737,18 +737,23 @@ static int fsl_micfil_probe(struct platform_device *pdev)
|
||||||
pm_runtime_enable(&pdev->dev);
|
pm_runtime_enable(&pdev->dev);
|
||||||
regcache_cache_only(micfil->regmap, true);
|
regcache_cache_only(micfil->regmap, true);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register platform component before registering cpu dai for there
|
||||||
|
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
|
||||||
|
*/
|
||||||
|
ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(&pdev->dev, "failed to pcm register\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_micfil_component,
|
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_micfil_component,
|
||||||
&fsl_micfil_dai, 1);
|
&fsl_micfil_dai, 1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&pdev->dev, "failed to register component %s\n",
|
dev_err(&pdev->dev, "failed to register component %s\n",
|
||||||
fsl_micfil_component.name);
|
fsl_micfil_component.name);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
|
|
||||||
if (ret)
|
|
||||||
dev_err(&pdev->dev, "failed to pcm register\n");
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1152,11 +1152,10 @@ static int fsl_sai_probe(struct platform_device *pdev)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_pm_get_sync;
|
goto err_pm_get_sync;
|
||||||
|
|
||||||
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
|
/*
|
||||||
&sai->cpu_dai_drv, 1);
|
* Register platform component before registering cpu dai for there
|
||||||
if (ret)
|
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
|
||||||
goto err_pm_get_sync;
|
*/
|
||||||
|
|
||||||
if (sai->soc_data->use_imx_pcm) {
|
if (sai->soc_data->use_imx_pcm) {
|
||||||
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
|
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -1167,6 +1166,11 @@ static int fsl_sai_probe(struct platform_device *pdev)
|
||||||
goto err_pm_get_sync;
|
goto err_pm_get_sync;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
|
||||||
|
&sai->cpu_dai_drv, 1);
|
||||||
|
if (ret)
|
||||||
|
goto err_pm_get_sync;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
err_pm_get_sync:
|
err_pm_get_sync:
|
||||||
|
|
|
@ -1434,6 +1434,16 @@ static int fsl_spdif_probe(struct platform_device *pdev)
|
||||||
pm_runtime_enable(&pdev->dev);
|
pm_runtime_enable(&pdev->dev);
|
||||||
regcache_cache_only(spdif_priv->regmap, true);
|
regcache_cache_only(spdif_priv->regmap, true);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register platform component before registering cpu dai for there
|
||||||
|
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
|
||||||
|
*/
|
||||||
|
ret = imx_pcm_dma_init(pdev, IMX_SPDIF_DMABUF_SIZE);
|
||||||
|
if (ret) {
|
||||||
|
dev_err_probe(&pdev->dev, ret, "imx_pcm_dma_init failed\n");
|
||||||
|
goto err_pm_disable;
|
||||||
|
}
|
||||||
|
|
||||||
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_spdif_component,
|
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_spdif_component,
|
||||||
&spdif_priv->cpu_dai_drv, 1);
|
&spdif_priv->cpu_dai_drv, 1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -1441,12 +1451,6 @@ static int fsl_spdif_probe(struct platform_device *pdev)
|
||||||
goto err_pm_disable;
|
goto err_pm_disable;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = imx_pcm_dma_init(pdev, IMX_SPDIF_DMABUF_SIZE);
|
|
||||||
if (ret) {
|
|
||||||
dev_err_probe(&pdev->dev, ret, "imx_pcm_dma_init failed\n");
|
|
||||||
goto err_pm_disable;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
err_pm_disable:
|
err_pm_disable:
|
||||||
|
|
|
@ -1215,18 +1215,23 @@ static int fsl_xcvr_probe(struct platform_device *pdev)
|
||||||
pm_runtime_enable(dev);
|
pm_runtime_enable(dev);
|
||||||
regcache_cache_only(xcvr->regmap, true);
|
regcache_cache_only(xcvr->regmap, true);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register platform component before registering cpu dai for there
|
||||||
|
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
|
||||||
|
*/
|
||||||
|
ret = devm_snd_dmaengine_pcm_register(dev, NULL, 0);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(dev, "failed to pcm register\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
ret = devm_snd_soc_register_component(dev, &fsl_xcvr_comp,
|
ret = devm_snd_soc_register_component(dev, &fsl_xcvr_comp,
|
||||||
&fsl_xcvr_dai, 1);
|
&fsl_xcvr_dai, 1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register component %s\n",
|
dev_err(dev, "failed to register component %s\n",
|
||||||
fsl_xcvr_comp.name);
|
fsl_xcvr_comp.name);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = devm_snd_dmaengine_pcm_register(dev, NULL, 0);
|
|
||||||
if (ret)
|
|
||||||
dev_err(dev, "failed to pcm register\n");
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -929,6 +929,11 @@ static int create_sdw_dailink(struct snd_soc_card *card,
|
||||||
cpus + *cpu_id, cpu_dai_num,
|
cpus + *cpu_id, cpu_dai_num,
|
||||||
codecs, codec_num,
|
codecs, codec_num,
|
||||||
NULL, &sdw_ops);
|
NULL, &sdw_ops);
|
||||||
|
/*
|
||||||
|
* SoundWire DAILINKs use 'stream' functions and Bank Switch operations
|
||||||
|
* based on wait_for_completion(), tag them as 'nonatomic'.
|
||||||
|
*/
|
||||||
|
dai_links[*be_index].nonatomic = true;
|
||||||
|
|
||||||
ret = set_codec_init_func(card, link, dai_links + (*be_index)++,
|
ret = set_codec_init_func(card, link, dai_links + (*be_index)++,
|
||||||
playback, group_id);
|
playback, group_id);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
config SND_SOC_MEDIATEK
|
config SND_SOC_MEDIATEK
|
||||||
tristate
|
tristate
|
||||||
|
select REGMAP_MMIO
|
||||||
|
|
||||||
config SND_SOC_MT2701
|
config SND_SOC_MT2701
|
||||||
tristate "ASoC support for Mediatek MT2701 chip"
|
tristate "ASoC support for Mediatek MT2701 chip"
|
||||||
|
@ -188,7 +189,9 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682
|
||||||
config SND_SOC_MT8195
|
config SND_SOC_MT8195
|
||||||
tristate "ASoC support for Mediatek MT8195 chip"
|
tristate "ASoC support for Mediatek MT8195 chip"
|
||||||
depends on ARCH_MEDIATEK || COMPILE_TEST
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
||||||
|
depends on COMMON_CLK
|
||||||
select SND_SOC_MEDIATEK
|
select SND_SOC_MEDIATEK
|
||||||
|
select MFD_SYSCON if SND_SOC_MT6359
|
||||||
help
|
help
|
||||||
This adds ASoC platform driver support for Mediatek MT8195 chip
|
This adds ASoC platform driver support for Mediatek MT8195 chip
|
||||||
that can be used with other codecs.
|
that can be used with other codecs.
|
||||||
|
|
|
@ -334,9 +334,11 @@ int mtk_afe_suspend(struct snd_soc_component *component)
|
||||||
devm_kcalloc(dev, afe->reg_back_up_list_num,
|
devm_kcalloc(dev, afe->reg_back_up_list_num,
|
||||||
sizeof(unsigned int), GFP_KERNEL);
|
sizeof(unsigned int), GFP_KERNEL);
|
||||||
|
|
||||||
for (i = 0; i < afe->reg_back_up_list_num; i++)
|
if (afe->reg_back_up) {
|
||||||
regmap_read(regmap, afe->reg_back_up_list[i],
|
for (i = 0; i < afe->reg_back_up_list_num; i++)
|
||||||
&afe->reg_back_up[i]);
|
regmap_read(regmap, afe->reg_back_up_list[i],
|
||||||
|
&afe->reg_back_up[i]);
|
||||||
|
}
|
||||||
|
|
||||||
afe->suspended = true;
|
afe->suspended = true;
|
||||||
afe->runtime_suspend(dev);
|
afe->runtime_suspend(dev);
|
||||||
|
@ -356,12 +358,13 @@ int mtk_afe_resume(struct snd_soc_component *component)
|
||||||
|
|
||||||
afe->runtime_resume(dev);
|
afe->runtime_resume(dev);
|
||||||
|
|
||||||
if (!afe->reg_back_up)
|
if (!afe->reg_back_up) {
|
||||||
dev_dbg(dev, "%s no reg_backup\n", __func__);
|
dev_dbg(dev, "%s no reg_backup\n", __func__);
|
||||||
|
} else {
|
||||||
for (i = 0; i < afe->reg_back_up_list_num; i++)
|
for (i = 0; i < afe->reg_back_up_list_num; i++)
|
||||||
mtk_regmap_write(regmap, afe->reg_back_up_list[i],
|
mtk_regmap_write(regmap, afe->reg_back_up_list[i],
|
||||||
afe->reg_back_up[i]);
|
afe->reg_back_up[i]);
|
||||||
|
}
|
||||||
|
|
||||||
afe->suspended = false;
|
afe->suspended = false;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue