Module Name: src
Committed By: msaitoh
Date: Mon Nov 16 09:10:58 UTC 2015
Modified Files:
src/sys/dev/pci: pci_subr.c pcireg.h ppb.c
Log Message:
Define PCIE_XCAP_{VER,TYPE}(x) and use them.
To generate a diff of this commit:
cvs rdiff -u -r1.142 -r1.143 src/sys/dev/pci/pci_subr.c
cvs rdiff -u -r1.108 -r1.109 src/sys/dev/pci/pcireg.h
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/pci/ppb.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/pci_subr.c
diff -u src/sys/dev/pci/pci_subr.c:1.142 src/sys/dev/pci/pci_subr.c:1.143
--- src/sys/dev/pci/pci_subr.c:1.142 Fri Nov 13 03:56:44 2015
+++ src/sys/dev/pci/pci_subr.c Mon Nov 16 09:10:58 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: pci_subr.c,v 1.142 2015/11/13 03:56:44 msaitoh Exp $ */
+/* $NetBSD: pci_subr.c,v 1.143 2015/11/16 09:10:58 msaitoh Exp $ */
/*
* Copyright (c) 1997 Zubin D. Dittia. All rights reserved.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.142 2015/11/13 03:56:44 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.143 2015/11/16 09:10:58 msaitoh Exp $");
#ifdef _KERNEL_OPT
#include "opt_pci.h"
@@ -2185,7 +2185,7 @@ pci_conf_print_aer_cap(const pcireg_t *r
if (pci_conf_find_cap(regs, capoff, PCI_CAP_PCIEXPRESS, &pcie_capoff)) {
reg = regs[o2i(pcie_capoff)];
- pcie_devtype = reg & PCIE_XCAP_TYPE_MASK;
+ pcie_devtype = PCIE_XCAP_TYPE(reg);
/* PCIe DW9 to DW14 is for PCIe 2.0 and newer */
if (__SHIFTOUT(reg, PCIE_XCAP_VER_MASK) >= 2) {
reg = regs[o2i(pcie_capoff + PCIE_DCAP2)];
Index: src/sys/dev/pci/pcireg.h
diff -u src/sys/dev/pci/pcireg.h:1.108 src/sys/dev/pci/pcireg.h:1.109
--- src/sys/dev/pci/pcireg.h:1.108 Thu Nov 12 12:17:59 2015
+++ src/sys/dev/pci/pcireg.h Mon Nov 16 09:10:58 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: pcireg.h,v 1.108 2015/11/12 12:17:59 msaitoh Exp $ */
+/* $NetBSD: pcireg.h,v 1.109 2015/11/16 09:10:58 msaitoh Exp $ */
/*
* Copyright (c) 1995, 1996, 1999, 2000
@@ -871,18 +871,20 @@ typedef u_int8_t pci_revision_t;
#define PCIE_XCAP_MASK __BITS(31, 16)
/* Capability Version */
#define PCIE_XCAP_VER_MASK __SHIFTIN(__BITS(3, 0), PCIE_XCAP_MASK)
-#define PCIE_XCAP_VER_1 __SHIFTIN(1, PCIE_XCAP_VER_MASK)
-#define PCIE_XCAP_VER_2 __SHIFTIN(2, PCIE_XCAP_VER_MASK)
+#define PCIE_XCAP_VER(x) __SHIFTOUT((x), PCIE_XCAP_VER_MASK)
+#define PCIE_XCAP_VER_1 1
+#define PCIE_XCAP_VER_2 2
#define PCIE_XCAP_TYPE_MASK __SHIFTIN(__BITS(7, 4), PCIE_XCAP_MASK)
-#define PCIE_XCAP_TYPE_PCIE_DEV __SHIFTIN(0x0, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_PCI_DEV __SHIFTIN(0x1, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_ROOT __SHIFTIN(0x4, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_UP __SHIFTIN(0x5, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_DOWN __SHIFTIN(0x6, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_PCIE2PCI __SHIFTIN(0x7, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_PCI2PCIE __SHIFTIN(0x8, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_ROOT_INTEP __SHIFTIN(0x9, PCIE_XCAP_TYPE_MASK)
-#define PCIE_XCAP_TYPE_ROOT_EVNTC __SHIFTIN(0xa, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE(x) __SHIFTOUT((x), PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_PCIE_DEV 0x0
+#define PCIE_XCAP_TYPE_PCI_DEV 0x1
+#define PCIE_XCAP_TYPE_ROOT 0x4
+#define PCIE_XCAP_TYPE_UP 0x5
+#define PCIE_XCAP_TYPE_DOWN 0x6
+#define PCIE_XCAP_TYPE_PCIE2PCI 0x7
+#define PCIE_XCAP_TYPE_PCI2PCIE 0x8
+#define PCIE_XCAP_TYPE_ROOT_INTEP 0x9
+#define PCIE_XCAP_TYPE_ROOT_EVNTC 0xa
#define PCIE_XCAP_SI __SHIFTIN(__BIT(8), PCIE_XCAP_MASK) /* Slot Implemented */
#define PCIE_XCAP_IRQ __SHIFTIN(__BITS(13, 9), PCIE_XCAP_MASK)
#define PCIE_DCAP 0x04 /* Device Capabilities Register */
Index: src/sys/dev/pci/ppb.c
diff -u src/sys/dev/pci/ppb.c:1.54 src/sys/dev/pci/ppb.c:1.55
--- src/sys/dev/pci/ppb.c:1.54 Wed Sep 24 10:57:03 2014
+++ src/sys/dev/pci/ppb.c Mon Nov 16 09:10:58 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: ppb.c,v 1.54 2014/09/24 10:57:03 msaitoh Exp $ */
+/* $NetBSD: ppb.c,v 1.55 2015/11/16 09:10:58 msaitoh Exp $ */
/*
* Copyright (c) 1996, 1998 Christopher G. Demetriou. All rights reserved.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.54 2014/09/24 10:57:03 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.55 2015/11/16 09:10:58 msaitoh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -102,14 +102,16 @@ ppb_fix_pcie(device_t self)
{
struct ppb_softc *sc = device_private(self);
pcireg_t reg;
- int off;
+ int off, capversion, devtype;
if (!pci_get_capability(sc->sc_pc, sc->sc_tag, PCI_CAP_PCIEXPRESS,
&off, ®))
return; /* Not a PCIe device */
+ capversion = PCIE_XCAP_VER(reg);
+ devtype = PCIE_XCAP_TYPE(reg);
aprint_normal_dev(self, "PCI Express capability version ");
- switch (reg & PCIE_XCAP_VER_MASK) {
+ switch (capversion) {
case PCIE_XCAP_VER_1:
aprint_normal("1");
break;
@@ -117,13 +119,11 @@ ppb_fix_pcie(device_t self)
aprint_normal("2");
break;
default:
- aprint_normal_dev(self,
- "unsupported (0x%" PRIxMAX ")\n",
- __SHIFTOUT(reg, PCIE_XCAP_VER_MASK));
+ aprint_normal_dev(self, "unsupported (%d)\n", capversion);
return;
}
aprint_normal(" <");
- switch (reg & PCIE_XCAP_TYPE_MASK) {
+ switch (devtype) {
case PCIE_XCAP_TYPE_PCIE_DEV:
aprint_normal("PCI-E Endpoint device");
break;
@@ -146,12 +146,11 @@ ppb_fix_pcie(device_t self)
aprint_normal("PCI/PCI-X to PCI-E Bridge");
break;
default:
- aprint_normal("Device/Port Type 0x%" PRIxMAX,
- __SHIFTOUT(reg, PCIE_XCAP_TYPE_MASK));
+ aprint_normal("Device/Port Type %x", devtype);
break;
}
- switch (reg & PCIE_XCAP_TYPE_MASK) {
+ switch (devtype) {
case PCIE_XCAP_TYPE_ROOT:
case PCIE_XCAP_TYPE_DOWN:
case PCIE_XCAP_TYPE_PCI2PCIE: