Input: zforce_ts - use devm_add_action_or_reset()
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Sat, 24 Aug 2024 05:50:25 +0000 (22:50 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 6 Sep 2024 05:56:45 +0000 (22:56 -0700)
If devm_add_action() fails we are explicitly calling the cleanup to free
the resources allocated. Lets use the helper devm_add_action_or_reset()
and return directly in case of error, as we know that the cleanup
function has been already called by the helper if there was any error.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Andreas Kemnade <andreas@kemnade.info> # Tolino Shine2HD
Link: https://lore.kernel.org/r/20240824055047.1706392-2-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/zforce_ts.c

index fdf2d1e..ffbd55c 100644 (file)
@@ -803,15 +803,12 @@ static int zforce_probe(struct i2c_client *client)
                udelay(100);
        }
 
-       ret = devm_add_action(&client->dev, zforce_reset, ts);
+       ret = devm_add_action_or_reset(&client->dev, zforce_reset, ts);
        if (ret) {
                dev_err(&client->dev, "failed to register reset action, %d\n",
                        ret);
 
                /* hereafter the regulator will be disabled by the action */
-               if (!IS_ERR(ts->reg_vdd))
-                       regulator_disable(ts->reg_vdd);
-
                return ret;
        }