Thomas Gleixner
ef8dd01538
genirq/msi: Make interrupt allocation less convoluted
...
There is no real reason to do several loops over the MSI descriptors
instead of just doing one loop. In case of an error everything is undone
anyway so it does not matter whether it's a partial or a full rollback.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210749.010234767@linutronix.de
2021-12-16 22:22:20 +01:00
Thomas Gleixner
a80713fea3
platform-msi: Simplify platform device MSI code
...
The allocation code is overly complex. It tries to have the MSI index space
packed, which is not working when an interrupt is freed. There is no
requirement for this. The only requirement is that the MSI index is unique.
Move the MSI descriptor allocation into msi_domain_populate_irqs() and use
the Linux interrupt number as MSI index which fulfils the unique
requirement.
This requires to lock the MSI descriptors which makes the lock order
reverse to the regular MSI alloc/free functions vs. the domain
mutex. Assign a seperate lockdep class for these MSI device domains.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.956731741@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
653b50c5f9
platform-msi: Let core code handle MSI descriptors
...
Use the core functionality for platform MSI interrupt domains. The platform
device MSI interrupt domains will be converted in a later step.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.903173257@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
e8604b1447
bus: fsl-mc-msi: Simplify MSI descriptor handling
...
Let the MSI irq domain code handle descriptor allocation and free.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.847219474@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
7ad321a5ea
soc: ti: ti_sci_inta_msi: Remove ti_sci_inta_msi_domain_free_irqs()
...
The function has no users and is pointless now that the core frees the MSI
descriptors, which means potential users can just use msi_domain_free_irqs().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.793119155@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
49fbfdc222
soc: ti: ti_sci_inta_msi: Rework MSI descriptor allocation
...
Protect the allocation properly and use the core allocation and free
mechanism.
No functional change intended.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.737904583@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
68e3183580
NTB/msi: Convert to msi_on_each_desc()
...
Replace the about to vanish iterators, make use of the filtering and take
the descriptor lock around the iteration.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Logan Gunthorpe <logang@deltatee.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.683004012@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
dc2b453290
PCI: hv: Rework MSI handling
...
Replace the about to vanish iterators and make use of the filtering. Take
the descriptor lock around the iterators.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.629363944@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
706b585a1b
powerpc/mpic_u3msi: Use msi_for_each-desc()
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.576162169@linutronix.de
2021-12-16 22:22:19 +01:00
Thomas Gleixner
ab430e7437
powerpc/fsl_msi: Use msi_for_each_desc()
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.522641685@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
e22b0d1bbf
powerpc/pasemi/msi: Convert to msi_on_each_dec()
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.468512783@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
3c46658bd7
powerpc/cell/axon_msi: Convert to msi_on_each_desc()
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.414712173@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
85dabc2f72
powerpc/4xx/hsta: Rework MSI handling
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.359766435@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
2ca5e908d0
s390/pci: Rework MSI descriptor walk
...
Replace the about to vanish iterators and make use of the filtering.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Niklas Schnelle <schnelle@linux.ibm.com >
Link: https://lore.kernel.org/r/20211206210748.305656158@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
3d31bbd39a
xen/pcifront: Rework MSI handling
...
Replace the about to vanish iterators.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.251752714@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
f2948df5f8
x86/pci/xen: Use msi_for_each_desc()
...
Replace the about to vanish iterators.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210748.198359105@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
ae24e28fef
PCI/MSI: Use msi_on_each_desc()
...
Use the new iterator functions which pave the way for dynamically extending
MSI-X vectors.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.142603657@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
9fb9eb4b59
PCI/MSI: Let core code free MSI descriptors
...
Set the domain info flag which tells the core code to free the MSI
descriptors from msi_domain_free_irqs() and add an explicit call to the
core function into the legacy code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.089085131@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
71020a3c0d
PCI/MSI: Use msi_add_msi_desc()
...
Simplify the allocation of MSI descriptors by using msi_add_msi_desc()
which moves the storage handling to core code and prepares for dynamic
extension of the MSI-X vector space.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.035348646@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
5512c5eaf5
PCI/MSI: Protect MSI operations
...
To prepare for dynamic extension of MSI-X vectors, protect the MSI
operations for MSI and MSI-X. This requires to move the invocation of
irq_create_affinity_masks() out of the descriptor lock section to avoid
reverse lock ordering vs. CPU hotplug lock as some callers of the PCI/MSI
allocation interfaces already hold it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210747.982292705@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
645474e2ce
genirq/msi: Provide domain flags to allocate/free MSI descriptors automatically
...
Provide domain info flags which tell the core to allocate simple
descriptors or to free descriptors when the interrupts are freed and
implement the required functionality.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.928198636@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
6029052536
genirq/msi: Provide msi_alloc_msi_desc() and a simple allocator
...
Provide msi_alloc_msi_desc() which takes a template MSI descriptor for
initializing a newly allocated descriptor. This allows to simplify various
usage sites of alloc_msi_entry() and moves the storage handling into the
core code.
For simple cases where only a linear vector space is required provide
msi_add_simple_msi_descs() which just allocates a linear range of MSI
descriptors and fills msi_desc::msi_index accordingly.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.873833567@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
1046f71d72
genirq/msi: Provide a set of advanced MSI accessors and iterators
...
In preparation for dynamic handling of MSI-X interrupts provide a new set
of MSI descriptor accessor functions and iterators. They are benefitial per
se as they allow to cleanup quite some code in various MSI domain
implementations.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.818635078@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
0f62d941ac
genirq/msi: Provide msi_domain_alloc/free_irqs_descs_locked()
...
Usage sites which do allocations of the MSI descriptors before invoking
msi_domain_alloc_irqs() require to lock the MSI decriptors accross the
operation.
Provide entry points which can be called with the MSI mutex held and lock
the mutex in the existing entry points.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.765371053@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
b5f687f97d
genirq/msi: Add mutex for MSI list protection
...
For upcoming runtime extensions of MSI-X interrupts it's required to
protect the MSI descriptor list. Add a mutex to struct msi_device_data and
provide lock/unlock functions.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.708877269@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
125282cd4f
genirq/msi: Move descriptor list to struct msi_device_data
...
It's only required when MSI is in use.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211206210747.650487479@linutronix.de
2021-12-16 22:22:16 +01:00
Thomas Gleixner
1900c962e2
dmaengine: qcom_hidma: Cleanup MSI handling
...
There is no reason to walk the MSI descriptors to retrieve the interrupt
number for a device. Use msi_get_virq() instead.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Sinan Kaya <okaya@kernel.org >
Acked-by: Vinod Koul <vkoul@kernel.org >
Link: https://lore.kernel.org/r/20211210221815.329792721@linutronix.de
2021-12-16 22:16:42 +01:00
Thomas Gleixner
89e0032ec2
soc: ti: ti_sci_inta_msi: Get rid of ti_sci_inta_msi_get_virq()
...
Just use the core function msi_get_virq().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Vinod Koul <vkoul@kernel.org >
Acked-by: Nishanth Menon <nm@ti.com >
Link: https://lore.kernel.org/r/20211210221815.269468319@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
d86a6d47bc
bus: fsl-mc: fsl-mc-allocator: Rework MSI handling
...
Storing a pointer to the MSI descriptor just to track the Linux interrupt
number is daft. Just store the interrupt number and be done with it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221815.207838579@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
d722e9a511
mailbox: bcm-flexrm-mailbox: Rework MSI interrupt handling
...
No point in retrieving the MSI descriptors. Just query the Linux interrupt
number.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221815.148331680@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
065afdc9c5
iommu/arm-smmu-v3: Use msi_get_virq()
...
Let the core code fiddle with the MSI descriptor retrieval.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Robin Murphy <robin.murphy@arm.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221815.089008198@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
8484567055
perf/smmuv3: Use msi_get_virq()
...
Let the core code fiddle with the MSI descriptor retrieval.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221815.029143589@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
f6632bb2c1
dmaengine: mv_xor_v2: Get rid of msi_desc abuse
...
Storing a pointer to the MSI descriptor just to keep track of the Linux
interrupt number is daft. Use msi_get_virq() instead.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Vinod Koul <vkoul@kernel.org >
Link: https://lore.kernel.org/r/20211210221814.970099984@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
f482359001
PCI/MSI: Simplify pci_irq_get_affinity()
...
Replace open coded MSI descriptor chasing and use the proper accessor
functions instead.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.900929381@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
82ff8e6b78
PCI/MSI: Use msi_get_virq() in pci_get_vector()
...
Use msi_get_vector() and handle the return value to be compatible.
No functional change intended.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.841243231@linutronix.de
2021-12-16 22:16:41 +01:00
Thomas Gleixner
cf15f43aca
genirq/msi: Provide interface to retrieve Linux interrupt number
...
This allows drivers to retrieve the Linux interrupt number instead of
fiddling with MSI descriptors.
msi_get_virq() returns the Linux interrupt number or 0 in case that there
is no entry for the given MSI index.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.780824745@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
651b39c488
powerpc/pseries/msi: Let core code check for contiguous entries
...
Set the domain info flag and remove the check.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.720998720@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
7a823443e9
PCI/MSI: Provide MSI_FLAG_MSIX_CONTIGUOUS
...
Provide a domain info flag which makes the core code check for a contiguous
MSI-X index on allocation. That's simpler than checking it at some other
domain callback in architecture code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.662401116@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
173ffad79d
PCI/MSI: Use msi_desc::msi_index
...
The usage of msi_desc::pci::entry_nr is confusing at best. It's the index
into the MSI[X] descriptor table.
Use msi_desc::msi_index which is shared between all MSI incarnations
instead of having a PCI specific storage for no value.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.602911509@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
0f18095871
soc: ti: ti_sci_inta_msi: Use msi_desc::msi_index
...
Use the common msi_index member and get rid of the pointless wrapper struct.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Nishanth Menon <nm@ti.com >
Link: https://lore.kernel.org/r/20211210221814.540704224@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
78ee9fb4b8
bus: fsl-mc-msi: Use msi_desc::msi_index
...
Use the common msi_index member and get rid of the pointless wrapper struct.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.477386185@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
dba27c7fa3
platform-msi: Use msi_desc::msi_index
...
Use the common msi_index member and get rid of the pointless wrapper struct.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.413638645@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
20c6d424cf
genirq/msi: Consolidate MSI descriptor data
...
All non PCI/MSI usage variants have data structures in struct msi_desc with
only one member: xxx_index. PCI/MSI has a entry_nr member.
Add a common msi_index member to struct msi_desc so all implementations can
share it which allows further consolidation.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.350967317@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
fc22e7dbcd
platform-msi: Store platform private data pointer in msi_device_data
...
Storing the platform private data in a MSI descriptor is sloppy at
best. The data belongs to the device and not to the descriptor.
Add a pointer to struct msi_device_data and store the pointer there.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.287680528@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
9835cec6d5
platform-msi: Rename functions and clarify comments
...
It's hard to distinguish what platform_msi_domain_alloc() and
platform_msi_domain_alloc_irqs() are about. Make the distinction more
explicit and add comments which explain the use cases properly.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.228706214@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
24cff375fd
genirq/msi: Remove the original sysfs interfaces
...
No more users. Refactor the core code accordingly and move the global
interface under CONFIG_PCI_MSI_ARCH_FALLBACKS.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.168362229@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
25ce693ef7
platform-msi: Let the core code handle sysfs groups
...
Set the domain info flag and remove the local sysfs code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221814.109408832@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
ffd84485e6
PCI/MSI: Let the irq code handle sysfs groups
...
Set the domain info flag which makes the core code handle sysfs groups and
put an explicit invocation into the legacy code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.048612053@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
bf6e054e0e
genirq/msi: Provide msi_device_populate/destroy_sysfs()
...
Add new allocation functions which can be activated by domain info
flags. They store the groups pointer in struct msi_device_data.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Link: https://lore.kernel.org/r/20211210221813.988659194@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
686073e9f8
soc: ti: ti_sci_inta_msi: Allocate MSI device data on first use
...
Allocate the MSI device data on first invocation of the allocation function.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Nishanth Menon <nm@ti.com >
Link: https://lore.kernel.org/r/20211210221813.928842960@linutronix.de
2021-12-16 22:16:39 +01:00