1. 10 Jun, 2015 2 commits
  2. 09 Jun, 2015 3 commits
  3. 08 Jun, 2015 7 commits
  4. 04 Jun, 2015 12 commits
  5. 28 May, 2015 13 commits
  6. 26 May, 2015 3 commits
    • Johan Hovold's avatar
      greybus: gpio: fix interrupt protocol · 1409c4d6
      Johan Hovold authored
      The current interrupt implementation uses the simple irq-flow handler,
      which means that the interrupt subsystem makes no irq-chip callbacks
      when handling an interrupt. Specifically, no end-of-interrupt message is
      sent when the threaded handler has run. This means that we may currently
      re-enable an interrupt before it has been serviced (i.e. the irq-event
      operation may complete before the threaded handler has run).
      
      The simple flow handler also silently drops a second interrupt arriving
      while a handler is running. This means that we may lose a second edge
      interrupt with the current firmware.
      
      Switch to a new one-shot interrupt protocol, where the primary handler
      (firmware) always masks and acks an interrupt before sending an event to
      the AP. The AP is responsible for unmasking the interrupt when it has
      been handled. By having the firmware ack an edge interrupt before
      sending the event, a second edge interrupt will no longer get lost.
      
      This one-shot protocol can be implemented in the kernel by using the
      level irq-flow handler, one-shot interrupts with threaded handlers and
      bus-lock synchronisation for slow buses. Note that the same flow handler
      is used for both edge and level interrupts.
      Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
      1409c4d6
    • Johan Hovold's avatar
      greybus: gpio: fix atomic sleep when using interrupts · 25f11ed9
      Johan Hovold authored
      The irq-chip callbacks are made in atomic context where we must not do
      any synchronous greybus operations.
      
      Fix the current gpio-interrupt implementation by using the bus-lock
      functionality provided by the irq subsystem.
      Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
      25f11ed9
    • Johan Hovold's avatar
      greybus: gpio: rename irq mask and unmask callbacks · 0cb918d7
      Johan Hovold authored
      Rename irq mask and unmask functions to match the callback names.
      Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
      0cb918d7