1. 17 8月, 2015 1 次提交
  2. 13 8月, 2015 5 次提交
    • D
      gpio: mxc: fix section mismatch warning · 929550b9
      Dirk Behme 提交于
      Fix the section mismatch warning
      
      WARNING: vmlinux.o(.text+0x2b2788): Section mismatch in reference from the function mxc_gpio_probe() to the function .init.text:mxc_gpio_init_gc()
      The function mxc_gpio_probe() references
      the function __init mxc_gpio_init_gc().
      This is often because mxc_gpio_probe lacks a __init
      annotation or the annotation of mxc_gpio_init_gc is wrong.
      Signed-off-by: NDirk Behme <dirk.behme@de.bosch.com>
      Signed-off-by: NVladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      929550b9
    • U
      gpio/mxc: mask gpio interrupts in suspend · 952cfbd3
      Ulises Brindis 提交于
      Currently in the FSL platform all GPIO interrupts in a bank are muxed
      into two GPIO lines to the GPC interrupt controller. In each GPIO bank
      GPIOs 0-15 are OR'ed into one GPC interrupt controller interrupt and 16-31
      are OR'ed into another. With the current code, if any of the 0-15 or
      16-31 interrupts are marked as wakeup capable, all interrupts belonging
      to that sub-bank (either 0-15 or 16-31) will wake up the device. This is
      because interrupts are only being masked at the interrupt controller
      and not at the GPIO controller.
      
      This patch allows masking of GPIO interrupts at the GPIO controller during
      suspend if they have not been labeled wakeup capable. This patch uses
      preexisting IRQCHIP_MASK_ON_SUSPEND flag while initializing the GPIO
      interrupts to get the desired behavior.
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: linux-gpio@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      Signed-off-by: NUlises Brindis <ubrindis56@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      952cfbd3
    • A
      gpio: omap: Fix missing raw locks conversion · 627c89b4
      Axel Lin 提交于
      Fix below build warning:
        CC      drivers/gpio/gpio-omap.o
      drivers/gpio/gpio-omap.c: In function 'omap_gpio_irq_type':
      drivers/gpio/gpio-omap.c:504:3: warning: passing argument 1 of 'spin_unlock_irqrestore' from incompatible pointer type [enabled by default]
      include/linux/spinlock.h:360:29: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
      
      Fixes: commit 4dbada2b ("gpio: omap: use raw locks for locking")
      Signed-off-by: NAxel Lin <axel.lin@ingics.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      627c89b4
    • G
      gpio: brcmstb: support wakeup from S5 cold boot · 3afa129a
      Gregory Fong 提交于
      For wake from S5, we need to:
      - register a reboot handler
      - set wakeup capability before requesting IRQ so wakeup count is
        incremented
      - mask all GPIO IRQs and clear any pending interrupts during driver
        probe to since no driver will yet be registered to handle any IRQs
        carried over from boot at that time, and it's possible that the
        booted kernel does not request the same IRQ anyway.
      
      This means that /sys/.../power/wakeup_count is valid at boot time, and
      we can properly account for S5 wakeup stats. e.g.:
      
        ### After waking from S5 from a GPIO key
        # cat /sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup
        enabled
        # cat /sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup_count
        1
      Signed-off-by: NGregory Fong <gregory.0xf0@gmail.com>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      3afa129a
    • G
      gpio: brcmstb: Add interrupt and wakeup source support · 19a7b694
      Gregory Fong 提交于
      Uses the gpiolib irqchip helpers.  For this to work, the irq setup
      function is called once per bank instead of once per device.  Note
      that all known uses of this block have a BCM7120 L2 interrupt
      controller as a parent.  Supports interrupts for all GPIOs.
      
      In the IRQ handler, we check for raised IRQs for invalid GPIOs and
      warn (ratelimited) if they're encountered.
      
      Also, several drivers (e.g. gpio-keys) allow for GPIOs to be
      configured as wakeup sources, and this GPIO controller supports that
      through a separate interrupt path.
      
      The de-facto standard DT property "wakeup-source" is checked, since
      that indicates whether the GPIO controller hardware can wake.  Uses
      the IRQCHIP_MASK_ON_SUSPEND irq_chip flag because UPG GIO doesn't have
      any of its own wakeup source configuration.
      
      Aside regarding gpiolib irqchip helpers: It wasn't obvious (to me)
      that you can have multiple chained irqchips and associated IRQ domains
      for a single parent IRQ, and as long as the xlate function is written
      correctly, a GPIO IRQ request end up checking the correct domain and
      will get associated with the correct IRQ.  What helps make this clear
      is to read
        drivers/gpio/gpiolib-of.c:
         - of_gpiochip_find_and_xlate()
         - of_get_named_gpiod_flags()
        drivers/gpio/gpiolib.c:
         - gpiochip_find()
      Signed-off-by: NGregory Fong <gregory.0xf0@gmail.com>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      19a7b694
  3. 03 8月, 2015 2 次提交
  4. 28 7月, 2015 3 次提交
  5. 27 7月, 2015 9 次提交
  6. 17 7月, 2015 2 次提交
  7. 16 7月, 2015 18 次提交