hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/input/misc/rb532_button.c
....@@ -1,10 +1,11 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Support for the S1 button on Routerboard 532
34 *
45 * Copyright (C) 2009 Phil Sutter <n0-1@freewrt.org>
56 */
67
7
-#include <linux/input-polldev.h>
8
+#include <linux/input.h>
89 #include <linux/module.h>
910 #include <linux/platform_device.h>
1011 #include <linux/gpio.h>
....@@ -45,56 +46,42 @@
4546 return !val;
4647 }
4748
48
-static void rb532_button_poll(struct input_polled_dev *poll_dev)
49
+static void rb532_button_poll(struct input_dev *input)
4950 {
50
- input_report_key(poll_dev->input, RB532_BTN_KSYM,
51
- rb532_button_pressed());
52
- input_sync(poll_dev->input);
51
+ input_report_key(input, RB532_BTN_KSYM, rb532_button_pressed());
52
+ input_sync(input);
5353 }
5454
5555 static int rb532_button_probe(struct platform_device *pdev)
5656 {
57
- struct input_polled_dev *poll_dev;
57
+ struct input_dev *input;
5858 int error;
5959
60
- poll_dev = input_allocate_polled_device();
61
- if (!poll_dev)
60
+ input = devm_input_allocate_device(&pdev->dev);
61
+ if (!input)
6262 return -ENOMEM;
6363
64
- poll_dev->poll = rb532_button_poll;
65
- poll_dev->poll_interval = RB532_BTN_RATE;
64
+ input->name = "rb532 button";
65
+ input->phys = "rb532/button0";
66
+ input->id.bustype = BUS_HOST;
6667
67
- poll_dev->input->name = "rb532 button";
68
- poll_dev->input->phys = "rb532/button0";
69
- poll_dev->input->id.bustype = BUS_HOST;
70
- poll_dev->input->dev.parent = &pdev->dev;
68
+ input_set_capability(input, EV_KEY, RB532_BTN_KSYM);
7169
72
- dev_set_drvdata(&pdev->dev, poll_dev);
73
-
74
- input_set_capability(poll_dev->input, EV_KEY, RB532_BTN_KSYM);
75
-
76
- error = input_register_polled_device(poll_dev);
77
- if (error) {
78
- input_free_polled_device(poll_dev);
70
+ error = input_setup_polling(input, rb532_button_poll);
71
+ if (error)
7972 return error;
80
- }
8173
82
- return 0;
83
-}
74
+ input_set_poll_interval(input, RB532_BTN_RATE);
8475
85
-static int rb532_button_remove(struct platform_device *pdev)
86
-{
87
- struct input_polled_dev *poll_dev = dev_get_drvdata(&pdev->dev);
88
-
89
- input_unregister_polled_device(poll_dev);
90
- input_free_polled_device(poll_dev);
76
+ error = input_register_device(input);
77
+ if (error)
78
+ return error;
9179
9280 return 0;
9381 }
9482
9583 static struct platform_driver rb532_button_driver = {
9684 .probe = rb532_button_probe,
97
- .remove = rb532_button_remove,
9885 .driver = {
9986 .name = DRV_NAME,
10087 },