Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Aug 2001 17:07:56 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        =?ISO-8859-1?B?Qm9yaXMgS/ZzdGVy?= <koester@x-itec.de>
Cc:        freebsd-questions@FreeBSD.ORG, freebsd-mobile@FreeBSD.ORG
Subject:   Re: Re[2]: laptop cvs-stable problems part II (IRQ Problems) 
Message-ID:  <200108302307.f7UN7un24744@harmony.village.org>
In-Reply-To: Your message of "Fri, 31 Aug 2001 00:11:36 %2B0200." <164233665773.20010831001136@x-itec.de> 
References:  <164233665773.20010831001136@x-itec.de>  <105149800441.20010830005351@x-itec.de> <200108300235.f7U2Z1n16755@harmony.village.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <164233665773.20010831001136@x-itec.de> =?ISO-8859-1?B?Qm9yaXMgS/ZzdGVy?= writes:
: Here is a longer /var/log/messages. The "working" kernel first, after
: that new new kernel cvsupped and installed  as of 30.08.2001
: 23:xx CET.

OK.  Try the following patch with pci routing:

Index: pcic_pci.c
===================================================================
RCS file: /cache/ncvs/src/sys/pccard/pcic_pci.c,v
retrieving revision 1.54.2.12
diff -u -r1.54.2.12 pcic_pci.c
--- pcic_pci.c	2001/08/27 16:34:03	1.54.2.12
+++ pcic_pci.c	2001/08/30 22:46:27
@@ -647,9 +651,24 @@
 	 * This so we get the interrupt number in the probe message.
 	 * We only need to route interrupts when we're doing pci
 	 * parallel interrupt routing.
+	 *
+	 * Note: The CLPD6729 is a special case.  See its init function
+	 * for an explaination of ISA vs PCI interrupts.
 	 */
-	if (pcic_intr_path == pcic_iw_pci) {
+	if (pcic_intr_path == pcic_iw_pci && 
+	    device_id != PCI_DEVICE_ID_PCIC_CLPD6729) {
 		rid = 0;
+#ifdef __i386__
+		/*
+		 * IRQ 0 is invalid on x86, but not other platforms.
+		 * If we have irq 0, then write 255 to force a new, non-
+		 * bogus one to be assigned.
+		 */
+		if (pci_get_irq(dev) == 0) {
+			pci_set_irq(dev, 255);
+			pci_write_config(dev, PCIR_INTLINE, 255, 1);
+		}
+#endif
 		res = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1,
 		    RF_ACTIVE);
 		if (res)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200108302307.f7UN7un24744>