1. 10 Oct, 2020 5 commits
    • Marc Zyngier's avatar
      408f110e
    • Marc Zyngier's avatar
      soc/tegra: pmc: Don't create fake interrupt hierarchy levels · c351ab7b
      Marc Zyngier authored
      The Tegra PMC driver does ungodly things with the interrupt hierarchy,
      repeatedly corrupting it by pulling hwirq numbers out of thin air,
      overriding existing IRQ mappings and changing the handling flow
      of unsuspecting users.
      
      All of this is done in the name of preserving the interrupt hierarchy
      even when these levels do not exist in the HW. Together with the use
      of proper IRQs for IPIs, this leads to an unbootable system as the
      rescheduling IPI gets repeatedly repurposed for random drivers...
      
      Instead, let's simply mark the level from which the hierarchy does
      not make sense for the HW, and let the core code trim the usused
      levels from the hierarchy.
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      c351ab7b
    • Marc Zyngier's avatar
      soc/tegra: pmc: Allow optional irq parent callbacks · 8681cc33
      Marc Zyngier authored
      Make the PMC driver resistent to variable depth interrupt hierarchy,
      which we are about to introduce.
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      8681cc33
    • Marc Zyngier's avatar
      gpio: tegra186: Allow optional irq parent callbacks · 986ec63d
      Marc Zyngier authored
      Make the tegra186 GPIO driver resistent to variable depth
      interrupt hierarchy, which we are about to introduce.
      
      No functionnal change yet.
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      986ec63d
    • 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
  2. 06 Oct, 2020 7 commits
  3. 28 Sep, 2020 2 commits
  4. 25 Sep, 2020 7 commits
  5. 18 Sep, 2020 2 commits
  6. 17 Sep, 2020 17 commits