• Thomas Gleixner's avatar
    irqchip/irq-mvebu-icu: Prepare for real per device MSI · d929e4db
    Thomas Gleixner authored
    The core infrastructure has everything in place to switch ICU to per
    device MSI domains and avoid the convoluted construct of the existing
    platform-MSI layering violation.
    
    The new infrastructure provides a wired interrupt specific interface in the
    MSI core which converts the 'hardware interrupt number + trigger type'
    allocation which is required for wired interrupts in the regular irqdomain
    code to a normal MSI allocation.
    
    The hardware interrupt number and the trigger type are stored in the MSI
    descriptor device cookie by the core code so the ICU specific code can
    retrieve them.
    
    The new per device domain is only instantiated when the irqdomain which is
    associated to the ICU device provides MSI parent functionality. Up to
    that point it invokes the existing code. Once the parent is converted the
    code for the current platform-MSI mechanism is removed.
    
    The new domain shares the interrupt chip callbacks and the translation
    function. The only new functionality aside of filling out the
    msi_domain_templates is a domain specific set_desc() callback, which will go
    away once all platform-MSI code has been converted.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarAnna-Maria Behnsen <anna-maria@linutronix.de>
    Signed-off-by: default avatarShivamurthy Shastri <shivamurthy.shastri@linutronix.de>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20240623142235.635015886@linutronix.de
    
    
    d929e4db
irq-mvebu-icu.c 16 KB