1. 27 7月, 2015 1 次提交
  2. 16 7月, 2015 1 次提交
    • G
      gpio: rcar: Fine-grained Runtime PM support · 65194cb1
      Geert Uytterhoeven 提交于
      Currently gpio modules are runtime-resumed at probe time. This means the
      gpio module will be active all the time (except during system suspend,
      if not configured as a wake-up source).
      
      While an R-Car Gen2 gpio module retains pins configured for output at
      the requested level while put in standby mode, gpio registercannot be
      accessed while suspended.  Unfortunately pm_runtime_get_sync() cannot be
      called from all contexts where gpio register access is needed. Hence
      move the Runtime PM handling from probe/remove time to gpio request/free
      time, which is probably the best we can do.
      
      On r8a7791/koelsch, gpio modules 0, 1, 3, and 4 are now suspended during
      normal use (gpio2 is used for LEDs and regulators, gpio5 for keys, gpio6
      for SD-Card CD & WP, gpio7 for keys and regulators).
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      65194cb1
  3. 01 6月, 2015 1 次提交
    • G
      gpio: rcar: Check for irq_set_irq_wake() failures · 501ef0f9
      Geert Uytterhoeven 提交于
      If an interrupt controller doesn't support wake-up configuration,
      irq_set_irq_wake() returns an error code.  Then any subsequent call
      trying to deconfigure wake-up will cause an imbalance, and a warning
      will be printed:
      
          WARNING: CPU: 1 PID: 1341 at kernel/irq/manage.c:540 irq_set_irq_wake+0x9c/0xf8()
          Unbalanced IRQ 26 wake disable
      
      To fix this, refrain from any further parent interrupt controller
      (de)configuration if irq_set_irq_wake() failed.
      
      Alternative fixes would be:
        - calling "gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE)" from the
          platform code,
        - setting "gic_chip.flags = IRQCHIP_SKIP_SET_WAKE" in the GIC driver
          code,
      but these were withheld as the GIC hardware doesn't really support
      wake-up interrupts.
      
      Fixes: ab82fa7d ("gpio: rcar: Prevent module clock disable when wake-up is enabled")
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      501ef0f9
  4. 26 3月, 2015 3 次提交
  5. 16 1月, 2015 2 次提交
  6. 27 11月, 2014 1 次提交
  7. 22 7月, 2014 1 次提交
  8. 16 7月, 2014 1 次提交
  9. 09 7月, 2014 1 次提交
  10. 09 5月, 2014 1 次提交
  11. 29 4月, 2014 1 次提交
  12. 29 3月, 2014 1 次提交
  13. 13 12月, 2013 1 次提交
    • V
      gpio: rcar: Fix level interrupt handling · 8808b64d
      Valentine Barshak 提交于
      According to the manual, if a port is set for level detection using
      the corresponding bit in the edge/level select register and an external
      level interrupt signal is asserted, the corresponding bit in INTDT
      does not use the FF to hold the input.
      Thus, writing 1 to the corresponding bits in INTCLR cannot clear the
      corresponding bits in the INTDT register. Instead, when an external
      input signal is stopped, the corresponding bit in INTDT is cleared
      automatically.
      
      Since the INTDT bit cannot be cleared for the level interrupts until
      the interrupt signal is stopped, we end up with the infinite loop
      when using deferred (threaded) IRQ handling.
      
      Since a deferred interrupt is disabled by the low-level handler and
      re-enabled only when the deferred handler is completed, Fix the issue
      by dropping disabled interrupts from the pending mask as suggested by
      Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      
      Changes in V2:
      * Drop disabled interrupts from pending mask altogether instead of
        dropping level interrupts one by one once they get handled.
      Signed-off-by: NValentine Barshak <valentine.barshak@cogentembedded.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      8808b64d
  14. 03 12月, 2013 1 次提交
  15. 25 11月, 2013 3 次提交
  16. 16 10月, 2013 2 次提交
  17. 22 9月, 2013 1 次提交
  18. 16 8月, 2013 1 次提交
  19. 19 6月, 2013 2 次提交
  20. 17 6月, 2013 1 次提交
  21. 12 6月, 2013 1 次提交
  22. 04 6月, 2013 2 次提交
  23. 03 4月, 2013 2 次提交