Skip to content
  • Jon Hunter's avatar
    d8207c15
    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
    backlight: lp855x: Ensure regulators are disabled on probe failure
    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>
Loading