Unverified Commit 8c32984b authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Mark Brown
Browse files

ASoC: mediatek: mt8173: Fix debugfs registration for components



When registering the mt8173-afe-pcm driver, we are also adding two
components: one is for the PCM DAIs and one is for the HDMI DAIs, but
when debugfs is enabled, we're getting the following issue:

[   17.279176] debugfs: Directory '11220000.audio-controller' with parent 'mtk-rt5650' already present!
[   17.288345] debugfs: Directory '11220000.audio-controller' with parent 'mtk-rt5650' already present!

To overcome to that without any potentially big rewrite of this driver,
similarly to what was done in mt8195-afe-pcm, add a debugfs_prefix to
the components before actually adding them.

Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20211111161108.502344-1-angelogioacchino.delregno@collabora.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2cd9b0ef
Loading
Loading
Loading
Loading
+43 −8
Original line number Diff line number Diff line
@@ -1054,6 +1054,7 @@ static int mt8173_afe_pcm_dev_probe(struct platform_device *pdev)
	int irq_id;
	struct mtk_base_afe *afe;
	struct mt8173_afe_private *afe_priv;
	struct snd_soc_component *comp_pcm, *comp_hdmi;

	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(33));
	if (ret)
@@ -1142,23 +1143,55 @@ static int mt8173_afe_pcm_dev_probe(struct platform_device *pdev)
	if (ret)
		goto err_pm_disable;

	ret = devm_snd_soc_register_component(&pdev->dev,
	comp_pcm = devm_kzalloc(&pdev->dev, sizeof(*comp_pcm), GFP_KERNEL);
	if (!comp_pcm) {
		ret = -ENOMEM;
		goto err_pm_disable;
	}

	ret = snd_soc_component_initialize(comp_pcm,
					   &mt8173_afe_pcm_dai_component,
					   &pdev->dev);
	if (ret)
		goto err_pm_disable;

#ifdef CONFIG_DEBUG_FS
	comp_pcm->debugfs_prefix = "pcm";
#endif

	ret = snd_soc_add_component(comp_pcm,
				    mt8173_afe_pcm_dais,
				    ARRAY_SIZE(mt8173_afe_pcm_dais));
	if (ret)
		goto err_pm_disable;

	ret = devm_snd_soc_register_component(&pdev->dev,
	comp_hdmi = devm_kzalloc(&pdev->dev, sizeof(*comp_hdmi), GFP_KERNEL);
	if (!comp_hdmi) {
		ret = -ENOMEM;
		goto err_pm_disable;
	}

	ret = snd_soc_component_initialize(comp_hdmi,
					   &mt8173_afe_hdmi_dai_component,
					   &pdev->dev);
	if (ret)
		goto err_pm_disable;

#ifdef CONFIG_DEBUG_FS
	comp_hdmi->debugfs_prefix = "hdmi";
#endif

	ret = snd_soc_add_component(comp_hdmi,
				    mt8173_afe_hdmi_dais,
				    ARRAY_SIZE(mt8173_afe_hdmi_dais));
	if (ret)
		goto err_pm_disable;
		goto err_cleanup_components;

	dev_info(&pdev->dev, "MT8173 AFE driver initialized.\n");
	return 0;

err_cleanup_components:
	snd_soc_unregister_component(&pdev->dev);
err_pm_disable:
	pm_runtime_disable(&pdev->dev);
	return ret;
@@ -1166,6 +1199,8 @@ static int mt8173_afe_pcm_dev_probe(struct platform_device *pdev)

static int mt8173_afe_pcm_dev_remove(struct platform_device *pdev)
{
	snd_soc_unregister_component(&pdev->dev);

	pm_runtime_disable(&pdev->dev);
	if (!pm_runtime_status_suspended(&pdev->dev))
		mt8173_afe_runtime_suspend(&pdev->dev);