On 5/31/19 12:20, Tzung-Bi Shih wrote:
On Fri, May 31, 2019 at 5:27 PM Krzysztof Kozlowski krzk@kernel.org wrote:
The problem might be in component name. The driver->name and fmt_single_name(dev, &component->id) are: snd_dmaengine_pcm != 3830000.i2s snd_dmaengine_pcm != 3830000.i2s-sec samsung-i2s != 3830000.i2s
This commit should not go in without fixing the users of old behavior... I could adjust the platform names for primary and secondary links... but now it looks like two components will have the same name.
That is because the two component drivers used the same name in somehow. But yes, we should not have the commit without fixing potential errors for users depend on old behavior.
There are 2 platform devices (3830000.i2s, 3830000.i2s-sec), for each a platform/DMA component is created. For 3830000.i2s there is also a component with 2 CPU DAIs registered.
If we derive the platform/DMA component name from the component's driver name then we end up with non unique Platform component names (snd_dmaengine_pcm) and subsequently we fail to assign Platform component to DAI links.
Here is list of components before the patch:
# cat /sys/kernel/debug/asoc/components 3830000.i2s 3830000.i2s-sec 3830000.i2s hdmi-audio-codec.3.auto max98090.5-0010 snd-soc-dummy snd-soc-dummy
And after the patch:
root@target:~# cat /sys/kernel/debug/asoc/components samsung-i2s snd_dmaengine_pcm snd_dmaengine_pcm hdmi-audio-codec.3.auto max98090.5-0010 snd-soc-dummy snd-soc-dummy