1. 09 3月, 2016 1 次提交
  2. 08 3月, 2016 2 次提交
    • H
      pinctrl: sunxi: Change mux setting on PI irq pins · 7866f5a0
      Henry Paulissen 提交于
      While I was testing irq's on the cubietruck I found a couple of
      not working irq pins. Further diving into the problem it opened
      up a mess called "manual".
      
      This so called manual (A20 user manual v1.3 dated 2014-10-10) says:
      
      Pin overview:
          Page 237:       EINT26 is on mux 5.
          Page 288:       EINT26 is on mux 6.
      
      The manual is so contradicting that further tests had to be made
      to see which of the 2 statements where correct.
      
      This patch is based on actual outcome of these tests and not what
      the manual says.
      
      Test procedure used:
      
      Connect a 1 pulse per second (GPS) line to the pin.
      
      echo pin### > /sys/class/gpio/export
      echo in > /sys/class/gpio/gpio###/direction
      echo rising > /sys/class/gpio/gpio###/edge
      
      Check /proc/interrupts if a irq was attached and if irq's where
      received.
      
      Hardware used:
      Henry Paulissen: Cubietruck
      Andere Przywara: BananaPi M1
      Tested-by: NAndre Przywara <andre.przywara@arm.com>
      Reviewed-by: NAndre Przywara <andre.przywara@arm.com>
      Signed-off-by: NHenry Paulissen <henry@nitronetworks.nl>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      7866f5a0
    • H
      pinctrl: sunxi: Remove non existing irq's · 9c24ef41
      Henry Paulissen 提交于
      While I was testing irq's on the cubietruck I found a couple of
      not working irq pins. Further diving into the problem it opened
      up a mess called "manual".
      
      This so called manual (A20 user manual v1.3 dated 2014-10-10) says:
      
      Pin overview:
          Page 233:       EINT12 is on pin PC19 mux6.
          Page 236:       EINT12 is on pin PH12 mux6.
      
      Now, it is a bit strange to have the same IRQ on 2 different pins,
      but I guess this could still be possible hardware wise. But then:
      
      Pin registers:
          Page 253:       EINT12 is *not* on pin PC19.
          Page 281:       EINT12 is on pin PH12.
      
      The manual is so contradicting that further tests had to be made
      to see which of the 2 statements where correct.
      
      This patch is based on actual outcome of these tests and not what
      the manual says.
      
      Test procedure used:
      
      Connect a 1 pulse per second (GPS) line to the pin.
      
      echo pin### > /sys/class/gpio/export
      echo in > /sys/class/gpio/gpio###/direction
      echo rising > /sys/class/gpio/gpio###/edge
      
      Check /proc/interrupts if a irq was attached and if irq's where
      received.
      Signed-off-by: NHenry Paulissen <henry@nitronetworks.nl>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      9c24ef41
  3. 11 2月, 2016 2 次提交
  4. 28 1月, 2016 1 次提交
  5. 05 1月, 2016 1 次提交
  6. 27 12月, 2015 1 次提交
  7. 22 12月, 2015 1 次提交
  8. 11 12月, 2015 1 次提交
  9. 19 11月, 2015 1 次提交
    • L
      gpio: change member .dev to .parent · 58383c78
      Linus Walleij 提交于
      The name .dev in a struct is normally reserved for a struct device
      that is let us say a superclass to the thing described by the struct.
      struct gpio_chip stands out by confusingly using a struct device *dev
      to point to the parent device (such as a platform_device) that
      represents the hardware. As we want to give gpio_chip:s real devices,
      this is not working. We need to rename this member to parent.
      
      This was done by two coccinelle scripts, I guess it is possible to
      combine them into one, but I don't know such stuff. They look like
      this:
      
      @@
      struct gpio_chip *var;
      @@
      -var->dev
      +var->parent
      
      and:
      
      @@
      struct gpio_chip var;
      @@
      -var.dev
      +var.parent
      
      and:
      
      @@
      struct bgpio_chip *var;
      @@
      -var->gc.dev
      +var->gc.parent
      
      Plus a few instances of bgpio that I couldn't figure out how
      to teach Coccinelle to rewrite.
      
      This patch hits all over the place, but I *strongly* prefer this
      solution to any piecemal approaches that just exercise patch
      mechanics all over the place. It mainly hits drivers/gpio and
      drivers/pinctrl which is my own backyard anyway.
      
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Rafał Miłecki <zajec5@gmail.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: Alek Du <alek.du@intel.com>
      Cc: Jaroslav Kysela <perex@perex.cz>
      Cc: Takashi Iwai <tiwai@suse.com>
      Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLee Jones <lee.jones@linaro.org>
      Acked-by: NJiri Kosina <jkosina@suse.cz>
      Acked-by: NHans-Christian Egtvedt <egtvedt@samfundet.no>
      Acked-by: NJacek Anaszewski <j.anaszewski@samsung.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      58383c78
  10. 23 10月, 2015 2 次提交
  11. 17 10月, 2015 1 次提交
  12. 02 10月, 2015 3 次提交
  13. 16 9月, 2015 2 次提交
  14. 13 8月, 2015 1 次提交
  15. 27 7月, 2015 3 次提交
  16. 18 7月, 2015 2 次提交
  17. 25 6月, 2015 1 次提交
    • T
      pinctrl/sun4i: Fix race in installing chained IRQ handler · ef80e87d
      Thomas Gleixner 提交于
      Fix a race where a pending interrupt could be received and the handler
      called before the handler's data has been setup, by converting to
      irq_set_chained_handler_and_data().
      
      Search and conversion was done with coccinelle:
      
      @@
      expression E1, E2, E3;
      @@
      (
      -if (irq_set_chained_handler(E1, E3) != 0)
      -   BUG();
      |
      -irq_set_chained_handler(E1, E3);
      )
      -irq_set_handler_data(E1, E2);
      +irq_set_chained_handler_and_data(E1, E3, E2);
      
      @@
      expression E1, E2, E3;
      @@
      (
      -if (irq_set_chained_handler(E1, E3) != 0)
      -   BUG();
      ...
      |
      -irq_set_chained_handler(E1, E3);
      ...
      )
      -irq_set_handler_data(E1, E2);
      +irq_set_chained_handler_and_data(E1, E3, E2);
      Reported-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Julia Lawall <Julia.Lawall@lip6.fr>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Chen-Yu Tsai <wens@csie.org>
      Cc: Fan Wu <fwu@marvell.com>
      Cc: abdoulaye berthe <berthe.ab@gmail.com>
      Cc: Alexandre Courbot <acourbot@nvidia.com>
      Cc: linux-gpio@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      ef80e87d
  18. 10 6月, 2015 1 次提交
  19. 04 6月, 2015 2 次提交
  20. 27 3月, 2015 1 次提交
  21. 18 3月, 2015 1 次提交
  22. 14 1月, 2015 2 次提交
  23. 30 10月, 2014 2 次提交
  24. 29 10月, 2014 1 次提交
  25. 20 10月, 2014 1 次提交
  26. 04 9月, 2014 1 次提交
  27. 28 7月, 2014 2 次提交