This RFC adds support for MSI for platform devices. a) MSI(s) is/are added in addition to the normal interrupts. b) The vendor specific MSI configuration can be done using callbacks which is implemented as msi module. c) Adds a msi handling module for the Broadcom platform devices. Changes from: ------------- v0 to v1: i) Removed MSI device flag VFIO_DEVICE_FLAGS_MSI. ii) Add MSI(s) at the end of the irq list of platform IRQs. MSI(s) with first entry of MSI block has count and flag information. IRQ list: Allocation for IRQs + MSIs are allocated as below Example: if there are 'n' IRQs and 'k' MSIs ------------------------------------------------------- |IRQ-0|IRQ-1|....|IRQ-n|MSI-0|MSI-1|MSI-2|......|MSI-k| ------------------------------------------------------- MSI-0 will have count=k set and flags set accordingly. Vikas Gupta (3): vfio/platform: add support for msi vfio/platform: change cleanup order vfio/platform: add Broadcom msi module drivers/vfio/platform/Kconfig | 1 + drivers/vfio/platform/Makefile | 1 + drivers/vfio/platform/msi/Kconfig | 9 + drivers/vfio/platform/msi/Makefile | 2 + .../vfio/platform/msi/vfio_platform_bcmplt.c | 74 ++++++ drivers/vfio/platform/vfio_platform_common.c | 86 ++++++- drivers/vfio/platform/vfio_platform_irq.c | 238 +++++++++++++++++- drivers/vfio/platform/vfio_platform_private.h | 23 ++ 8 files changed, 419 insertions(+), 15 deletions(-) create mode 100644 drivers/vfio/platform/msi/Kconfig create mode 100644 drivers/vfio/platform/msi/Makefile create mode 100644 drivers/vfio/platform/msi/vfio_platform_bcmplt.c -- 2.17.1