Hi Mark, On Wed, Feb 21, 2018 at 10:02 AM, Mark Brown <broonie@xxxxxxxxxx> wrote: > It's a legit warning - we shouldn't really be creating two components > for the same device. However this is a bit of a corner case as it's the > dmaengine platform driver which is kind of a virtual device, it's not > really the device that we use with DMA that's being represented but > rather the link between that and the DMA controller. > > Does the below patch (completely untested) help here? It adds a prefix > to the name for deduplication. > > diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c > index d53786498b61..d5a6eea64036 100644 > --- a/sound/soc/soc-generic-dmaengine-pcm.c > +++ b/sound/soc/soc-generic-dmaengine-pcm.c > @@ -431,6 +431,7 @@ int snd_dmaengine_pcm_register(struct device *dev, > if (!pcm) > return -ENOMEM; > > + pcm->platform.component.name_prefix = "dma"; Had to change it to pcm->component.name_prefix = "dma"; but still see the warnings. Here are the suggested change plus some additional debug lines: --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -303,6 +303,8 @@ static void soc_init_component_debugfs(struct snd_soc_component *component) if (!component->card->debugfs_card_root) return; + pr_err("************** component name is %s\n", component->name); + if (component->debugfs_prefix) { char *name; @@ -318,6 +320,12 @@ static void soc_init_component_debugfs(struct snd_soc_component *component) component->card->debugfs_card_root); } + if (component->debugfs_root) { + dev_warn(component->dev, + "ASoC: Succeded to create component debugfs directory\n"); + return; + } + if (!component->debugfs_root) { dev_warn(component->dev, "ASoC: Failed to create component debugfs directory\n"); diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c index c07d5c7..16995dd 100644 --- a/sound/soc/soc-generic-dmaengine-pcm.c +++ b/sound/soc/soc-generic-dmaengine-pcm.c @@ -442,6 +442,7 @@ int snd_dmaengine_pcm_register(struct device *dev, if (!pcm) return -ENOMEM; + pcm->component.name_prefix = "dma"; pcm->config = config; pcm->flags = flags; and the log looks like this: [ 2.062294] sgtl5000 1-000a: sgtl5000 revision 0x11 [ 2.069367] sgtl5000 1-000a: Using internal LDO instead of VDDD: check ER1 erratum [ 2.113827] fsl-asoc-card sound: ASoC: CPU DAI (null) not registered [ 2.123954] fsl-ssi-dai 2028000.ssi: No cache defaults, reading back from HW [ 2.326451] [drm] Cannot find any crtc or sizes [ 2.501744] ************** component name is 2028000.ssi [ 2.507217] fsl-ssi-dai 2028000.ssi: ASoC: Succeded to create component debugfs directory [ 2.515429] ************** component name is sgtl5000.1-000a [ 2.521194] sgtl5000 1-000a: ASoC: Succeded to create component debugfs directory [ 2.544264] ************** component name is 2028000.ssi [ 2.549879] fsl-ssi-dai 2028000.ssi: ASoC: Failed to create component debugfs directory [ 2.565605] imx-sgtl5000 sound: sgtl5000 <-> 2028000.ssi mapping ok [ 2.584074] ************** component name is 2004000.spdif [ 2.589721] fsl-spdif-dai 2004000.spdif: ASoC: Succeded to create component debugfs directory [ 2.598437] ************** component name is 2004000.spdif [ 2.603978] fsl-spdif-dai 2004000.spdif: ASoC: Failed to create component debugfs directory [ 2.616340] imx-spdif sound-spdif: snd-soc-dummy-dai <-> 2004000.spdif mapping ok Looks like the 'dma' prefix did not take effect, as we are still trying to register the same name twice. Thanks _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel