PCI/VC: Use FIELD_GET()
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 10 Oct 2023 20:44:35 +0000 (15:44 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 24 Oct 2023 21:55:45 +0000 (16:55 -0500)
Use FIELD_GET() to remove dependences on the field position, i.e., the
shift value.  No functional change intended.

Link: https://lore.kernel.org/r/20231010204436.1000644-10-helgaas@kernel.org
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
drivers/pci/vc.c

index 5fc59ac31145fbec630239f6b36214fda1a409b9..a4ff7f5f66dd6170706ad179e9604286eda514bf 100644 (file)
@@ -6,6 +6,7 @@
  *     Author: Alex Williamson <alex.williamson@redhat.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/device.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -201,9 +202,9 @@ static int pci_vc_do_save_buffer(struct pci_dev *dev, int pos,
        /* Extended VC Count (not counting VC0) */
        evcc = cap1 & PCI_VC_CAP1_EVCC;
        /* Low Priority Extended VC Count (not counting VC0) */
-       lpevcc = (cap1 & PCI_VC_CAP1_LPEVCC) >> 4;
+       lpevcc = FIELD_GET(PCI_VC_CAP1_LPEVCC, cap1);
        /* Port Arbitration Table Entry Size (bits) */
-       parb_size = 1 << ((cap1 & PCI_VC_CAP1_ARB_SIZE) >> 10);
+       parb_size = 1 << FIELD_GET(PCI_VC_CAP1_ARB_SIZE, cap1);
 
        /*
         * Port VC Control Register contains VC Arbitration Select, which
@@ -231,7 +232,7 @@ static int pci_vc_do_save_buffer(struct pci_dev *dev, int pos,
                int vcarb_offset;
 
                pci_read_config_dword(dev, pos + PCI_VC_PORT_CAP2, &cap2);
-               vcarb_offset = ((cap2 & PCI_VC_CAP2_ARB_OFF) >> 24) * 16;
+               vcarb_offset = FIELD_GET(PCI_VC_CAP2_ARB_OFF, cap2) * 16;
 
                if (vcarb_offset) {
                        int size, vcarb_phases = 0;
@@ -277,7 +278,7 @@ static int pci_vc_do_save_buffer(struct pci_dev *dev, int pos,
 
                pci_read_config_dword(dev, pos + PCI_VC_RES_CAP +
                                      (i * PCI_CAP_VC_PER_VC_SIZEOF), &cap);
-               parb_offset = ((cap & PCI_VC_RES_CAP_ARB_OFF) >> 24) * 16;
+               parb_offset = FIELD_GET(PCI_VC_RES_CAP_ARB_OFF, cap) * 16;
                if (parb_offset) {
                        int size, parb_phases = 0;