PCI: epf-test: Simplify pci_epf_test_raise_irq()
authorDamien Le Moal <dlemoal@kernel.org>
Sat, 15 Apr 2023 02:35:32 +0000 (11:35 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 23 Jun 2023 20:00:50 +0000 (15:00 -0500)
Change the interface of the function pci_epf_test_raise_irq() to directly
pass a pointer to the struct pci_epf_test_reg defining the test being
executed. This avoids the need for grabbing this pointer using the register
BAR address and simplifies the call sites as the IRQ type and IRQ numbers
do not have to be passed as arguments.

Link: https://lore.kernel.org/r/20230415023542.77601-8-dlemoal@kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
drivers/pci/endpoint/functions/pci-epf-test.c

index b8b178ac7cda7a735122bec16e5d1258846f0982..3835e558937aa1a94d587e559af142fc3924bac9 100644 (file)
@@ -607,29 +607,27 @@ err:
        return ret;
 }
 
-static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test, u8 irq_type,
-                                  u16 irq)
+static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test,
+                                  struct pci_epf_test_reg *reg)
 {
        struct pci_epf *epf = epf_test->epf;
        struct device *dev = &epf->dev;
        struct pci_epc *epc = epf->epc;
-       enum pci_barno test_reg_bar = epf_test->test_reg_bar;
-       struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar];
 
        reg->status |= STATUS_IRQ_RAISED;
 
-       switch (irq_type) {
+       switch (reg->irq_type) {
        case IRQ_TYPE_LEGACY:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
                                  PCI_EPC_IRQ_LEGACY, 0);
                break;
        case IRQ_TYPE_MSI:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
-                                 PCI_EPC_IRQ_MSI, irq);
+                                 PCI_EPC_IRQ_MSI, reg->irq_number);
                break;
        case IRQ_TYPE_MSIX:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
-                                 PCI_EPC_IRQ_MSIX, irq);
+                                 PCI_EPC_IRQ_MSIX, reg->irq_number);
                break;
        default:
                dev_err(dev, "Failed to raise IRQ, unknown type\n");
@@ -675,8 +673,7 @@ static void pci_epf_test_cmd_handler(struct work_struct *work)
                        reg->status |= STATUS_WRITE_FAIL;
                else
                        reg->status |= STATUS_WRITE_SUCCESS;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }
 
@@ -686,8 +683,7 @@ static void pci_epf_test_cmd_handler(struct work_struct *work)
                        reg->status |= STATUS_READ_SUCCESS;
                else
                        reg->status |= STATUS_READ_FAIL;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }
 
@@ -697,8 +693,7 @@ static void pci_epf_test_cmd_handler(struct work_struct *work)
                        reg->status |= STATUS_COPY_SUCCESS;
                else
                        reg->status |= STATUS_COPY_FAIL;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }