[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>
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index c8183ec..1050c42 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -3968,6 +3968,10 @@
 	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 @@
 	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 @@
 		}
 	}
 
+	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;