lkml.org 
[lkml]   [2021]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[patch 09/22] MIPS: Octeon: Use arch_setup_msi_irq()
    Date
    The core code provides the same loop code except for the MSI-X reject. Move
    that to arch_setup_msi_irq() and remove the duplicated code.

    No functional change.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: linux-mips@vger.kernel.org
    ---
    arch/mips/pci/msi-octeon.c | 32 +++-----------------------------
    1 file changed, 3 insertions(+), 29 deletions(-)

    --- a/arch/mips/pci/msi-octeon.c
    +++ b/arch/mips/pci/msi-octeon.c
    @@ -68,6 +68,9 @@ int arch_setup_msi_irq(struct pci_dev *d
    u64 search_mask;
    int index;

    + if (desc->pci.msi_attrib.is_msix)
    + return -EINVAL;
    +
    /*
    * Read the MSI config to figure out how many IRQs this device
    * wants. Most devices only want 1, which will give
    @@ -182,35 +185,6 @@ int arch_setup_msi_irq(struct pci_dev *d
    return 0;
    }

    -int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
    -{
    - struct msi_desc *entry;
    - int ret;
    -
    - /*
    - * MSI-X is not supported.
    - */
    - if (type == PCI_CAP_ID_MSIX)
    - return -EINVAL;
    -
    - /*
    - * If an architecture wants to support multiple MSI, it needs to
    - * override arch_setup_msi_irqs()
    - */
    - if (type == PCI_CAP_ID_MSI && nvec > 1)
    - return 1;
    -
    - for_each_pci_msi_entry(entry, dev) {
    - ret = arch_setup_msi_irq(dev, entry);
    - if (ret < 0)
    - return ret;
    - if (ret > 0)
    - return -ENOSPC;
    - }
    -
    - return 0;
    -}
    -
    /**
    * Called when a device no longer needs its MSI interrupts. All
    * MSI interrupts for the device are freed.
    \
     
     \ /
      Last update: 2021-11-27 02:22    [W:2.529 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site