patch-2.4.20 linux-2.4.20/drivers/isdn/hisax/niccy.c
Next file: linux-2.4.20/drivers/isdn/hisax/nj_s.c
Previous file: linux-2.4.20/drivers/isdn/hisax/netjet.c
Back to the patch index
Back to the overall index
- Lines: 59
- Date:
Thu Nov 28 15:53:13 2002
- Orig file:
linux-2.4.19/drivers/isdn/hisax/niccy.c
- Orig date:
Fri Dec 21 09:41:54 2001
diff -urN linux-2.4.19/drivers/isdn/hisax/niccy.c linux-2.4.20/drivers/isdn/hisax/niccy.c
@@ -22,6 +22,7 @@
#include "hscx.h"
#include "isdnl1.h"
#include <linux/pci.h>
+#include <linux/isapnp.h>
extern const char *CardType[];
const char *niccy_revision = "$Revision: 1.1.4.1 $";
@@ -238,6 +239,9 @@
}
static struct pci_dev *niccy_dev __initdata = NULL;
+#ifdef __ISAPNP__
+static struct pci_bus *pnp_c __devinitdata = NULL;
+#endif
int __init
setup_niccy(struct IsdnCard *card)
@@ -249,7 +253,39 @@
printk(KERN_INFO "HiSax: Niccy driver Rev. %s\n", HiSax_getrev(tmp));
if (cs->typ != ISDN_CTYPE_NICCY)
return (0);
-
+#ifdef __ISAPNP__
+ if (!card->para[1] && isapnp_present()) {
+ struct pci_bus *pb;
+ struct pci_dev *pd;
+
+ if ((pb = isapnp_find_card(
+ ISAPNP_VENDOR('S', 'D', 'A'),
+ ISAPNP_FUNCTION(0x0150), pnp_c))) {
+ pnp_c = pb;
+ pd = NULL;
+ if (!(pd = isapnp_find_dev(pnp_c,
+ ISAPNP_VENDOR('S', 'D', 'A'),
+ ISAPNP_FUNCTION(0x0150), pd))) {
+ printk(KERN_ERR "NiccyPnP: PnP error card found, no device\n");
+ return (0);
+ }
+ pd->prepare(pd);
+ pd->deactivate(pd);
+ pd->activate(pd);
+ card->para[1] = pd->resource[0].start;
+ card->para[2] = pd->resource[1].start;
+ card->para[0] = pd->irq_resource[0].start;
+ if (!card->para[0] || !card->para[1] || !card->para[2]) {
+ printk(KERN_ERR "NiccyPnP:some resources are missing %ld/%lx/%lx\n",
+ card->para[0], card->para[1], card->para[2]);
+ pd->deactivate(pd);
+ return(0);
+ }
+ } else {
+ printk(KERN_INFO "NiccyPnP: no ISAPnP card found\n");
+ }
+ }
+#endif
if (card->para[1]) {
cs->hw.niccy.isac = card->para[1] + ISAC_PNP;
cs->hw.niccy.hscx = card->para[1] + HSCX_PNP;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)