Module Name:    src
Committed By:   phx
Date:           Mon Dec 27 19:02:33 UTC 2010

Modified Files:
        src/sys/dev/pci: pccbb.c

Log Message:
Add TI PCI1510.
Enable TI12XX PCI interrupt in MFUNC when MFUNC pin0 and pin1 are zero.
Ignore the other pins, which may be non-zero (e.g. IRQSER in pin3).


To generate a diff of this commit:
cvs rdiff -u -r1.199 -r1.200 src/sys/dev/pci/pccbb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/pccbb.c
diff -u src/sys/dev/pci/pccbb.c:1.199 src/sys/dev/pci/pccbb.c:1.200
--- src/sys/dev/pci/pccbb.c:1.199	Tue Apr 20 23:39:10 2010
+++ src/sys/dev/pci/pccbb.c	Mon Dec 27 19:02:32 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pccbb.c,v 1.199 2010/04/20 23:39:10 dyoung Exp $	*/
+/*	$NetBSD: pccbb.c,v 1.200 2010/12/27 19:02:32 phx Exp $	*/
 
 /*
  * Copyright (c) 1998, 1999 and 2000
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.199 2010/04/20 23:39:10 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.200 2010/12/27 19:02:32 phx Exp $");
 
 /*
 #define CBB_DEBUG
@@ -278,6 +278,8 @@
 	    PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
 	{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI1451), CB_TI12XX,
 	    PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
+	{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI1510), CB_TI12XX,
+	    PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
 	{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI1520), CB_TI12XX,
 	    PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
 	{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI4410YENTA), CB_TI12XX,
@@ -836,14 +838,16 @@
 		 * The TI125X parts have a different register.
 		 */
 		mfunc = pci_conf_read(pc, tag, PCI12XX_MFUNC);
-		if (mfunc == 0) {
-			mfunc &= ~PCI12XX_MFUNC_PIN0;
+		if ((mfunc & (PCI12XX_MFUNC_PIN0 | PCI12XX_MFUNC_PIN1)) == 0) {
+			/* Enable PCI interrupt /INTA */
 			mfunc |= PCI12XX_MFUNC_PIN0_INTA;
+
+			/* XXX this is TI1520 only */
 			if ((pci_conf_read(pc, tag, PCI_SYSCTRL) &
-			     PCI12XX_SYSCTRL_INTRTIE) == 0) {
-				mfunc &= ~PCI12XX_MFUNC_PIN1;
+			     PCI12XX_SYSCTRL_INTRTIE) == 0)
+				/* Enable PCI interrupt /INTB */
 				mfunc |= PCI12XX_MFUNC_PIN1_INTB;
-			}
+
 			pci_conf_write(pc, tag, PCI12XX_MFUNC, mfunc);
 		}
 		/* fallthrough */

Reply via email to