ALSA: bt87x: Make load_all parameter working again
authorTakashi Iwai <tiwai@suse.de>
Mon, 25 Feb 2013 08:48:45 +0000 (09:48 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 25 Feb 2013 08:48:45 +0000 (09:48 +0100)
Along with a clean up commit [e9f66d9b9: ALSA: pci: clean up using
module_pci_driver()], bt87x driver lost the functionality of load_all
parameter.  This patch does a partial revert of the commit only for
bt87x.c to recover it.

Reported-by: Clemens Ladisch <cladisch@googlemail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/bt87x.c

index cdd100dae85559d0619e474ded3f198519327bd4..9febe5509748ed5a1cdc2556d441ff770f31f8ea 100644 (file)
@@ -836,6 +836,8 @@ static struct {
        {0x7063, 0x2000}, /* pcHDTV HD-2000 TV */
 };
 
+static struct pci_driver driver;
+
 /* return the id of the card, or a negative value if it's blacklisted */
 static int snd_bt87x_detect_card(struct pci_dev *pci)
 {
@@ -962,11 +964,24 @@ static DEFINE_PCI_DEVICE_TABLE(snd_bt87x_default_ids) = {
        { }
 };
 
-static struct pci_driver bt87x_driver = {
+static struct pci_driver driver = {
        .name = KBUILD_MODNAME,
        .id_table = snd_bt87x_ids,
        .probe = snd_bt87x_probe,
        .remove = snd_bt87x_remove,
 };
 
-module_pci_driver(bt87x_driver);
+static int __init alsa_card_bt87x_init(void)
+{
+       if (load_all)
+               driver.id_table = snd_bt87x_default_ids;
+       return pci_register_driver(&driver);
+}
+
+static void __exit alsa_card_bt87x_exit(void)
+{
+       pci_unregister_driver(&driver);
+}
+
+module_init(alsa_card_bt87x_init)
+module_exit(alsa_card_bt87x_exit)