genirq/msi: Provide msi_domain_ops:: Prepare_desc()
authorThomas Gleixner <tglx@linutronix.de>
Thu, 24 Nov 2022 23:26:16 +0000 (00:26 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 5 Dec 2022 21:22:33 +0000 (22:22 +0100)
commit8f986fd7755bec8b8c5776824afa1bd1151986d9
tree1ab7feecf14a1dbfbc70ffa57ed4536b99d3f111
parentefd42049657e958797a483f793e4064042faa49c
genirq/msi: Provide msi_domain_ops:: Prepare_desc()

The existing MSI domain ops msi_prepare() and set_desc() turned out to be
unsuitable for implementing IMS support.

msi_prepare() does not operate on the MSI descriptors. set_desc() lacks
an irq_domain pointer and has a completely different purpose.

Introduce a prepare_desc() op which allows IMS implementations to amend an
MSI descriptor which was allocated by the core code, e.g. by adjusting the
iomem base or adding some data based on the allocated index. This is way
better than requiring that all IMS domain implementations preallocate the
MSI descriptor and then allocate the interrupt.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221124232326.444560717@linutronix.de
include/linux/msi.h
kernel/irq/msi.c