Re: [PATCH] misc: apds990x: Fix missing pm_runtime_disable()

From: Jinjie Ruan
Date: Mon Oct 07 2024 - 22:37:48 EST


Ping.

On 2024/9/23 11:55, Jinjie Ruan wrote:
> 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@xxxxxxxxxx>
> ---
> drivers/misc/apds990x.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/misc/apds990x.c b/drivers/misc/apds990x.c
> index 6d4edd69db12..e7d73c972f65 100644
> --- a/drivers/misc/apds990x.c
> +++ b/drivers/misc/apds990x.c
> @@ -1147,7 +1147,7 @@ static int apds990x_probe(struct i2c_client *client)
> err = chip->pdata->setup_resources();
> if (err) {
> err = -EINVAL;
> - goto fail3;
> + goto fail4;
> }
> }
>
> @@ -1155,7 +1155,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,
> @@ -1166,15 +1166,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: