[PATCH] Char: istallion, fix enabling
authorJiri Slaby <jirislaby@gmail.com>
Fri, 8 Dec 2006 10:39:24 +0000 (02:39 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:29:00 +0000 (08:29 -0800)
Enable ISA cards before pci_register_driver and then, enable each PCI card in
probe function.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/istallion.c

index c8183ec09412239872060af5ddf9225260f7f1a4..1050c426dcd035fb1a322ff0e96063ba4b50827b 100644 (file)
@@ -3968,6 +3968,10 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev,
        brdp->state |= BST_PROBED;
        pci_set_drvdata(pdev, brdp);
 
+       EBRDENABLE(brdp);
+       brdp->enable = NULL;
+       brdp->disable = NULL;
+
        return 0;
 err_null:
        stli_brds[brdp->brdnr] = NULL;
@@ -4054,13 +4058,6 @@ static int stli_initbrds(void)
        if (retval > 0)
                found += retval;
 
-       retval = pci_register_driver(&stli_pcidriver);
-       if (retval && found == 0) {
-               printk(KERN_ERR "Neither isa nor eisa cards found nor pci "
-                               "driver can be registered!\n");
-               goto err;
-       }
-
 /*
  *     All found boards are initialized. Now for a little optimization, if
  *     no boards are sharing the "shared memory" regions then we can just
@@ -4099,6 +4096,13 @@ static int stli_initbrds(void)
                }
        }
 
+       retval = pci_register_driver(&stli_pcidriver);
+       if (retval && found == 0) {
+               printk(KERN_ERR "Neither isa nor eisa cards found nor pci "
+                               "driver can be registered!\n");
+               goto err;
+       }
+
        return 0;
 err:
        return retval;