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@xxxxxxxxxxxxxxx>
---
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.