misc: apds990x: Fix missing pm_runtime_disable()

[ Upstream commit 3c5d8b819d27012264edd17e6ae7fffda382fe44 ]

The pm_runtime_disable() is missing in probe error path,
so add it to fix it.

Fixes: 92b1f84d46b2 ("drivers/misc: driver for APDS990X ALS and proximity sensors")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20240923035556.3009105-1-ruanjinjie@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Jinjie Ruan 2024-09-23 11:55:56 +08:00 committed by Ksawlii
parent 366f1818f3
commit 0b2467e708

View file

@ -1148,7 +1148,7 @@ static int apds990x_probe(struct i2c_client *client,
err = chip->pdata->setup_resources(); err = chip->pdata->setup_resources();
if (err) { if (err) {
err = -EINVAL; err = -EINVAL;
goto fail3; goto fail4;
} }
} }
@ -1156,7 +1156,7 @@ static int apds990x_probe(struct i2c_client *client,
apds990x_attribute_group); apds990x_attribute_group);
if (err < 0) { if (err < 0) {
dev_err(&chip->client->dev, "Sysfs registration failed\n"); dev_err(&chip->client->dev, "Sysfs registration failed\n");
goto fail4; goto fail5;
} }
err = request_threaded_irq(client->irq, NULL, err = request_threaded_irq(client->irq, NULL,
@ -1167,15 +1167,17 @@ static int apds990x_probe(struct i2c_client *client,
if (err) { if (err) {
dev_err(&client->dev, "could not get IRQ %d\n", dev_err(&client->dev, "could not get IRQ %d\n",
client->irq); client->irq);
goto fail5; goto fail6;
} }
return err; return err;
fail5: fail6:
sysfs_remove_group(&chip->client->dev.kobj, sysfs_remove_group(&chip->client->dev.kobj,
&apds990x_attribute_group[0]); &apds990x_attribute_group[0]);
fail4: fail5:
if (chip->pdata && chip->pdata->release_resources) if (chip->pdata && chip->pdata->release_resources)
chip->pdata->release_resources(); chip->pdata->release_resources();
fail4:
pm_runtime_disable(&client->dev);
fail3: fail3:
regulator_bulk_disable(ARRAY_SIZE(chip->regs), chip->regs); regulator_bulk_disable(ARRAY_SIZE(chip->regs), chip->regs);
fail2: fail2: