Skip to content
Snippets Groups Projects
  1. Sep 14, 2022
  2. Sep 13, 2022
  3. Sep 07, 2022
    • Pali Rohár's avatar
      gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx · 279c12df
      Pali Rohár authored
      
      Commit e39d5ef6 ("powerpc/5xxx: extend mpc8xxx_gpio driver to support
      mpc512x gpios") implemented support for IRQ_TYPE_LEVEL_LOW flow type in
      mpc512x via falling edge type. Do same for mpc85xx which support was added
      in commit 345e5c8a ("powerpc: Add interrupt support to mpc8xxx_gpio").
      
      Fixes probing of lm90 hwmon driver on mpc85xx based board which use level
      interrupt. Without it kernel prints error and refuse lm90 to work:
      
          [   15.258370] genirq: Setting trigger mode 8 for irq 49 failed (mpc8xxx_irq_set_type+0x0/0xf8)
          [   15.267168] lm90 0-004c: cannot request IRQ 49
          [   15.272708] lm90: probe of 0-004c failed with error -22
      
      Fixes: 345e5c8a ("powerpc: Add interrupt support to mpc8xxx_gpio")
      Signed-off-by: default avatarPali Rohár <pali@kernel.org>
      Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
      279c12df
  4. Sep 03, 2022
  5. Aug 31, 2022
    • Sander Vanheule's avatar
      gpio: realtek-otto: switch to 32-bit I/O · ee0175b3
      Sander Vanheule authored
      
      By using 16-bit I/O on the GPIO peripheral, which is apparently not safe
      on MIPS, the IMR can end up containing garbage. This then results in
      interrupt triggers for lines that don't have an interrupt handler
      associated. The irq_desc lookup fails, and the ISR will not be cleared,
      keeping the CPU busy until reboot, or until another IMR operation
      restores the correct value. This situation appears to happen very
      rarely, for < 0.5% of IMR writes.
      
      Instead of using 8-bit or 16-bit I/O operations on the 32-bit memory
      mapped peripheral registers, switch to using 32-bit I/O only, operating
      on the entire bank for all single bit line settings. For 2-bit line
      settings, with 16-bit port values, stick to manual (un)packing.
      
      This issue has been seen on RTL8382M (HPE 1920-16G), RTL8391M (Netgear
      GS728TP v2), and RTL8393M (D-Link DGS-1210-52 F3, Zyxel GS1900-48).
      
      Reported-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> # DGS-1210-52
      Reported-by: Birger Koblitz <mail@birger-koblitz.de> # GS728TP
      Reported-by: Jan Hoffmann <jan@3e8.eu> # 1920-16G
      Fixes: 0d82fb11 ("gpio: Add Realtek Otto GPIO support")
      Signed-off-by: default avatarSander Vanheule <sander@svanheule.net>
      Cc: Paul Cercueil <paul@crapouillou.net>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
      ee0175b3
    • Haibo Chen's avatar
      gpio: pca953x: Add mutex_lock for regcache sync in PM · 518e26f1
      Haibo Chen authored
      
      The regcache sync will set the cache_bypass = true, at that
      time, when there is regmap write operation, it will bypass
      the regmap cache, then the regcache sync will write back the
      value from cache to register, which is not as our expectation.
      
      Though regmap already use its internal lock to avoid such issue,
      but this driver force disable the regmap internal lock in its
      regmap config: disable_locking = true
      
      To avoid this issue, use the driver's own lock to do the protect
      in system PM.
      
      Fixes: b7657430 ("gpio: pca953x: Restore registers after suspend/resume cycle")
      Signed-off-by: default avatarHaibo Chen <haibo.chen@nxp.com>
      Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
      518e26f1
  6. Aug 28, 2022
  7. Aug 25, 2022
  8. Aug 19, 2022
  9. Jul 28, 2022
  10. Jul 26, 2022
  11. Jul 22, 2022
  12. Jul 20, 2022
  13. Jul 19, 2022
Loading