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.