1. 26 Aug, 2015 5 commits
    • Hongzhou Yang's avatar
      pinctrl: mediatek: Fix multiple registration issue. · d48c2c02
      Hongzhou Yang authored
      Since our common driver need support main chip and PMU
      at the same time, that means it will register two
      pinctrl device, and the pinctrl_desc structure should
      be used two times.
      
      But pinctrl_desc use global static definition, then
      the latest registered pinctrl device will overwrite
      the old one's, all members in pinctrl_desc will set to
      the new one's, such as name, pins and pins numbers, etc.
      This is a bug.
      
      Move pinctrl_desc into mtk_pinctrl, assign new value for
      each pinctrl device to fix it.
      
      Cc: stable@vger.kernel.org # v4.1+
      Signed-off-by: default avatarHongzhou Yang <hongzhou.yang@mediatek.com>
      Reviewed-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      d48c2c02
    • Shinobu Uehara's avatar
      pinctrl: sh-pfc: r8a7794: add USB pin groups · 580a7ee9
      Shinobu Uehara authored
      Add USB0/1 pin groups to R8A7794 PFC driver.
      Signed-off-by: default avatarShinobu Uehara <shinobu.uehara.xc@renesas.com>
      [Sergei: rebased, renamed, added changelog.]
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      580a7ee9
    • Geert Uytterhoeven's avatar
      pinctrl: at91: Use generic irq_{request,release}_resources() · 91d33cfe
      Geert Uytterhoeven authored
      The at91-specific irq_{request,release}_resources() callbacks are
      identical to the generic ones, modulo the bug fix in 5b76e79c
      ("gpiolib: irqchip: prevent driver unloading if gpio is used as irq
      only").
      
      Until commit 8b67a1f0 ("gpio: don't override irq_*_resources()
      callbacks"), the buggy at91-specific callbacks were never used, though.
      
      Hence drop the at91-specific ones in favor of the generic ones.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      91d33cfe
    • Mika Westerberg's avatar
      pinctrl: cherryview: Use raw_spinlock for locking · 109fdf15
      Mika Westerberg authored
      When running -rt kernel and an interrupt happens on a GPIO line controlled by
      Intel Cherryview/Braswell pinctrl driver we get:
      
       BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
       in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0
       Preemption disabled at:[<ffffffff81092e9f>] cpu_startup_entry+0x17f/0x480
      
       CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #16
        ...
       Call Trace:
        <IRQ>  [<ffffffff816283c6>] dump_stack+0x4a/0x61
        [<ffffffff81077e17>] ___might_sleep+0xe7/0x170
        [<ffffffff8162d6cf>] rt_spin_lock+0x1f/0x50
        [<ffffffff812e52ed>] chv_gpio_irq_ack+0x3d/0xa0
        [<ffffffff810a72f5>] handle_edge_irq+0x75/0x180
        [<ffffffff810a3457>] generic_handle_irq+0x27/0x40
        [<ffffffff812e57de>] chv_gpio_irq_handler+0x7e/0x110
        [<ffffffff810050aa>] handle_irq+0xaa/0x190
        ...
      
      This is because desc->lock is raw_spinlock and is held when chv_gpio_irq_ack()
      is called by the genirq core. chv_gpio_irq_ack() in turn takes pctrl->lock
      which in -rt is an rt-mutex causing might_sleep() rightfully to complain about
      sleeping function called from invalid context.
      
      In order to keep -rt happy but at the same time make sure that register
      accesses get serialized, convert the driver to use raw_spinlock instead.
      Suggested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      109fdf15
    • Mika Westerberg's avatar
      pinctrl: baytrail: Use raw_spinlock for locking · 78e1c896
      Mika Westerberg authored
      The Intel Baytrail pinctrl driver implements irqchip callbacks which are
      called with desc->lock raw_spinlock held. In mainline this is fine because
      spinlock resolves to raw_spinlock. However, running the same code in -rt we
      get:
      
       BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
       in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0
       Preemption disabled at:[<ffffffff81092e9f>] cpu_startup_entry+0x17f/0x480
      
       CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #13
        ...
       Call Trace:
        <IRQ>  [<ffffffff816283c6>] dump_stack+0x4a/0x61
        [<ffffffff81077e17>] ___might_sleep+0xe7/0x170
        [<ffffffff8162d6cf>] rt_spin_lock+0x1f/0x50
        [<ffffffff812e3b88>] byt_gpio_clear_triggering+0x38/0x60
        [<ffffffff812e3bc1>] byt_irq_mask+0x11/0x20
        [<ffffffff810a7013>] handle_level_irq+0x83/0x150
        [<ffffffff810a3457>] generic_handle_irq+0x27/0x40
        [<ffffffff812e3a5f>] byt_gpio_irq_handler+0x7f/0xc0
        [<ffffffff810050aa>] handle_irq+0xaa/0x190
        ...
      
      This is because in -rt spinlocks are preemptible so taking the driver
      private spinlock in irqchip callbacks causes might_sleep() to trigger.
      
      In order to keep -rt happy but at the same time make sure that register
      accesses get serialized, convert the driver to use raw_spinlock instead.
      
      Also shorten the critical section a bit in few places.
      Suggested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      78e1c896
  2. 25 Aug, 2015 2 commits
  3. 24 Aug, 2015 1 commit
  4. 13 Aug, 2015 9 commits
  5. 11 Aug, 2015 1 commit
  6. 03 Aug, 2015 1 commit
  7. 28 Jul, 2015 4 commits
    • Wei Chen's avatar
      pinctrl: sirf: add power management support for atlas7 · 48356aa7
      Wei Chen authored
      We had not implemented the pm interface of atlas7 pinctrl
      and gpio drivers. So when system resumes from sleep, all
      pin configuration and gpio status will be lost.
      
      Now, we implement these interfaces to support pm.
      
      At the same time, this patch also drops a lot of if-else
      by look-up table for getting and setting pull.
      Signed-off-by: default avatarWei Chen <Wei.Chen@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      48356aa7
    • Linus Walleij's avatar
      pinctrl: nomadik: split stn8815 UART0 pin groups · 1051fade
      Linus Walleij authored
      Split the UART pin groups so we can activate RX/TX, CTS/RTS and
      the modem pins (DCD, DSR, RI, DTR) as three different groups
      with function u0.
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      1051fade
    • Krzysztof Kozlowski's avatar
      MAINTAINERS: pinctrl: Move Thomas Abraham to CREDITS · dc9ab949
      Krzysztof Kozlowski authored
      Thomas Abraham's Linaro email address bounces for several months. Also
      there were no replies for several emails sent on LKML to his Samsung
      address. Move his name to CREDITS.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Cc: Thomas Abraham <thomas.ab@samsung.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Link: http://lkml.org/lkml/2015/6/15/15Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      dc9ab949
    • Rob Herring's avatar
      pinctrl: kill off set_irq_flags usage · 9458120e
      Rob Herring authored
      set_irq_flags is ARM specific with custom flags which have genirq
      equivalents. Convert drivers to use the genirq interfaces directly, so we
      can kill off set_irq_flags. The translation of flags is as follows:
      
      IRQF_VALID -> !IRQ_NOREQUEST
      IRQF_PROBE -> !IRQ_NOPROBE
      IRQF_NOAUTOEN -> IRQ_NOAUTOEN
      
      For IRQs managed by an irqdomain, the irqdomain core code handles clearing
      and setting IRQ_NOREQUEST already, so there is no need to do this in
      .map() functions and we can simply remove the set_irq_flags calls. Some
      users also modify IRQ_NOPROBE and this has been maintained although it
      is not clear that is really needed. There appears to be a great deal of
      blind copy and paste of this code.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Lee Jones <lee@kernel.org>
      Cc: Matthias Brugger <matthias.bgg@gmail.com>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Cc: Thomas Abraham <thomas.abraham@linaro.org>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: linux-gpio@vger.kernel.org
      Cc: linux-rpi-kernel@lists.infradead.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-mediatek@lists.infradead.org
      Cc: linux-samsung-soc@vger.kernel.org
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      9458120e
  8. 27 Jul, 2015 9 commits
  9. 23 Jul, 2015 3 commits
  10. 17 Jul, 2015 5 commits