I make a short patch to sharing IRQ between a PCIC and a PC Card when using
PCI IRQ routing.
#Does this patch help you?
-------
YAMAMOTO Shigeru Internet Initiative Japan Inc.
<[EMAIL PROTECTED]> Network Engineering Div.
Index: pcic.c
===================================================================
RCS file: /share/cvsup/FreeBSD/current/usr/src/sys/pccard/pcic.c,v
retrieving revision 1.141
diff -u -r1.141 pcic.c
--- pcic.c 2001/06/04 03:29:06 1.141
+++ pcic.c 2001/06/13 04:18:17
@@ -805,8 +805,13 @@
/*
* If we're routing via pci, we can share.
*/
- if (sc->func_route == pci_parallel && type == SYS_RES_IRQ)
+ if (sc->func_route == pci_parallel && type == SYS_RES_IRQ) {
flags |= RF_SHAREABLE;
+ if (sc->irqres) {
+ start = rman_get_start(sc->irqres);
+ end = rman_get_start(sc->irqres);
+ }
+ }
return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
count, flags));
Index: pcic_pci.c
===================================================================
RCS file: /share/cvsup/FreeBSD/current/usr/src/sys/pccard/pcic_pci.c,v
retrieving revision 1.48
diff -u -r1.48 pcic_pci.c
--- pcic_pci.c 2001/06/09 07:34:17 1.48
+++ pcic_pci.c 2001/06/13 04:26:52
@@ -446,9 +446,10 @@
sc->flags = PCIC_PD_POWER;
num6729++;
} else {
+ device_printf(dev, "MEMORY mapped device!\n");
sc->memrid = CB_PCI_SOCKET_BASE;
sc->memres = bus_alloc_resource(dev, SYS_RES_MEMORY,
- &sc->memrid, 0, ~0, 1, RF_ACTIVE);
+ &sc->memrid, 0, ~0, 0x1000, RF_ACTIVE);
if (sc->memres == NULL && pcic_pci_get_memory(dev) != 0)
return (ENOMEM);
sp->getb = pcic_pci_getb2;