Skip to content

Commit 0c7985e

Browse files
committed
Merge existing fixes from asoc/for-5.15
2 parents 6880fa6 + 7bd5d97 commit 0c7985e

File tree

9 files changed

+69
-35
lines changed

9 files changed

+69
-35
lines changed

MAINTAINERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17891,7 +17891,8 @@ M: Olivier Moysan <olivier.moysan@foss.st.com>
1789117891
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
1789217892
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1789317893
S: Maintained
17894-
F: Documentation/devicetree/bindings/iio/adc/st,stm32-*.yaml
17894+
F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
17895+
F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml
1789517896
F: sound/soc/stm/
1789617897

1789717898
STM32 TIMER/LPTIMER DRIVERS

sound/soc/fsl/fsl_esai.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,6 +1073,16 @@ static int fsl_esai_probe(struct platform_device *pdev)
10731073
if (ret < 0)
10741074
goto err_pm_get_sync;
10751075

1076+
/*
1077+
* Register platform component before registering cpu dai for there
1078+
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
1079+
*/
1080+
ret = imx_pcm_dma_init(pdev, IMX_ESAI_DMABUF_SIZE);
1081+
if (ret) {
1082+
dev_err(&pdev->dev, "failed to init imx pcm dma: %d\n", ret);
1083+
goto err_pm_get_sync;
1084+
}
1085+
10761086
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_esai_component,
10771087
&fsl_esai_dai, 1);
10781088
if (ret) {
@@ -1082,12 +1092,6 @@ static int fsl_esai_probe(struct platform_device *pdev)
10821092

10831093
INIT_WORK(&esai_priv->work, fsl_esai_hw_reset);
10841094

1085-
ret = imx_pcm_dma_init(pdev, IMX_ESAI_DMABUF_SIZE);
1086-
if (ret) {
1087-
dev_err(&pdev->dev, "failed to init imx pcm dma: %d\n", ret);
1088-
goto err_pm_get_sync;
1089-
}
1090-
10911095
return ret;
10921096

10931097
err_pm_get_sync:

sound/soc/fsl/fsl_micfil.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -737,18 +737,23 @@ static int fsl_micfil_probe(struct platform_device *pdev)
737737
pm_runtime_enable(&pdev->dev);
738738
regcache_cache_only(micfil->regmap, true);
739739

740+
/*
741+
* Register platform component before registering cpu dai for there
742+
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
743+
*/
744+
ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
745+
if (ret) {
746+
dev_err(&pdev->dev, "failed to pcm register\n");
747+
return ret;
748+
}
749+
740750
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_micfil_component,
741751
&fsl_micfil_dai, 1);
742752
if (ret) {
743753
dev_err(&pdev->dev, "failed to register component %s\n",
744754
fsl_micfil_component.name);
745-
return ret;
746755
}
747756

748-
ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
749-
if (ret)
750-
dev_err(&pdev->dev, "failed to pcm register\n");
751-
752757
return ret;
753758
}
754759

sound/soc/fsl/fsl_sai.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,11 +1152,10 @@ static int fsl_sai_probe(struct platform_device *pdev)
11521152
if (ret < 0)
11531153
goto err_pm_get_sync;
11541154

1155-
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
1156-
&sai->cpu_dai_drv, 1);
1157-
if (ret)
1158-
goto err_pm_get_sync;
1159-
1155+
/*
1156+
* Register platform component before registering cpu dai for there
1157+
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
1158+
*/
11601159
if (sai->soc_data->use_imx_pcm) {
11611160
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
11621161
if (ret)
@@ -1167,6 +1166,11 @@ static int fsl_sai_probe(struct platform_device *pdev)
11671166
goto err_pm_get_sync;
11681167
}
11691168

1169+
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
1170+
&sai->cpu_dai_drv, 1);
1171+
if (ret)
1172+
goto err_pm_get_sync;
1173+
11701174
return ret;
11711175

11721176
err_pm_get_sync:

sound/soc/fsl/fsl_spdif.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,16 +1434,20 @@ static int fsl_spdif_probe(struct platform_device *pdev)
14341434
pm_runtime_enable(&pdev->dev);
14351435
regcache_cache_only(spdif_priv->regmap, true);
14361436

1437-
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_spdif_component,
1438-
&spdif_priv->cpu_dai_drv, 1);
1437+
/*
1438+
* Register platform component before registering cpu dai for there
1439+
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
1440+
*/
1441+
ret = imx_pcm_dma_init(pdev, IMX_SPDIF_DMABUF_SIZE);
14391442
if (ret) {
1440-
dev_err(&pdev->dev, "failed to register DAI: %d\n", ret);
1443+
dev_err_probe(&pdev->dev, ret, "imx_pcm_dma_init failed\n");
14411444
goto err_pm_disable;
14421445
}
14431446

