1. 03 2月, 2015 1 次提交
  2. 30 1月, 2015 1 次提交
  3. 16 1月, 2015 3 次提交
    • S
      gpio: max732x: Fix possible deadlock · 09afa276
      Semen Protsenko 提交于
      This patch was derived from next one:
      "gpio: fix pca953x set_type 'scheduling while atomic' bug".
      
      After adding entry that consumes max732x GPIO as interrupt line to dts
      file, deadlock appears somewhere in max732x probe function.
      
      Deadlock caught by lockdep (from kernel log):
      <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>
      [    0.473419] ======================================================
      [    0.473419] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
      [    0.473449] 3.x.xx-xxxxx-xxxxxxxx-dirty #2 Tainted: G        W
      [    0.473449] ------------------------------------------------------
      [    0.473449] swapper/0/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
      [    0.473449]  (&lock->wait_lock){+.+...}, at: [<c072e350>] rt_mutex_trylock+0xc/0x74
      [    0.473480]
      [    0.473480] and this task is already holding:
      [    0.473510]  (&chip->lock){......}, at: [<c0314514>] max732x_gpio_set_value+0x2c/0xa4
      [    0.473541] which would create a new lock dependency:
      [    0.473541]  (&chip->lock){......} -> (&lock->wait_lock){+.+...}
      
      ...
      
      [    0.474273]  *** DEADLOCK ***
      [    0.474273]
      [    0.474273] 5 locks held by swapper/0/1:
      [    0.474273]  #0:  (&__lockdep_no_validate__){......}, at: [<c03b2328>] __driver_attach+0x48/0x98
      [    0.474304]  #1:  (&__lockdep_no_validate__){......}, at: [<c03b2338>] __driver_attach+0x58/0x98
      [    0.474334]  #2:  (&chip->irq_lock){+.+...}, at: [<c0313e3c>] max732x_irq_bus_lock+0x14/0x20
      [    0.474365]  #3:  (&irq_desc_lock_class){-.....}, at: [<c00a65a4>] __irq_get_desc_lock+0x48/0x88
      [    0.474365]  #4:  (&chip->lock){......}, at: [<c0314514>] max732x_gpio
      <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>
      Signed-off-by: NSemen Protsenko <semen.protsenko@globallogic.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      09afa276
    • S
    • S
  4. 22 7月, 2014 1 次提交
  5. 12 3月, 2014 2 次提交
  6. 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
  7. 16 8月, 2013 1 次提交
  8. 27 3月, 2013 1 次提交
  9. 29 11月, 2012 3 次提交
  10. 07 6月, 2011 1 次提交
  11. 25 3月, 2011 1 次提交
  12. 14 1月, 2011 1 次提交
  13. 28 5月, 2010 3 次提交
  14. 16 1月, 2009 1 次提交
    • B
      gpio: fix probe() error return in gpio driver probes · a342d215
      Ben Dooks 提交于
      A number of drivers in drivers/gpio return -ENODEV when confronted with
      missing setup parameters such as the platform data.  However, returning
      -ENODEV causes the driver layer to silently ignore the driver as it
      assumes the probe did not find anything and was only speculative.
      
      To make life easier to discern why a driver is not being attached, change
      to returning -EINVAL, which is a better description of the fact that the
      driver data was not valid.
      
      Also add a set of dev_dbg() statements to the error paths to provide an
      better explanation of the error as there may be more that one point in the
      driver.
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a342d215
  15. 17 10月, 2008 1 次提交
    • D
      gpio: i2c expanders use subsys_init · 2f8d1197
      David Brownell 提交于
      Make the I2C external GPIO expander drivers register themselves at
      subsys_initcall() time when they're statically linked.
      
      SOC-integrated GPIOs are available starting very early -- early in
      arch_initcall() at latest, but often even before initcalls start to run --
      so this improves consistency, so more subsystems can rely on GPIOs in
      their own subsys_initcall() code.
      
      (This isn't a theoretical problem.  This is one of several patches needed
      to resolve oopsing observed when statically linking kernels on a DaVinci
      EVM.  Its pcf857x GPIOs needed to be available well before some other
      drivers initialized.)
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Jean Delvare <khali@linux-fr.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2f8d1197
  16. 26 7月, 2008 1 次提交