Re: [PATCH 5/9] ASoC: meson: aiu: add hdmi codec control support

Jerome Brunet
2020-02-14T13:16:18Z

On Thu 13 Feb 2020 at 19:21, Mark Brown <broonie@kernel.org> wrote:

> On Thu, Feb 13, 2020 at 04:51:55PM +0100, Jerome Brunet wrote:
>
>> +int aiu_add_component(struct device *dev,
>> + const struct snd_soc_component_driver *component_driver,
>> + struct snd_soc_dai_driver *dai_drv,
>> + int num_dai,
>> + const char *debugfs_prefix)
>> +{
>> + struct snd_soc_component *component;
>> +
>> + component = devm_kzalloc(dev, sizeof(*component), GFP_KERNEL);
>> + if (!component)
>> + return -ENOMEM;
>> +
>> +#ifdef CONFIG_DEBUG_FS
>> + component->debugfs_prefix = debugfs_prefix;
>> +#endif
>
> You really shouldn't be doing this as it could conflict with something
> the machine driver wants to do however it's probably not going to be an
> issue in practice as it's not like there's going to be multiple SoCs in
> the card at once and if there were there'd doubltess be other issues.

I'm not sure I understand (and I'd prefer to :) )

As you said before, initially the there was supposed to be a 1:1 mapping
between device and component. The component name is directly derived
from the device name, and the debugfs directory is created from component name.

I would have preferred to use snd_soc_register_component() directly, but
with multiple components from the same device I got:

debugfs: Directory 'c1105400.audio-controller' with parent 'AWESOME-CARD' already present!
debugfs: Directory 'c1105400.audio-controller' with parent 'AWESOME-CARD' already present!

I copied the code above from other direct users of
snd_soc_add_component() (soc-generic-dmaengine-pcm.c and
stm32_adfsdm.c). I suppose they had the same name collision issue.

Instead of addressing the debugfs side effect, maybe we could just make
sure that each component name is unique within ASoC ? I'd be happy submit
something if you think this can helpful.