misc: lis3lv02d_i2c: Add missing setting of the reg_ctrl callback
The lis3lv02d_i2c driver was missing a line to set the lis3_dev's reg_ctrl callback. lis3_reg_ctrl(on) is called from the init callback, but due to the missing reg_ctrl callback the regulators where never turned off again leading to the following oops/backtrace when detaching the driver: [ 82.313527] ------------[ cut here ]------------ [ 82.313546] WARNING: CPU: 1 PID: 1724 at drivers/regulator/core.c:2396 _regulator_put+0x219/0x230 ... [ 82.313695] RIP: 0010:_regulator_put+0x219/0x230 ... [ 82.314767] Call Trace: [ 82.314770] <TASK> [ 82.314772] ? _regulator_put+0x219/0x230 [ 82.314777] ? __warn+0x81/0x170 [ 82.314784] ? _regulator_put+0x219/0x230 [ 82.314791] ? report_bug+0x18d/0x1c0 [ 82.314801] ? handle_bug+0x3c/0x80 [ 82.314806] ? exc_invalid_op+0x13/0x60 [ 82.314812] ? asm_exc_invalid_op+0x16/0x20 [ 82.314845] ? _regulator_put+0x219/0x230 [ 82.314857] regulator_bulk_free+0x39/0x60 [ 82.314865] i2c_device_remove+0x22/0xb0 Add the missing setting of the callback so that the regulators properly get turned off again when not used. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20231224183402.95640-1-hdegoede@redhat.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d3da61ea97
commit
b1b9f7a494
@ -150,6 +150,7 @@ static int lis3lv02d_i2c_probe(struct i2c_client *client)
|
|||||||
lis3_dev.init = lis3_i2c_init;
|
lis3_dev.init = lis3_i2c_init;
|
||||||
lis3_dev.read = lis3_i2c_read;
|
lis3_dev.read = lis3_i2c_read;
|
||||||
lis3_dev.write = lis3_i2c_write;
|
lis3_dev.write = lis3_i2c_write;
|
||||||
|
lis3_dev.reg_ctrl = lis3_reg_ctrl;
|
||||||
lis3_dev.irq = client->irq;
|
lis3_dev.irq = client->irq;
|
||||||
lis3_dev.ac = lis3lv02d_axis_map;
|
lis3_dev.ac = lis3lv02d_axis_map;
|
||||||
lis3_dev.pm_dev = &client->dev;
|
lis3_dev.pm_dev = &client->dev;
|
||||||
|
Loading…
Reference in New Issue
Block a user