@@ -196,7 +196,7 @@ static int __init amikbd_probe(struct platform_device *pdev)
196
196
struct input_dev * dev ;
197
197
int i , err ;
198
198
199
- dev = input_allocate_device ( );
199
+ dev = devm_input_allocate_device ( & pdev -> dev );
200
200
if (!dev ) {
201
201
dev_err (& pdev -> dev , "Not enough memory for input device\n" );
202
202
return - ENOMEM ;
@@ -208,7 +208,6 @@ static int __init amikbd_probe(struct platform_device *pdev)
208
208
dev -> id .vendor = 0x0001 ;
209
209
dev -> id .product = 0x0001 ;
210
210
dev -> id .version = 0x0100 ;
211
- dev -> dev .parent = & pdev -> dev ;
212
211
213
212
dev -> evbit [0 ] = BIT_MASK (EV_KEY ) | BIT_MASK (EV_REP );
214
213
@@ -218,35 +217,21 @@ static int __init amikbd_probe(struct platform_device *pdev)
218
217
amikbd_init_console_keymaps ();
219
218
220
219
ciaa .cra &= ~0x41 ; /* serial data in, turn off TA */
221
- err = request_irq ( IRQ_AMIGA_CIAA_SP , amikbd_interrupt , 0 , "amikbd" ,
222
- dev );
220
+ err = devm_request_irq ( & pdev -> dev , IRQ_AMIGA_CIAA_SP , amikbd_interrupt ,
221
+ 0 , "amikbd" , dev );
223
222
if (err )
224
- goto fail2 ;
223
+ return err ;
225
224
226
225
err = input_register_device (dev );
227
226
if (err )
228
- goto fail3 ;
227
+ return err ;
229
228
230
229
platform_set_drvdata (pdev , dev );
231
230
232
231
return 0 ;
233
-
234
- fail3 : free_irq (IRQ_AMIGA_CIAA_SP , dev );
235
- fail2 : input_free_device (dev );
236
- return err ;
237
- }
238
-
239
- static int __exit amikbd_remove (struct platform_device * pdev )
240
- {
241
- struct input_dev * dev = platform_get_drvdata (pdev );
242
-
243
- free_irq (IRQ_AMIGA_CIAA_SP , dev );
244
- input_unregister_device (dev );
245
- return 0 ;
246
232
}
247
233
248
234
static struct platform_driver amikbd_driver = {
249
- .remove = __exit_p (amikbd_remove ),
250
235
.driver = {
251
236
.name = "amiga-keyboard" ,
252
237
},
0 commit comments