Amlogic sound cards do create a lot of pcm interfaces, possibly more than 8. Some pcm interfaces are internal (like DPCM backends and c2c) and not exposed to userspace.
Those interfaces still increase the number passed to snd_find_free_minor(), which eventually exceeds 8 causing -EBUSY error on card registration if CONFIG_SND_DYNAMIC_MINORS=n and the interface is exposed to userspace.
select CONFIG_SND_DYNAMIC_MINORS for Amlogic cards to avoid the problem.
Fixes: 7864a79f37b5 ("ASoC: meson: add axg sound card support") Signed-off-by: Jerome Brunet jbrunet@baylibre.com ---
NOTE: This problem was found while toying with a minimal configuration which disabled CONFIG_SND_DYNAMIC_MINORS and DT overlays. Overlays prepend nodes instead of doing append. This changes the order in which the links are parsed by the card driver, which in turn changes the pcm numbers. The userpace pcm number then got over 8 triggering the problem.
sound/soc/meson/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig index b93ea33739f2..6458d5dc4902 100644 --- a/sound/soc/meson/Kconfig +++ b/sound/soc/meson/Kconfig @@ -99,6 +99,7 @@ config SND_MESON_AXG_PDM
config SND_MESON_CARD_UTILS tristate + select SND_DYNAMIC_MINORS
config SND_MESON_CODEC_GLUE tristate