[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200507151115.792516-1-hslester96@gmail.com>
Date: Thu, 7 May 2020 23:11:15 +0800
From: Chuhong Yuan <hslester96@...il.com>
To: unlisted-recipients:; (no To-header on input)
Cc: Dmitry Torokhov <dmitry.torokhov@...il.com>,
linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
Chuhong Yuan <hslester96@...il.com>
Subject: [PATCH] Input: s6sy761 - add missed input_unregister_device
This driver calls input_register_device() in probe, but misses
input_unregister_device() in probe failure and remove.
Add the missed function calls to fix it.
Signed-off-by: Chuhong Yuan <hslester96@...il.com>
---
drivers/input/touchscreen/s6sy761.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/s6sy761.c b/drivers/input/touchscreen/s6sy761.c
index b63d7fdf0cd2..cd8a7bd9be1e 100644
--- a/drivers/input/touchscreen/s6sy761.c
+++ b/drivers/input/touchscreen/s6sy761.c
@@ -464,21 +464,28 @@ static int s6sy761_probe(struct i2c_client *client,
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
"s6sy761_irq", sdata);
if (err)
- return err;
+ goto err_unregister;
err = devm_device_add_group(&client->dev, &s6sy761_attribute_group);
if (err)
- return err;
+ goto err_unregister;
pm_runtime_enable(&client->dev);
return 0;
+
+err_unregister:
+ input_unregister_device(sdata->input);
+ return err;
}
static int s6sy761_remove(struct i2c_client *client)
{
+ struct s6sy761_data *sdata = i2c_get_clientdata(client);
+
pm_runtime_disable(&client->dev);
+ input_unregister_device(sdata->input);
return 0;
}
--
2.26.2
Powered by blists - more mailing lists