@@ -196,7 +196,6 @@ static void shmob_drm_remove(struct platform_device *pdev)
196
196
197
197
drm_dev_unregister (ddev );
198
198
drm_kms_helper_poll_fini (ddev );
199
- free_irq (sdev -> irq , ddev );
200
199
drm_dev_put (ddev );
201
200
}
202
201
@@ -277,8 +276,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
277
276
goto err_modeset_cleanup ;
278
277
sdev -> irq = ret ;
279
278
280
- ret = request_irq ( sdev -> irq , shmob_drm_irq , 0 , ddev -> driver -> name ,
281
- ddev );
279
+ ret = devm_request_irq ( & pdev -> dev , sdev -> irq , shmob_drm_irq , 0 ,
280
+ ddev -> driver -> name , ddev );
282
281
if (ret < 0 ) {
283
282
dev_err (& pdev -> dev , "failed to install IRQ handler\n" );
284
283
goto err_modeset_cleanup ;
@@ -290,14 +289,12 @@ static int shmob_drm_probe(struct platform_device *pdev)
290
289
*/
291
290
ret = drm_dev_register (ddev , 0 );
292
291
if (ret < 0 )
293
- goto err_irq_uninstall ;
292
+ goto err_modeset_cleanup ;
294
293
295
294
drm_fbdev_generic_setup (ddev , 16 );
296
295
297
296
return 0 ;
298
297
299
- err_irq_uninstall :
300
- free_irq (sdev -> irq , ddev );
301
298
err_modeset_cleanup :
302
299
drm_kms_helper_poll_fini (ddev );
303
300
err_free_drm_dev :
0 commit comments