changeset 3869:ef9a5cf3ad3d

6508934 IPL 6 should be used on x86 for IB HCA cards
author rm78299
date Wed, 21 Mar 2007 09:06:02 -0700
parents 6da9b9f37150
children b083fcb4e287
files usr/src/uts/common/io/pci_intr_lib.c
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/pci_intr_lib.c	Wed Mar 21 02:02:39 2007 -0700
+++ b/usr/src/uts/common/io/pci_intr_lib.c	Wed Mar 21 09:06:02 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -1107,15 +1107,15 @@
 int
 pci_devclass_to_ipl(int class)
 {
-	int	base_cl;
 	int	ipl;
-
-	base_cl = (class & 0xff0000) >> 16;
+	int	base_class = (class & 0xff0000) >> 16;
+	int	sub_class = (class & 0xff00) >> 8;
 
 	/*
 	 * Use the class code values to construct an ipl for the device.
 	 */
-	switch (base_cl) {
+
+	switch (base_class) {
 	default:
 	case PCI_CLASS_NONE:
 		ipl = 1;
@@ -1129,6 +1129,9 @@
 	case PCI_CLASS_DISPLAY:
 		ipl = 0x9;
 		break;
+	case PCI_CLASS_SERIALBUS:
+		ipl = (sub_class == PCI_SERIAL_IB) ? 6 : 1;
+		break;
 	/*
 	 * for high priority interrupt handlers, use level 12
 	 * as the highest for device drivers
@@ -1143,6 +1146,7 @@
 		ipl = 0xc;
 		break;
 	}
+
 	return (ipl);
 }