Skip to content

Commit 2b6aa9e

Browse files
bbkzzdtor
authored andcommitted
Input: lm8333 - convert to use devm_* api
Use devm_* api to simplify code, this makes it unnecessary to explicitly release resources. Signed-off-by: Yangtao Li <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent bf93349 commit 2b6aa9e

File tree

1 file changed

+14
-30
lines changed

1 file changed

+14
-30
lines changed

drivers/input/keyboard/lm8333.c

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -142,18 +142,18 @@ static int lm8333_probe(struct i2c_client *client)
142142
return -EINVAL;
143143
}
144144

145-
lm8333 = kzalloc(sizeof(*lm8333), GFP_KERNEL);
146-
input = input_allocate_device();
147-
if (!lm8333 || !input) {
148-
err = -ENOMEM;
149-
goto free_mem;
150-
}
145+
lm8333 = devm_kzalloc(&client->dev, sizeof(*lm8333), GFP_KERNEL);
146+
if (!lm8333)
147+
return -ENOMEM;
148+
149+
input = devm_input_allocate_device(&client->dev);
150+
if (!input)
151+
return -ENOMEM;
151152

152153
lm8333->client = client;
153154
lm8333->input = input;
154155

155156
input->name = client->name;
156-
input->dev.parent = &client->dev;
157157
input->id.bustype = BUS_I2C;
158158

159159
input_set_capability(input, EV_MSC, MSC_SCAN);
@@ -162,7 +162,7 @@ static int lm8333_probe(struct i2c_client *client)
162162
LM8333_NUM_ROWS, LM8333_NUM_COLS,
163163
lm8333->keycodes, input);
164164
if (err)
165-
goto free_mem;
165+
return err;
166166

167167
if (pdata->debounce_time) {
168168
err = lm8333_write8(lm8333, LM8333_DEBOUNCE,
@@ -178,34 +178,19 @@ static int lm8333_probe(struct i2c_client *client)
178178
dev_warn(&client->dev, "Unable to set active time\n");
179179
}
180180

181-
err = request_threaded_irq(client->irq, NULL, lm8333_irq_thread,
182-
IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
183-
"lm8333", lm8333);
181+
err = devm_request_threaded_irq(&client->dev, client->irq,
182+
NULL, lm8333_irq_thread,
183+
IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
184+
"lm8333", lm8333);
184185
if (err)
185-
goto free_mem;
186+
return err;
186187

187188
err = input_register_device(input);
188189
if (err)
189-
goto free_irq;
190+
return err;
190191

191192
i2c_set_clientdata(client, lm8333);
192193
return 0;
193-
194-
free_irq:
195-
free_irq(client->irq, lm8333);
196-
free_mem:
197-
input_free_device(input);
198-
kfree(lm8333);
199-
return err;
200-
}
201-
202-
static void lm8333_remove(struct i2c_client *client)
203-
{
204-
struct lm8333 *lm8333 = i2c_get_clientdata(client);
205-
206-
free_irq(client->irq, lm8333);
207-
input_unregister_device(lm8333->input);
208-
kfree(lm8333);
209194
}
210195

211196
static const struct i2c_device_id lm8333_id[] = {
@@ -219,7 +204,6 @@ static struct i2c_driver lm8333_driver = {
219204
.name = "lm8333",
220205
},
221206
.probe = lm8333_probe,
222-
.remove = lm8333_remove,
223207
.id_table = lm8333_id,
224208
};
225209
module_i2c_driver(lm8333_driver);

0 commit comments

Comments
 (0)