• Marc Zyngier's avatar
    genirq/irqdomain: Allow partial trimming of irq_data hierarchy · 55567976
    Marc Zyngier authored
    It appears that some HW is ugly enough that not all the interrupts
    connected to a particular interrupt controller end up with the same
    hierarchy depth (some of them are terminated early). This leaves
    the irqchip hacker with only two choices, both equally bad:
    
    - create discrete domain chains, one for each "hierarchy depth",
      which is very hard to maintain
    
    - create fake hierarchy levels for the shallow paths, leading
      to all kind of problems (what are the safe hwirq values for these
      fake levels?)
    
    Implement the ability to cut short a single interrupt hierarchy
    from a level marked as being disconnected by using the new
    irq_domain_disconnect_hierarchy() helper.
    
    The irqdomain allocation code will then perform the trimming
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    55567976
irqdomain.c 51.4 KB