summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/cs/if_cs.c3
-rw-r--r--sys/dev/cs/if_cs_pccard.c6
-rw-r--r--sys/dev/cs/if_csvar.h2
3 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/cs/if_cs.c b/sys/dev/cs/if_cs.c
index 4c501ad..e700cd4 100644
--- a/sys/dev/cs/if_cs.c
+++ b/sys/dev/cs/if_cs.c
@@ -467,7 +467,8 @@ cs_cs89x0_probe(device_t dev)
}
if (!error) {
- cs_writereg(sc, pp_isaint, irq);
+ if (!(sc->flags & CS_NO_IRQ))
+ cs_writereg(sc, pp_isaint, irq);
} else {
device_printf(dev, "Unknown or invalid irq\n");
return (ENXIO);
diff --git a/sys/dev/cs/if_cs_pccard.c b/sys/dev/cs/if_cs_pccard.c
index 29c6d7a..fad2a6f 100644
--- a/sys/dev/cs/if_cs_pccard.c
+++ b/sys/dev/cs/if_cs_pccard.c
@@ -80,11 +80,13 @@ cs_pccard_match(device_t dev)
static int
cs_pccard_probe(device_t dev)
{
+ struct cs_softc *sc = device_get_softc(dev);
int error;
+ sc->flags |= CS_NO_IRQ;
error = cs_cs89x0_probe(dev);
- cs_release_resources(dev);
- return (error);
+ cs_release_resources(dev);
+ return (error);
}
static int
diff --git a/sys/dev/cs/if_csvar.h b/sys/dev/cs/if_csvar.h
index 2e2991a..ba1070e 100644
--- a/sys/dev/cs/if_csvar.h
+++ b/sys/dev/cs/if_csvar.h
@@ -57,6 +57,8 @@ struct cs_softc {
struct resource* irq_res; /* resource for irq */
void* irq_handle; /* handle for irq handler */
+ int flags;
+#define CS_NO_IRQ 0x1
int nic_addr; /* Base IO address of card */
int send_cmd;
int line_ctl; /* */
OpenPOWER on IntegriCloud