1. 02 Mar, 2020 1 commit
    • Greg Gallagher's avatar
      arm: ipipe: Fix up the omap-gpio driver to deliver interrupts properly to the pipeline · c041e938
      Greg Gallagher authored
      OMAP gpio driver was changed upstream to be able to support threaded IRQ handler,
      this change impacted how the ipipe dealt with this driver. Since the ipipe expects
      a chained handler and now it's a generic one, we need to ack the event in the
      interrupt controller before calling the handler and unmask it after.
      
      Level flow handler must be used for pipelined interrupts. Since the IRQ handler
       on the root stage may be delayed until the real-time core releases the CPU, we
      need to mask the IRQ to prevent an IRQ storm when the interrupts are enabled again.
      
      Convert wa_lock to ipipe_spinlock, since wa_lock is used in the irq_chip functions
      which when called from the head stage can't use a Linux kernel service.
      
      Add the hold/release handlers for robustness.
      Signed-off-by: Greg Gallagher's avatarGreg Gallagher <greg@embeddedgreg.com>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      c041e938
  2. 12 Dec, 2019 3 commits
    • Philippe Gerum's avatar
      ipipe: timer: allocate cpumask dynamically · bd12153d
      Philippe Gerum authored
      When a huge number of CPUs is available (e.g. CONFIG_MAXSMP/x86), we
      might overflow the stack with cpumask_t variables in
      ipipe_select_timer(). Allocate the cpumask we need there dynamically
      instead.
      bd12153d
    • Philippe Gerum's avatar
      ipipe: switch potentially large cpumask to static storage · 0539486f
      Philippe Gerum authored
      When a huge number of CPUs is available (e.g. CONFIG_MAXSMP/x86), we
      might overflow the stack with cpumask_t variables in
      ipipe_critical_enter().
      
      Instead of allocating cpumask_var_t dynamically for these, rely on the
      fact that we cannot reenter the code accessing them by design, so
      those variables may be moved to local static storage.
      0539486f
    • Philippe Gerum's avatar
      ipipe: add 4th mapping level to interrupt log · 23ff222e
      Philippe Gerum authored
      Some configurations may define more than 256K distinct interrupts
      (e.g. CONFIG_MAXSMP/x86), which is the limit for the current 3-level
      mapping used for logging IRQs. Add a 4th mapping level to support
      configurations up to 16M interrupts.
      23ff222e
  3. 16 Nov, 2019 1 commit
  4. 15 Nov, 2019 1 commit
  5. 08 Nov, 2019 34 commits