1444-
ret = imx_pcm_dma_init(pdev, IMX_SPDIF_DMABUF_SIZE);
1447+
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_spdif_component,
1448+
&spdif_priv->cpu_dai_drv, 1);
14451449
if (ret) {
1446-
dev_err_probe(&pdev->dev, ret, "imx_pcm_dma_init failed\n");
1450+
dev_err(&pdev->dev, "failed to register DAI: %d\n", ret);
14471451
goto err_pm_disable;
14481452
}
14491453

sound/soc/fsl/fsl_xcvr.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,18 +1215,23 @@ static int fsl_xcvr_probe(struct platform_device *pdev)
12151215
pm_runtime_enable(dev);
12161216
regcache_cache_only(xcvr->regmap, true);
12171217

1218+
/*
1219+
* Register platform component before registering cpu dai for there
1220+
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
1221+
*/
1222+
ret = devm_snd_dmaengine_pcm_register(dev, NULL, 0);
1223+
if (ret) {
1224+
dev_err(dev, "failed to pcm register\n");
1225+
return ret;
1226+
}
1227+
12181228
ret = devm_snd_soc_register_component(dev, &fsl_xcvr_comp,
12191229
&fsl_xcvr_dai, 1);
12201230
if (ret) {
12211231
dev_err(dev, "failed to register component %s\n",
12221232
fsl_xcvr_comp.name);
1223-
return ret;
12241233
}
12251234

1226-
ret = devm_snd_dmaengine_pcm_register(dev, NULL, 0);
1227-
if (ret)
1228-
dev_err(dev, "failed to pcm register\n");
1229-
12301235
return ret;
12311236
}
12321237

sound/soc/intel/boards/sof_sdw.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -929,6 +929,11 @@ static int create_sdw_dailink(struct snd_soc_card *card,
929929
cpus + *cpu_id, cpu_dai_num,
930930
codecs, codec_num,
931931
NULL, &sdw_ops);
932+
/*
933+
* SoundWire DAILINKs use 'stream' functions and Bank Switch operations
934+
* based on wait_for_completion(), tag them as 'nonatomic'.
935+
*/
936+
dai_links[*be_index].nonatomic = true;
932937

933938
ret = set_codec_init_func(card, link, dai_links + (*be_index)++,
934939
playback, group_id);

sound/soc/mediatek/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0-only
22
config SND_SOC_MEDIATEK
33
tristate
4+
select REGMAP_MMIO
45

56
config SND_SOC_MT2701
67
tristate "ASoC support for Mediatek MT2701 chip"
@@ -188,7 +189,9 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682
188189
config SND_SOC_MT8195
189190
tristate "ASoC support for Mediatek MT8195 chip"
190191
depends on ARCH_MEDIATEK || COMPILE_TEST
192+
depends on COMMON_CLK
191193
select SND_SOC_MEDIATEK
194+
select MFD_SYSCON if SND_SOC_MT6359
192195
help
193196
This adds ASoC platform driver support for Mediatek MT8195 chip
194197
that can be used with other codecs.

sound/soc/mediatek/common/mtk-afe-fe-dai.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,11 @@ int mtk_afe_suspend(struct snd_soc_component *component)
334334
devm_kcalloc(dev, afe->reg_back_up_list_num,
335335
sizeof(unsigned int), GFP_KERNEL);
336336

337-
for (i = 0; i < afe->reg_back_up_list_num; i++)
338-
regmap_read(regmap, afe->reg_back_up_list[i],
339-
&afe->reg_back_up[i]);
337+
if (afe->reg_back_up) {
338+
for (i = 0; i < afe->reg_back_up_list_num; i++)
339+
regmap_read(regmap, afe->reg_back_up_list[i],
340+
&afe->reg_back_up[i]);
341+
}
340342

341343
afe->suspended = true;
342344
afe->runtime_suspend(dev);
@@ -356,12 +358,13 @@ int mtk_afe_resume(struct snd_soc_component *component)
356358

357359
afe->runtime_resume(dev);
358360

359-
if (!afe->reg_back_up)
361+
if (!afe->reg_back_up) {
360362
dev_dbg(dev, "%s no reg_backup\n", __func__);
361-
362-
for (i = 0; i < afe->reg_back_up_list_num; i++)
363-
mtk_regmap_write(regmap, afe->reg_back_up_list[i],
364-
afe->reg_back_up[i]);
363+
} else {
364+
for (i = 0; i < afe->reg_back_up_list_num; i++)
365+
mtk_regmap_write(regmap, afe->reg_back_up_list[i],
366+
afe->reg_back_up[i]);
367+
}
365368

366369
afe->suspended = false;
367370
return 0;

0 commit comments

Comments
 (0)