• 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
    ...
    c09fcc4b
Makefile 967 Bytes