1. 06 3月, 2015 3 次提交
    • M
      pinctrl: baytrail: Rework interrupt handling · 31e4329f
      Mika Westerberg 提交于
      Instead of handling everything in the driver's first level interrupt
      handler, we can take advantage of already existing flow handlers that are
      provided by the IRQ core.
      
      This changes the functionality a bit also. Previously the driver looped
      over pending interrupts in a single loop, restarting the loop if some
      interrupt changed state. This caused problem with Lenovo Thinkpad 10
      digitizer that it was not able to deassert the interrupt before the driver
      disabled the interrupt for good (looplimit was exhausted).
      
      Rework the interrupt handling logic a bit so that we provide proper mask,
      ack and unmask operations in terms of Baytrail GPIO hardware and loop over
      pending interrupts only once. If the interrupt remains asserted the first
      level handler will be re-triggered automatically.
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      31e4329f
    • M
      pinctrl: baytrail: Clear interrupt triggering from pins that are in GPIO mode · 95f0972c
      Mika Westerberg 提交于
      If the pin is already configured as GPIO and it has any of the triggering
      flags set, we may get spurious interrupts depending on the state of the
      pin.
      
      Prevent this by clearing the triggering flags on such pins. However, if the
      pin is also configured as "direct IRQ" we leave the flags as is. Otherwise
      it will prevent interrupts that are routed directly to IO-APIC.
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      95f0972c
    • M
      pinctrl: baytrail: Relax GPIO request rules · f8323b6b
      Mika Westerberg 提交于
      Zotac ZBOX PI320, a Baytrail based mini-PC, has power button connected to a
      GPIO pin and it is exposed to the operating system as Windows 8 button
      array. This is implemented in Linux as a driver using gpio_keys.
      
      However, BIOS on this particula machine forgot to mux the pin to be a GPIO
      instead of native function, which results following message to be seen on
      the console:
      
       byt_gpio INT33FC:02: pin 16 cannot be used as GPIO.
      
      This causes power button to not work as the driver was not able to request
      the GPIO it needs.
      
      So instead of completely preventing this we allow turning the pin as GPIO
      but issue warning that something might be wrong.
      Reported-by: NBenjamin Adler <benadler@gmx.net>
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      f8323b6b
  2. 29 10月, 2014 1 次提交
  3. 28 10月, 2014 2 次提交
  4. 20 10月, 2014 2 次提交
  5. 10 9月, 2014 1 次提交
  6. 28 7月, 2014 1 次提交
  7. 22 7月, 2014 1 次提交
  8. 11 7月, 2014 1 次提交
  9. 23 5月, 2014 3 次提交
  10. 18 3月, 2014 1 次提交
    • L
      gpio: switch drivers to use new callback · 57ef0428
      Linus Walleij 提交于
      This switches all GPIO and pin control drivers with irqchips
      that were using .startup() and .shutdown() callbacks to lock
      GPIO lines for IRQ usage over to using the .request_resources()
      and .release_resources() callbacks just introduced into the
      irqchip vtable.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jean-Jacques Hiblot <jjhiblot@traphandler.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      57ef0428
  11. 11 3月, 2014 1 次提交
  12. 18 1月, 2014 1 次提交
  13. 08 1月, 2014 1 次提交
  14. 09 12月, 2013 1 次提交
  15. 04 12月, 2013 1 次提交
    • L
      gpio/pinctrl: make gpio_chip members typed boolean · 9fb1f39e
      Linus Walleij 提交于
      This switches the two members of struct gpio_chip that were
      defined as unsigned foo:1 to bool, because that is indeed what
      they are. Switch all users in the gpio and pinctrl subsystems
      to assign these values with true/false instead of 0/1. The
      users outside these subsystems will survive since true/false
      is 1/0, atleast we set some kind of more strict typing example.
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      9fb1f39e
  16. 03 12月, 2013 1 次提交
  17. 30 11月, 2013 1 次提交
  18. 23 7月, 2013 5 次提交
  19. 18 6月, 2013 1 次提交