1. Feb 21, 2019
  2. Feb 19, 2019
  3. Feb 16, 2019
    • Niklas Cassel's avatar
      regulator: core: Take lock before applying system load · e5e21f70
      Niklas Cassel authored
      Take the regulator lock before applying system load.
      
      Fixes the following lockdep splat:
      
      [    5.583581] WARNING: CPU: 1 PID: 16 at drivers/regulator/core.c:925 drms_uA_update+0x114/0x360
      [    5.588467] Modules linked in:
      [    5.596833] CPU: 1 PID: 16 Comm: kworker/1:0 Not tainted 5.0.0-rc6-next-20190213-00002-g0fce66ab480f #18
      [    5.599933] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
      [    5.609544] Workqueue: events qcom_channel_state_worker
      [    5.616209] pstate: 60000005 (nZCv daif -PAN -UAO)
      [    5.621152] pc : drms_uA_update+0x114/0x360
      [    5.626006] lr : drms_uA_update+0x110/0x360
      [    5.630084] sp : ffff0000124b3490
      [    5.634242] x29: ffff0000124b3490 x28: ffff800005326e00
      [    5.637735] x27: ffff0000124b35f8 x26: 000000000032bc48
      [    5.643117] x25: ffff800004c7e800 x24: ffff800004c6d500
      [    5.648411] x23: ffff800004c38a80 x22: 00000000000000d1
      [    5.653706] x21: 00000000001ab3f0 x20: ffff800004c7e800
      [    5.659001] x19: ffff0000114c3000 x18: ffffffffffffffff
      [    5.664297] x17: 0000000000000000 x16: 0000000000000000
      [    5.669592] x15: ffff0000114c3808 x14: 0720072007200720
      [    5.674888] x13: 00000000199c9b28 x12: ffff80002bcccc40
      [    5.680183] x11: ffff000012286000 x10: ffff0000114c3808
      [    5.685477] x9 : 0720072007200720 x8 : ffff000010e9e808
      [    5.690772] x7 : ffff0000106da568 x6 : 0000000000000000
      [    5.696067] x5 : 0000000000000000 x4 : 0000000000000000
      [    5.701362] x3 : 0000000000000004 x2 : 0000000000000000
      [    5.706658] x1 : 0000000000000000 x0 : 0000000000000000
      [    5.711952] Call trace:
      [    5.717223]  drms_uA_update+0x114/0x360
      [    5.719405]  regulator_register+0xb30/0x1140
      [    5.723230]  devm_regulator_register+0x4c/0xa8
      [    5.727745]  rpm_reg_probe+0xfc/0x1b0
      [    5.731992]  platform_drv_probe+0x50/0xa0
      [    5.735727]  really_probe+0x20c/0x2b8
      [    5.739718]  driver_probe_device+0x58/0x100
      [    5.743368]  __device_attach_driver+0x90/0xd0
      [    5.747363]  bus_for_each_drv+0x64/0xc8
      [    5.751870]  __device_attach+0xd8/0x138
      [    5.755516]  device_initial_probe+0x10/0x18
      [    5.759341]  bus_probe_device+0x98/0xa0
      [    5.763502]  device_add+0x3d0/0x640
      [    5.767319]  of_device_add+0x48/0x58
      [    5.770793]  of_platform_device_create_pdata+0xb0/0x128
      [    5.774629]  of_platform_bus_create+0x174/0x370
      [    5.779569]  of_platform_populate+0x78/0xe0
      [    5.784082]  qcom_smd_rpm_probe+0x80/0xa0
      [    5.788245]  rpmsg_dev_probe+0x114/0x1a0
      [    5.792411]  really_probe+0x20c/0x2b8
      [    5.796401]  driver_probe_device+0x58/0x100
      [    5.799964]  __device_attach_driver+0x90/0xd0
      [    5.803960]  bus_for_each_drv+0x64/0xc8
      [    5.808468]  __device_attach+0xd8/0x138
      [    5.812115]  device_initial_probe+0x10/0x18
      [    5.815936]  bus_probe_device+0x98/0xa0
      [    5.820099]  device_add+0x3d0/0x640
      [    5.823916]  device_register+0x1c/0x28
      [    5.827391]  rpmsg_register_device+0x4c/0x90
      [    5.831216]  qcom_channel_state_worker+0x170/0x298
      [    5.835651]  process_one_work+0x294/0x6e8
      [    5.840241]  worker_thread+0x40/0x450
      [    5.844318]  kthread+0x11c/0x120
      [    5.847961]  ret_from_fork+0x10/0x18
      [    5.851260] irq event stamp: 9090
      [    5.854820] hardirqs last  enabled at (9089): [<ffff000010160798>] console_unlock+0x3e0/0x5b0
      [    5.858086] hardirqs last disabled at (9090): [<ffff0000100817cc>] do_debug_exception+0x104/0x140
      [    5.866596] softirqs last  enabled at (9086): [<ffff000010082024>] __do_softirq+0x474/0x574
      [    5.875446] softirqs last disabled at (9079): [<ffff0000100f2254>] irq_exit+0x13c/0x148
      [    5.883598] ---[ end trace 6984ef7f081afa21 ]---
      
      Fixes: fa94e48e
      
       ("regulator: core: Apply system load even if no consumer loads")
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@linaro.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      e5e21f70
    • Axel Lin's avatar
      regulator: ltc3676: Fix module description · d422234f
      Axel Lin authored
      
      
      This driver is for LTC3676 rather than LTC1376.
      
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Acked-by: default avatarTim Harvey <tharvey@gateworks.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      d422234f
    • Axel Lin's avatar
      regulator: ltc3676: Simplify .readable_reg and .writable_reg callbacks · 502aba81
      Axel Lin authored
      
      
      Use case range for continuous range to make the code shorter.
      The .readable_reg and .writable_reg implementation are exactly the same,
      so use a common ltc3676_readable_writeable_reg function instead.
      
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Acked-by: default avatarTim Harvey <tharvey@gateworks.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      502aba81
  4. Feb 14, 2019
  5. Feb 13, 2019
  6. Feb 12, 2019
  7. Feb 09, 2019
  8. Feb 08, 2019
  9. Feb 07, 2019
  10. Feb 06, 2019
    • Linus Walleij's avatar
      regulator: fixed/gpio: Pull inversion/OD into gpiolib · 01dc79cd
      Linus Walleij authored
      
      
      This pushes the handling of inversion semantics and open drain
      settings to the GPIO descriptor and gpiolib. All affected board
      files are also augmented.
      
      This is especially nice since we don't have to have any
      confusing flags passed around to the left and right littering
      the fixed and GPIO regulator drivers and the regulator core.
      It is all just very straight-forward: the core asks the GPIO
      line to be asserted or deasserted and gpiolib deals with the
      rest depending on how the platform is configured: if the line
      is active low, it deals with that, if the line is open drain,
      it deals with that too.
      
      Cc: Alexander Shiyan <shc_work@mail.ru> # i.MX boards user
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com> # MMP2 maintainer
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi> # OMAP1 maintainer
      Cc: Tony Lindgren <tony@atomide.com> # OMAP1,2,3 maintainer
      Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> # EM-X270 maintainer
      Cc: Robert Jarzmik <robert.jarzmik@free.fr> # EZX maintainer
      Cc: Philipp Zabel <philipp.zabel@gmail.com> # Magician maintainer
      Cc: Petr Cvek <petr.cvek@tul.cz> # Magician
      Cc: Robert Jarzmik <robert.jarzmik@free.fr> # PXA
      Cc: Paul Parsons <lost.distance@yahoo.com> # hx4700
      Cc: Daniel Mack <zonque@gmail.com> # Raumfeld maintainer
      Cc: Marc Zyngier <marc.zyngier@arm.com> # Zeus maintainer
      Cc: Geert Uytterhoeven <geert+renesas@glider.be> # SuperH pinctrl/GPIO maintainer
      Cc: Russell King <rmk+kernel@armlinux.org.uk> # SA1100
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> #OMAP1 Amstrad Delta
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      01dc79cd
    • Linus Walleij's avatar
      regulator: gpio: Convert to use descriptors · d6cd33ad
      Linus Walleij authored
      
      
      This converts the GPIO regulator driver to use decriptors only.
      
      We have to let go of the array gpio handling: the fetched descriptors
      are handled individually anyway, and the array retrieveal function
      does not make it possible to retrieve each GPIO descriptor with
      unique flags. Instead get them one by one.
      
      We request the "enable" GPIO separately as before, and make sure
      that this line is requested as nonexclusive since enable lines can
      be shared and the regulator core expects this.
      
      Most users of the GPIO regulator are using device tree.
      
      There are two boards in the kernel using the gpio regulator from a
      non-devicetree path: PXA hx4700 and magician. Make sure to switch
      these over to use descriptors as well.
      
      Cc: Philipp Zabel <p.zabel@pengutronix.de> # Magician
      Cc: Petr Cvek <petr.cvek@tul.cz> # Magician
      Cc: Robert Jarzmik <robert.jarzmik@free.fr> # PXA
      Cc: Paul Parsons <lost.distance@yahoo.com> # hx4700
      Cc: Kevin Hilman <khilman@baylibre.com> # Meson
      Cc: Neil Armstrong <narmstrong@baylibre.com> # Meson
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      d6cd33ad
    • Axel Lin's avatar
      regulator: rk808: Convert rk805 buck1/2 to use linear range · 4f297062
      Axel Lin authored
      
      
      It looks like linear range is suitable to describe the voltage table
      for rk805 buck1/2:
      
      selector 0 ~ 59: 0.7125V with uV_step = 12500
      selector 60 ~ 62: 1.8V with uV_step = 200000
      selector 63: 2.3V
      
      With this change, then rk805 buck1/2 can reuse rk808_reg_ops_ranges.
      
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Tested-by: default avatarOtavio Salvador <otavio@ossystems.com.br>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      4f297062