• Marc Zyngier's avatar
    drivers/base: Add MSI domain support for non-PCI devices · c09fcc4b
    Marc Zyngier authored
    With the msi_list and the msi_domain properties now being at the
    generic device level, it is starting to be relatively easy to offer
    a generic way of providing non-PCI MSIs.
    
    The two major hurdles with this idea are:
    
    - Lack of global ID that identifies a device: this is worked around by
      having a global ID allocator for each device that gets enrolled in
      the platform MSI subsystem
    
    - Lack of standard way to write the message in the generating device.
      This is solved by mandating driver code to provide a write_msg
      callback, so that everyone can have their own square wheel
    
    Apart from that, the API is fairly straightforward:
    
    - platform_msi_create_irq_domain creates an MSI domain that gets
      tagged with DOMAIN_BUS_PLATFORM_MSI
    
    - platform_msi_domain_alloc_irqs allocate MSIs for a given device,
      populating the msi_list
    
    - platform_msi_domain_free_irqs does what is written on the tin
    
    [ tglx: Created a seperate struct platform_msi_desc and added
      	kerneldoc entries ]
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Cc: <linux-arm-kernel@lists.infradead.org>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Cc: Ma Jun <majun258@huawei.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Duc Dang <dhdang@apm.com>
    Cc: Hanjun Guo <hanjun.guo@linaro.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Link: http://lkml.kernel.org/r/1438091186-10244-10-git-send-email-marc.zyngier@arm.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    c09fcc4b
platform-msi.c 6.91 KB