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, &reg))
                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