Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Define PCIE_XCAP_{VER, TYPE}(x) and use them.
details: https://anonhg.NetBSD.org/src/rev/5b0f6e655505
branches: trunk
changeset: 341661:5b0f6e655505
user: msaitoh <msaitoh%NetBSD.org@localhost>
date: Mon Nov 16 09:10:58 2015 +0000
description:
Define PCIE_XCAP_{VER,TYPE}(x) and use them.
diffstat:
sys/dev/pci/pci_subr.c | 6 +++---
sys/dev/pci/pcireg.h | 26 ++++++++++++++------------
sys/dev/pci/ppb.c | 21 ++++++++++-----------
3 files changed, 27 insertions(+), 26 deletions(-)
diffs (136 lines):
diff -r c399ee8ac32c -r 5b0f6e655505 sys/dev/pci/pci_subr.c
--- a/sys/dev/pci/pci_subr.c Mon Nov 16 05:39:39 2015 +0000
+++ b/sys/dev/pci/pci_subr.c Mon Nov 16 09:10:58 2015 +0000
@@ -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 @@
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)];
diff -r c399ee8ac32c -r 5b0f6e655505 sys/dev/pci/pcireg.h
--- a/sys/dev/pci/pcireg.h Mon Nov 16 05:39:39 2015 +0000
+++ b/sys/dev/pci/pcireg.h Mon Nov 16 09:10:58 2015 +0000
@@ -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 @@
#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 */
diff -r c399ee8ac32c -r 5b0f6e655505 sys/dev/pci/ppb.c
--- a/sys/dev/pci/ppb.c Mon Nov 16 05:39:39 2015 +0000
+++ b/sys/dev/pci/ppb.c Mon Nov 16 09:10:58 2015 +0000
@@ -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 @@
{
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 @@
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 @@
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:
Home |
Main Index |
Thread Index |
Old Index