From: James Courtier-Dutton Date: Sat, 3 Sep 2005 10:05:47 +0000 (+0200) Subject: [ALSA] snd-ca0106, snd-emu10k1: Add symlink in the sys tree. X-Git-Tag: v2.6.14-rc2~50^2~32 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=025cd2f6b1624f536d4df564add3d13ea5022f53;p=linux-2.6-omap-h63xx.git [ALSA] snd-ca0106, snd-emu10k1: Add symlink in the sys tree. CA0106 driver,EMU10K1/EMU10K2 driver A thread appeared on the LKML. This patch implements the fix. Question: in sysfs, /sys/bus/*/drivers lists the driver names, with their exported .name (eg. '.name = 'EMU10K1_Audigy'' in the module code, from now on 'driver name'). In /sys/modules, the kernel modules are listed with their module name, eg. snd_emu10k1. However, it seems to me that in sysfs, there is no way in particular to tell, which module has which .name. That is, that snd_emu10k1 is EMU10K1_Audigy and vice versa. I wonder whether it wouldn't be possible to add a symlink to the particular module from the driver, and/or from the module to the driver, so the list of devices handled by the module and the module name would be accessible. This way, I would know which driver name corresponds to which module name and vice versa. Answer: For PCI drivers, just add the line: .owner = THIS_MODULE, to their struct pci_driver definition and you will get the symlink created for you. Signed-off-by: James Courtier-Dutton --- diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 7e27bfc3743..4a1abb12ee5 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -1390,6 +1390,7 @@ MODULE_DEVICE_TABLE(pci, snd_ca0106_ids); // pci_driver definition static struct pci_driver driver = { .name = "CA0106", + .owner = THIS_MODULE, .id_table = snd_ca0106_ids, .probe = snd_ca0106_probe, .remove = __devexit_p(snd_ca0106_remove), diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c index fc377c4b666..b0e00f0a7c2 100644 --- a/sound/pci/emu10k1/emu10k1.c +++ b/sound/pci/emu10k1/emu10k1.c @@ -223,6 +223,7 @@ static void __devexit snd_card_emu10k1_remove(struct pci_dev *pci) static struct pci_driver driver = { .name = "EMU10K1_Audigy", + .owner = THIS_MODULE, .id_table = snd_emu10k1_ids, .probe = snd_card_emu10k1_probe, .remove = __devexit_p(snd_card_emu10k1_remove),