[PATCH] ASoC: meson: aiu: fix duplicate debugfs directory error
Heiner Kallweit
hkallweit1 at gmail.com
Wed Mar 9 11:46:56 PST 2022
On 09.03.2022 00:42, Jerome Brunet wrote:
>
> On Tue 08 Mar 2022 at 20:00, Heiner Kallweit <hkallweit1 at gmail.com> wrote:
>
>> On a S905W-based system I get the following error:
>> debugfs: Directory 'c1105400.audio-controller' with parent 'P230-Q200' already present!
>>
>> Turned out that multiple components having the same name triggers this
>> error in soc_init_component_debugfs().
>
> Because the component name is directly derived from the dev name
>
>> With the patch the error is
>> gone and that's the debugfs entries.
>>
>> /sys/kernel/debug/asoc/P230-Q200/aiu_acodec:c1105400.audio-controller
>> /sys/kernel/debug/asoc/P230-Q200/aiu_hdmi:c1105400.audio-controller
>> /sys/kernel/debug/asoc/P230-Q200/aiu_cpu:c1105400.audio-controller
>>
>> Because debugfs is affected only, this may not be something for stable.
>
> It is not entirely true that only debugfs is affected, though it is the
> only thing really complaining.
>
> I had a similar tweak around debugfs entry when I first submitted the
> AIU. There was a discussion around that:
>
> https://patchwork.kernel.org/project/linux-amlogic/patch/20200213155159.3235792-6-jbrunet@baylibre.com/
>
> I proposed a solution which got merged but ended up breaking other cards
> because there was some assumptions around what the component name
> is: basically the dev_name since there was originally 1:1 mapping
> So it had to be reverted.
>
> Full details here:
> https://patchwork.kernel.org/project/alsa-devel/patch/20200214134704.342501-1-jbrunet@baylibre.com/
>
> Unfortunately I did not had the time to continue working on it since them
>
>>
>> Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
>> ---
>> sound/soc/meson/aiu.c | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git a/sound/soc/meson/aiu.c b/sound/soc/meson/aiu.c
>> index d299a70db..c1a2aea5f 100644
>> --- a/sound/soc/meson/aiu.c
>> +++ b/sound/soc/meson/aiu.c
>> @@ -68,6 +68,20 @@ int aiu_of_xlate_dai_name(struct snd_soc_component *component,
>>
>> *dai_name = dai->driver->name;
>
> While I don't really mind one way or the other about the prefix itself,
> aiu_of_xlate_dai_name() is not the place to tweak it.
>
> This should be done before adding the component, not when parsing the DAI
> with DT.
>
> If this is really a problem and Mark is Ok with, what you want to do is
> revert commit 024714223323 ("ASoC: meson: aiu: simplify component addition")
>>
Thanks a lot for the links and for pointing me in the right direction.
The revert you mentioned would need a little bit of trivial tweaking
due to changes of the underlying code.
However based on what I read so far in the linked discussions I have
another idea to make the solution more generic. I'll submit the
patches and then we can decide how to go on.
>> + switch (component_id) {
>> + case AIU_CPU:
>> + component->debugfs_prefix = "aiu_cpu";
>> + break;
>> + case AIU_HDMI:
>> + component->debugfs_prefix = "aiu_hdmi";
>> + break;
>> + case AIU_ACODEC:
>> + component->debugfs_prefix = "aiu_acodec";
>> + break;
>> + default:
>> + break;
>> + }
>> +
>> return 0;
>> }
>
More information about the linux-amlogic
mailing list