Hi Vikas, On 11/24/20 5:16 PM, Vikas Gupta wrote: > This RFC adds support for MSI for platform devices. > MSI block is added as an ext irq along with the existing > wired interrupt implementation. > > Changes from: > ------------- > v1 to v2: > 1) IRQ allocation has been implemented as below: > ---------------------------- > |IRQ-0|IRQ-1|....|IRQ-n|MSI| > ---------------------------- > MSI block has msi contexts and its implemneted it is implemented > as ext irq. > > 2) Removed vendor specific module for msi handling so > previously patch2 and patch3 are not required. > > 3) MSI related data is exported to userspace using 'caps'. > Please note VFIO_IRQ_INFO_CAP_TYPE in include/uapi/linux/vfio.h implementation > is taken from the Eric`s patch > https://patchwork.kernel.org/project/kvm/patch/20201116110030.32335-8-eric.auger@xxxxxxxxxx/ So do you mean that by exposing the vectors, now you do not need the msi module anymore? Thanks Eric > > > 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 (1): > vfio/platform: add support for msi > > drivers/vfio/platform/vfio_platform_common.c | 99 ++++++- > drivers/vfio/platform/vfio_platform_irq.c | 260 +++++++++++++++++- > drivers/vfio/platform/vfio_platform_private.h | 16 ++ > include/uapi/linux/vfio.h | 43 +++ > 4 files changed, 401 insertions(+), 17 deletions(-) >