]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
misc: apds990x: Fix missing pm_runtime_disable()
authorJinjie Ruan <ruanjinjie@huawei.com>
Mon, 23 Sep 2024 03:55:56 +0000 (11:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:51:10 +0000 (19:51 +0100)
[ 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>
drivers/misc/apds990x.c

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