• Jon Hunter's avatar
    backlight: lp855x: Ensure regulators are disabled on probe failure · d8207c15
    Jon Hunter authored
    If probing the LP885x backlight fails after the regulators have been
    enabled, then the following warning is seen when releasing the
    regulators ...
    
     WARNING: CPU: 1 PID: 289 at drivers/regulator/core.c:2051 _regulator_put.part.28+0x158/0x160
     Modules linked in: tegra_xudc lp855x_bl(+) host1x pwm_tegra ip_tables x_tables ipv6 nf_defrag_ipv6
     CPU: 1 PID: 289 Comm: systemd-udevd Not tainted 5.6.0-rc2-next-20200224 #1
     Hardware name: NVIDIA Jetson TX1 Developer Kit (DT)
    
     ...
    
     Call trace:
      _regulator_put.part.28+0x158/0x160
      regulator_put+0x34/0x50
      devm_regulator_release+0x10/0x18
      release_nodes+0x12c/0x230
      devres_release_all+0x34/0x50
      really_probe+0x1c0/0x370
      driver_probe_device+0x58/0x100
      device_driver_attach+0x6c/0x78
      __driver_attach+0xb0/0xf0
      bus_for_each_dev+0x68/0xc8
      driver_attach+0x20/0x28
      bus_add_driver+0x160/0x1f0
      driver_register+0x60/0x110
      i2c_register_driver+0x40/0x80
      lp855x_driver_init+0x20/0x1000 [lp855x_bl]
      do_one_initcall+0x58/0x1a0
      do_init_module+0x54/0x1d0
      load_module+0x1d80/0x21c8
      __do_sys_finit_module+0xe8/0x100
      __arm64_sys_finit_module+0x18/0x20
      el0_svc_common.constprop.3+0xb0/0x168
      do_el0_svc+0x20/0x98
      el0_sync_handler+0xf4/0x1b0
      el0_sync+0x140/0x180
    
    Fix this by ensuring that the regulators are disabled, if enabled, on
    probe failure.
    
    Finally, ensure that the vddio regulator is disabled in the driver
    remove handler.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    d8207c15
lp855x_bl.c 12.2 KB