On 10/28/2023 10:46 AM, Krzysztof Kozlowski wrote:
On 27/10/2023 13:05, Amadeusz Sławiński wrote:
To support AVS-rt5514 configuration add machine board connecting AVS platform component driver with rt5514 codec one.
Signed-off-by: Amadeusz Sławiński amadeuszx.slawinski@linux.intel.com
sound/soc/intel/avs/boards/Kconfig | 10 ++ sound/soc/intel/avs/boards/Makefile | 2 + sound/soc/intel/avs/boards/rt5514.c | 187 ++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 sound/soc/intel/avs/boards/rt5514.c
...
+static struct platform_driver avs_rt5514_driver = {
- .probe = avs_rt5514_probe,
- .driver = {
.name = "avs_rt5514",
.pm = &snd_soc_pm_ops,
- },
+};
+module_platform_driver(avs_rt5514_driver);
+MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:avs_rt5514");
You should not need MODULE_ALIAS() in normal cases. If you need it, usually it means your device ID table is wrong.
In theory yes, in practice it is a bit more complicated, as we use the driver alias in sound/soc/intel/avs/board_selection.c in snd_soc_acpi_mach and they should match.
For example for rt286, there is: # modinfo /lib/modules/6.4.0-rc3+/kernel/sound/soc/intel/avs/boards/snd-soc-avs-rt286.ko | grep 286 filename: /lib/modules/6.4.0-rc3+/kernel/sound/soc/intel/avs/boards/snd-soc-avs-rt286.ko alias: platform:avs_rt286 name: snd_soc_avs_rt286 as you can see platform_driver::driver::name is not matching the driver name.
I've did quick test with removing alias and changing snd_soc_acpi_mach definition for one board and it didn't load.
Now that you pointed it out I also lean towards trying to remove MODULE_ALIAS() from board drivers, but it will probably require some more investigation if we really want to do it and implementing it properly.