Skip to content

Commit 9e085dd

Browse files
committed
Input: sgi_btns - switch to using managed resources
Switching to devm API allows to clean up error handling paths and drop the remove() method. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 5d96738 commit 9e085dd

File tree

1 file changed

+8
-29
lines changed

1 file changed

+8
-29
lines changed

drivers/input/misc/sgi_btns.c

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ static const unsigned short sgi_map[] = {
4545
};
4646

4747
struct buttons_dev {
48-
struct input_polled_dev *poll_dev;
4948
unsigned short keymap[ARRAY_SIZE(sgi_map)];
5049
int count[ARRAY_SIZE(sgi_map)];
5150
};
@@ -84,12 +83,13 @@ static int sgi_buttons_probe(struct platform_device *pdev)
8483
struct input_dev *input;
8584
int error, i;
8685

87-
bdev = kzalloc(sizeof(struct buttons_dev), GFP_KERNEL);
88-
poll_dev = input_allocate_polled_device();
89-
if (!bdev || !poll_dev) {
90-
error = -ENOMEM;
91-
goto err_free_mem;
92-
}
86+
bdev = devm_kzalloc(&pdev->dev, sizeof(*bdev), GFP_KERNEL);
87+
if (!bdev)
88+
return -ENOMEM;
89+
90+
poll_dev = devm_input_allocate_polled_device(&pdev->dev);
91+
if (!poll_dev)
92+
return -ENOMEM;
9393

9494
memcpy(bdev->keymap, sgi_map, sizeof(bdev->keymap));
9595

@@ -101,7 +101,6 @@ static int sgi_buttons_probe(struct platform_device *pdev)
101101
input->name = "SGI buttons";
102102
input->phys = "sgi/input0";
103103
input->id.bustype = BUS_HOST;
104-
input->dev.parent = &pdev->dev;
105104

106105
input->keycode = bdev->keymap;
107106
input->keycodemax = ARRAY_SIZE(bdev->keymap);
@@ -113,35 +112,15 @@ static int sgi_buttons_probe(struct platform_device *pdev)
113112
__set_bit(bdev->keymap[i], input->keybit);
114113
__clear_bit(KEY_RESERVED, input->keybit);
115114

116-
bdev->poll_dev = poll_dev;
117-
platform_set_drvdata(pdev, bdev);
118-
119115
error = input_register_polled_device(poll_dev);
120116
if (error)
121-
goto err_free_mem;
122-
123-
return 0;
124-
125-
err_free_mem:
126-
input_free_polled_device(poll_dev);
127-
kfree(bdev);
128-
return error;
129-
}
130-
131-
static int sgi_buttons_remove(struct platform_device *pdev)
132-
{
133-
struct buttons_dev *bdev = platform_get_drvdata(pdev);
134-
135-
input_unregister_polled_device(bdev->poll_dev);
136-
input_free_polled_device(bdev->poll_dev);
137-
kfree(bdev);
117+
return error;
138118

139119
return 0;
140120
}
141121

142122
static struct platform_driver sgi_buttons_driver = {
143123
.probe = sgi_buttons_probe,
144-
.remove = sgi_buttons_remove,
145124
.driver = {
146125
.name = "sgibtns",
147126
},

0 commit comments

Comments
 (0)