diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2006-12-08 11:39:24 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 17:29:00 +0100 |
commit | 140e92abe2bc9a0cd3ccfd11744ff4eb65319bb3 (patch) | |
tree | 685951f0b313ac7ff6f5180bb69de1bb2754aade | |
parent | [PATCH] Char: istallion, correct fail paths (diff) | |
download | linux-140e92abe2bc9a0cd3ccfd11744ff4eb65319bb3.tar.xz linux-140e92abe2bc9a0cd3ccfd11744ff4eb65319bb3.zip |
[PATCH] Char: istallion, fix enabling
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>
-rw-r--r-- | drivers/char/istallion.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index c8183ec09412..1050c426dcd0 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c @@ -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; |