@@ -45,7 +45,6 @@ static const unsigned short sgi_map[] = {
45
45
};
46
46
47
47
struct buttons_dev {
48
- struct input_polled_dev * poll_dev ;
49
48
unsigned short keymap [ARRAY_SIZE (sgi_map )];
50
49
int count [ARRAY_SIZE (sgi_map )];
51
50
};
@@ -84,12 +83,13 @@ static int sgi_buttons_probe(struct platform_device *pdev)
84
83
struct input_dev * input ;
85
84
int error , i ;
86
85
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 ;
93
93
94
94
memcpy (bdev -> keymap , sgi_map , sizeof (bdev -> keymap ));
95
95
@@ -101,7 +101,6 @@ static int sgi_buttons_probe(struct platform_device *pdev)
101
101
input -> name = "SGI buttons" ;
102
102
input -> phys = "sgi/input0" ;
103
103
input -> id .bustype = BUS_HOST ;
104
- input -> dev .parent = & pdev -> dev ;
105
104
106
105
input -> keycode = bdev -> keymap ;
107
106
input -> keycodemax = ARRAY_SIZE (bdev -> keymap );
@@ -113,35 +112,15 @@ static int sgi_buttons_probe(struct platform_device *pdev)
113
112
__set_bit (bdev -> keymap [i ], input -> keybit );
114
113
__clear_bit (KEY_RESERVED , input -> keybit );
115
114
116
- bdev -> poll_dev = poll_dev ;
117
- platform_set_drvdata (pdev , bdev );
118
-
119
115
error = input_register_polled_device (poll_dev );
120
116
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 ;
138
118
139
119
return 0 ;
140
120
}
141
121
142
122
static struct platform_driver sgi_buttons_driver = {
143
123
.probe = sgi_buttons_probe ,
144
- .remove = sgi_buttons_remove ,
145
124
.driver = {
146
125
.name = "sgibtns" ,
147
126
},
0 commit comments