PCI/switchtec: Update the way of getting management VEP instance ID
authorKelvin Cao <kelvin.cao@microchip.com>
Thu, 14 Oct 2021 14:18:57 +0000 (14:18 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 14 Oct 2021 14:22:47 +0000 (09:22 -0500)
Gen4 firmware adds DMA VEP and NVMe VEP support in VEP (virtual EP)
instance ID register in addtion to management EP, update the way of
getting management VEP instance ID.

Link: https://lore.kernel.org/r/20211014141859.11444-4-kelvin.cao@microchip.com
Signed-off-by: Kelvin Cao <kelvin.cao@microchip.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/switch/switchtec.c

index 5c300ff..97a93c9 100644 (file)
@@ -1133,7 +1133,7 @@ static int ioctl_pff_to_port(struct switchtec_dev *stdev,
                        break;
                }
 
-               reg = ioread32(&pcfg->vep_pff_inst_id);
+               reg = ioread32(&pcfg->vep_pff_inst_id) & 0xFF;
                if (reg == p.pff) {
                        p.port = SWITCHTEC_IOCTL_PFF_VEP;
                        break;
@@ -1179,7 +1179,7 @@ static int ioctl_port_to_pff(struct switchtec_dev *stdev,
                p.pff = ioread32(&pcfg->usp_pff_inst_id);
                break;
        case SWITCHTEC_IOCTL_PFF_VEP:
-               p.pff = ioread32(&pcfg->vep_pff_inst_id);
+               p.pff = ioread32(&pcfg->vep_pff_inst_id) & 0xFF;
                break;
        default:
                if (p.port > ARRAY_SIZE(pcfg->dsp_pff_inst_id))
@@ -1553,7 +1553,7 @@ static void init_pff(struct switchtec_dev *stdev)
        if (reg < stdev->pff_csr_count)
                stdev->pff_local[reg] = 1;
 
-       reg = ioread32(&pcfg->vep_pff_inst_id);
+       reg = ioread32(&pcfg->vep_pff_inst_id) & 0xFF;
        if (reg < stdev->pff_csr_count)
                stdev->pff_local[reg] = 1;