xhci: change 'msix_count' to encompass MSI or MSI-X vectors
authorNiklas Neronin <niklas.neronin@linux.intel.com>
Fri, 1 Dec 2023 15:06:43 +0000 (17:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Dec 2023 06:50:40 +0000 (07:50 +0100)
Instead of variable 'msix_count' containing the number of MSI-X vectors,
now it can contains MSI or MSI-X vector amount. Because both interrupt
methods allow several vectors. Thus, 'msix_count' is renamed to 'nvecs'.

Additionally, instead of storing the maximum possible vector amount,
now it stores the amount of successfully allocated vectors, or negative
integer on allocation failure.

Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20231201150647.1307406-16-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-pci.c
drivers/usb/host/xhci.h

index dbec0a315566dec1119e9dbc2b91d5150c3e6617..2307164a1e81640d0ad1f3efb5b92750fa0743e4 100644 (file)
@@ -142,12 +142,12 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
         * - num_online_cpus: maximum MSI-X vectors per CPUs core.
         *   Add additional 1 vector to ensure always available interrupt.
         */
-       xhci->msix_count = min(num_online_cpus() + 1,
-                              HCS_MAX_INTRS(xhci->hcs_params1));
+       xhci->nvecs = min(num_online_cpus() + 1,
+                         HCS_MAX_INTRS(xhci->hcs_params1));
 
-       ret = pci_alloc_irq_vectors(pdev, xhci->msix_count, xhci->msix_count,
-                                   PCI_IRQ_MSIX);
-       if (ret < 0) {
+       xhci->nvecs = pci_alloc_irq_vectors(pdev, xhci->nvecs, xhci->nvecs,
+                                           PCI_IRQ_MSIX);
+       if (xhci->nvecs < 0) {
                xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Failed to enable MSI-X");
                goto setup_msi;
        }
@@ -166,8 +166,8 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
 
 setup_msi:
        /* TODO: Check with MSI Soc for sysdev */
-       ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSI);
-       if (ret < 0) {
+       xhci->nvecs = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSI);
+       if (xhci->nvecs < 0) {
                xhci_dbg_trace(xhci, trace_xhci_dbg_init, "failed to allocate MSI entry");
                goto legacy_irq;
        }
index 62b610f007544d128d3954661ca028ee3323779e..90e6b6ef7bd20b4a38a0db8b9c6ec6f760669df2 100644 (file)
@@ -1765,8 +1765,8 @@ struct xhci_hcd {
        int             page_size;
        /* Valid values are 12 to 20, inclusive */
        int             page_shift;
-       /* msi-x vectors */
-       int             msix_count;
+       /* MSI-X/MSI vectors */
+       int             nvecs;
        /* optional clocks */
        struct clk              *clk;
        struct clk              *reg_clk;