summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pccard
diff options
context:
space:
mode:
authorsanpei <sanpei@FreeBSD.org>2000-10-20 13:08:18 +0000
committersanpei <sanpei@FreeBSD.org>2000-10-20 13:08:18 +0000
commit2ee7f81b57cec4fab17cbac17d9eb944e5c3653e (patch)
tree23d381de314caa1a4b6aa7014bc37b20d964b020 /usr.sbin/pccard
parent0660ded96619d9701942d2d30e53a7a4f39a4237 (diff)
downloadFreeBSD-src-2ee7f81b57cec4fab17cbac17d9eb944e5c3653e.zip
FreeBSD-src-2ee7f81b57cec4fab17cbac17d9eb944e5c3653e.tar.gz
add -I option, ``Don't get and use a list of free
IRQs from kernel.''.. With IBM ThinkPad600. ``sio1'' was disabled in BIOS and irq 3 was free (also not listed in dmesg), I think. But I could not use irq 3 for PC-Card with new(PIOCSRESOURCE ioctl enabled) pccardd.
Diffstat (limited to 'usr.sbin/pccard')
-rw-r--r--usr.sbin/pccard/pccardd/cardd.c3
-rw-r--r--usr.sbin/pccard/pccardd/cardd.h1
-rw-r--r--usr.sbin/pccard/pccardd/pccardd.83
-rw-r--r--usr.sbin/pccard/pccardd/pccardd.c6
4 files changed, 11 insertions, 2 deletions
diff --git a/usr.sbin/pccard/pccardd/cardd.c b/usr.sbin/pccard/pccardd/cardd.c
index 18adcca..a2bc78c 100644
--- a/usr.sbin/pccard/pccardd/cardd.c
+++ b/usr.sbin/pccard/pccardd/cardd.c
@@ -528,7 +528,8 @@ assign_driver(struct card *cp)
perror("ioctl (PIOCSRESOURCE)");
exit(1);
}
- if (pool_irq[i] && res.resource_addr == i) {
+ if (pool_irq[i]
+ && (res.resource_addr == i || !use_kern_irq)) {
conf->irq = i;
pool_irq[i] = 0;
break;
diff --git a/usr.sbin/pccard/pccardd/cardd.h b/usr.sbin/pccard/pccardd/cardd.h
index f225d4f..31be286 100644
--- a/usr.sbin/pccard/pccardd/cardd.h
+++ b/usr.sbin/pccard/pccardd/cardd.h
@@ -154,6 +154,7 @@ EXTERN bitstr_t *mem_init;
EXTERN bitstr_t *io_avail;
EXTERN bitstr_t *io_init;
EXTERN int pccard_init_sleep; /* Time to sleep on init */
+EXTERN int use_kern_irq;
EXTERN int debug_level;
/* cardd.c functions */
diff --git a/usr.sbin/pccard/pccardd/pccardd.8 b/usr.sbin/pccard/pccardd/pccardd.8
index 9214a04..e7553c8 100644
--- a/usr.sbin/pccard/pccardd/pccardd.8
+++ b/usr.sbin/pccard/pccardd/pccardd.8
@@ -37,6 +37,7 @@
.Op Fl v
.Op Fl z
.Op Fl i Ar IRQ
+.Op Fl I
.Op Fl f Ar configfile
.Sh DESCRIPTION
.Nm Pccardd
@@ -135,6 +136,8 @@ After reading the configuration file, print out a summary
of it.
.It Fl z
Delays running as a daemon until after the cards have been probed and attached.
+.It Fl I
+Don't get a list of free IRQs from kernel.
.It Fl i Ar IRQ
Configures an available IRQ. It overrides the "irq" line in
.Pa /etc/defaults/pccard.conf
diff --git a/usr.sbin/pccard/pccardd/pccardd.c b/usr.sbin/pccard/pccardd/pccardd.c
index f911d33..ba70336 100644
--- a/usr.sbin/pccard/pccardd/pccardd.c
+++ b/usr.sbin/pccard/pccardd/pccardd.c
@@ -161,14 +161,18 @@ main(int argc, char *argv[])
int irq_specified = 0;
int i;
struct sockaddr_un sun;
-#define COM_OPTS ":dvf:s:i:z"
+#define COM_OPTS ":Idvf:s:i:z"
bzero(irq_arg, sizeof(irq_arg));
+ use_kern_irq = 1;
debug_level = 0;
pccard_init_sleep = 5000000;
cards = last_card = 0;
while ((count = getopt(argc, argv, COM_OPTS)) != -1) {
switch (count) {
+ case 'I':
+ use_kern_irq = 0;
+ break;
case 'd':
setbuf(stdout, 0);
setbuf(stderr, 0);
OpenPOWER on IntegriCloud