Hi Uwe, On Mon, Jun 05, 2023 at 06:14:57PM +0200, Uwe Kleine-König wrote: > The .remove() callback for a platform driver returns an int which makes > many driver authors wrongly assume it's possible to do error handling by > returning an error code. However the value returned is ignored (apart from > emitting a warning). > > To improve here there is a quest to make the remove callback return void. > In the first step of this quest all drivers are converted to .remove_new() > which already returns void. Eventually after all drivers are converted, > .remove_new() is renamed to .remove(). > > Before this driver might have returned an error. In this case emit a > warning that tells more about the problem than the generic warning by > the core, and instead of making the remove callback return zero > unconditionally, convert to .remove_new() which is equivalent. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> Reviewed-by: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> Thanks, Markus > --- > drivers/input/misc/tps65219-pwrbutton.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/input/misc/tps65219-pwrbutton.c b/drivers/input/misc/tps65219-pwrbutton.c > index 245134bdb59e..b2d9e5d2bcfd 100644 > --- a/drivers/input/misc/tps65219-pwrbutton.c > +++ b/drivers/input/misc/tps65219-pwrbutton.c > @@ -117,14 +117,17 @@ static int tps65219_pb_probe(struct platform_device *pdev) > return 0; > } > > -static int tps65219_pb_remove(struct platform_device *pdev) > +static void tps65219_pb_remove(struct platform_device *pdev) > { > struct tps65219 *tps = dev_get_drvdata(pdev->dev.parent); > + int ret; > > /* Disable interrupt for the pushbutton */ > - return regmap_update_bits(tps->regmap, TPS65219_REG_MASK_CONFIG, > - TPS65219_REG_MASK_INT_FOR_PB_MASK, > - TPS65219_REG_MASK_INT_FOR_PB_MASK); > + ret = regmap_update_bits(tps->regmap, TPS65219_REG_MASK_CONFIG, > + TPS65219_REG_MASK_INT_FOR_PB_MASK, > + TPS65219_REG_MASK_INT_FOR_PB_MASK); > + if (ret) > + dev_warn(&pdev->dev, "Failed to disable irq (%pe)\n", ERR_PTR(ret)); > } > > static const struct platform_device_id tps65219_pwrbtn_id_table[] = { > @@ -135,7 +138,7 @@ MODULE_DEVICE_TABLE(platform, tps65219_pwrbtn_id_table); > > static struct platform_driver tps65219_pb_driver = { > .probe = tps65219_pb_probe, > - .remove = tps65219_pb_remove, > + .remove_new = tps65219_pb_remove, > .driver = { > .name = "tps65219_pwrbutton", > }, > > base-commit: ac9a78681b921877518763ba0e89202254349d1b > -- > 2.39.2 >