1. 02 11月, 2017 4 次提交
    • P
      irqchip: mips-gic: Inline gic_local_irq_domain_map() · 63b746b1
      Paul Burton 提交于
      The gic_local_irq_domain_map() function has only one callsite in
      gic_irq_domain_map(), and the split between the two functions makes it
      unclear that they duplicate calculations & checks.
      
      Inline gic_local_irq_domain_map() into gic_irq_domain_map() in order to
      clean this up. Doing this makes the following small issues obvious, and
      the patch tidies them up:
      
       - Both functions used GIC_HWIRQ_TO_LOCAL() to convert a hwirq number to
         a local IRQ number. We now only do this once. Although the compiler
         ought to have optimised this away before anyway, the change leaves us
         with less duplicate code.
      
       - gic_local_irq_domain_map() had a check for invalid local interrupt
         numbers (intr > GIC_LOCAL_INT_FDC). This condition can never occur
         because any hwirq higher than those used for local interrupts is a
         shared interrupt, which gic_irq_domain_map() already handles
         separately. We therefore remove this check.
      
       - The decision of whether to map the interrupt to gic_cpu_pin or
         timer_cpu_pin can be handled within the existing switch statement in
         gic_irq_domain_map(), shortening the code a little.
      
      The change additionally prepares us nicely for the following patch of
      the series which would otherwise need to duplicate the check for whether
      a local interrupt should be percpu_devid or just percpu (ie. the switch
      statement from gic_irq_domain_map()) in gic_local_irq_domain_map().
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-mips@linux-mips.org
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      63b746b1
    • M
      irqchip/meson-gpio: add support for Meson8 SoCs · 4e4cb1b1
      Martin Blumenstingl 提交于
      Meson8 uses the same GPIO interrupt controller IP block as the other
      Meson SoCs. A total of 134 pins can be spied on, which is the sum of:
      - 22 pins on bank GPIOX
      - 17 pins on bank GPIOY
      - 30 pins on bank GPIODV
      - 10 pins on bank GPIOH
      - 15 pins on bank GPIOZ
      - 7 pins on bank CARD
      - 19 pins on bank BOOT
      - 14 pins in the AO domain
      Acked-by: NKevin Hilman <khilman@baylibre.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      4e4cb1b1
    • M
      irqchip/gic: Deal with broken firmware exposing only 4kB of GICv2 CPU interface · 0962289b
      Marc Zyngier 提交于
      There is a lot of broken firmware out there that don't really
      expose the information the kernel requires when it comes with dealing
      with GICv2:
      
      (1) Firmware that only describes the first 4kB of GICv2
      (2) Firmware that describe 128kB of CPU interface, while
          the usable portion of the address space is between
          60 and 68kB
      
      So far, we only deal with (2). But we have platforms exhibiting
      behaviour (1), resulting in two sub-cases:
      (a) The GIC is occupying 8kB, as required by the GICv2 architecture
      (b) It is actually spread 128kB, and this is likely to be a version
          of (2)
      
      This patch tries to work around both (a) and (b) by poking at
      the outside of the described memory region, and try to work out
      what is actually there. This is of course unsafe, and should
      only be enabled if there is no way to otherwise fix the DT provided
      by the firmware (we provide a "irqchip.gicv2_force_probe" option
      to that effect).
      
      Note that for the time being, we restrict ourselves to GICv2
      implementations provided by ARM, since there I have no knowledge
      of an alternative implementations. This could be relaxed if such
      an implementation comes to light on a broken platform.
      Reviewed-by: NChristoffer Dall <cdall@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      0962289b
    • M
      irqchip/gic-v3-its: Setup VLPI properties at map time · d4d7b4ad
      Marc Zyngier 提交于
      So far, we require the hypervisor to update the VLPI properties
      once the the VLPI mapping has been established. While this
      makes it easy for the ITS driver, it creates a window where
      an incoming interrupt can be delivered with an unknown set
      of properties. Not very nice.
      
      Instead, let's add a "properties" field to the mapping structure,
      and use that to configure the VLPI before it actually gets mapped.
      Reviewed-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      d4d7b4ad
  2. 19 10月, 2017 20 次提交
  3. 17 10月, 2017 3 次提交
  4. 28 9月, 2017 8 次提交
  5. 27 9月, 2017 5 次提交