@@ -212,22 +212,22 @@ static int bochs_hw_init(struct drm_device *dev)
212
212
u16 id ;
213
213
214
214
if (pdev -> resource [2 ].flags & IORESOURCE_MEM ) {
215
+ ioaddr = pci_resource_start (pdev , 2 );
216
+ iosize = pci_resource_len (pdev , 2 );
215
217
/* mmio bar with vga and bochs registers present */
216
- if (pci_request_region ( pdev , 2 , "bochs-drm" ) != 0 ) {
218
+ if (! devm_request_mem_region ( & pdev -> dev , ioaddr , iosize , "bochs-drm" )) {
217
219
DRM_ERROR ("Cannot request mmio region\n" );
218
220
return - EBUSY ;
219
221
}
220
- ioaddr = pci_resource_start (pdev , 2 );
221
- iosize = pci_resource_len (pdev , 2 );
222
- bochs -> mmio = ioremap (ioaddr , iosize );
222
+ bochs -> mmio = devm_ioremap (& pdev -> dev , ioaddr , iosize );
223
223
if (bochs -> mmio == NULL ) {
224
224
DRM_ERROR ("Cannot map mmio region\n" );
225
225
return - ENOMEM ;
226
226
}
227
227
} else {
228
228
ioaddr = VBE_DISPI_IOPORT_INDEX ;
229
229
iosize = 2 ;
230
- if (!request_region ( ioaddr , iosize , "bochs-drm" )) {
230
+ if (!devm_request_region ( & pdev -> dev , ioaddr , iosize , "bochs-drm" )) {
231
231
DRM_ERROR ("Cannot request ioports\n" );
232
232
return - EBUSY ;
233
233
}
@@ -254,10 +254,10 @@ static int bochs_hw_init(struct drm_device *dev)
254
254
size = min (size , mem );
255
255
}
256
256
257
- if (pci_request_region ( pdev , 0 , "bochs-drm" ) != 0 )
257
+ if (! devm_request_mem_region ( & pdev -> dev , addr , size , "bochs-drm" ))
258
258
DRM_WARN ("Cannot request framebuffer, boot fb still active?\n" );
259
259
260
- bochs -> fb_map = ioremap ( addr , size );
260
+ bochs -> fb_map = devm_ioremap ( & pdev -> dev , addr , size );
261
261
if (bochs -> fb_map == NULL ) {
262
262
DRM_ERROR ("Cannot map framebuffer\n" );
263
263
return - ENOMEM ;
@@ -286,21 +286,6 @@ static int bochs_hw_init(struct drm_device *dev)
286
286
return 0 ;
287
287
}
288
288
289
- static void bochs_hw_fini (struct drm_device * dev )
290
- {
291
- struct bochs_device * bochs = dev -> dev_private ;
292
-
293
- /* TODO: shot down existing vram mappings */
294
-
295
- if (bochs -> mmio )
296
- iounmap (bochs -> mmio );
297
- if (bochs -> ioports )
298
- release_region (VBE_DISPI_IOPORT_INDEX , 2 );
299
- if (bochs -> fb_map )
300
- iounmap (bochs -> fb_map );
301
- pci_release_regions (to_pci_dev (dev -> dev ));
302
- }
303
-
304
289
static void bochs_hw_blank (struct bochs_device * bochs , bool blank )
305
290
{
306
291
DRM_DEBUG_DRIVER ("hw_blank %d\n" , blank );
@@ -565,17 +550,13 @@ static int bochs_load(struct drm_device *dev)
565
550
566
551
ret = drmm_vram_helper_init (dev , bochs -> fb_base , bochs -> fb_size );
567
552
if (ret )
568
- goto err_hw_fini ;
553
+ return ret ;
569
554
570
555
ret = bochs_kms_init (bochs );
571
556
if (ret )
572
- goto err_hw_fini ;
557
+ return ret ;
573
558
574
559
return 0 ;
575
-
576
- err_hw_fini :
577
- bochs_hw_fini (dev );
578
- return ret ;
579
560
}
580
561
581
562
DEFINE_DRM_GEM_FOPS (bochs_fops );
@@ -650,13 +631,11 @@ static int bochs_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent
650
631
651
632
ret = drm_dev_register (dev , 0 );
652
633
if (ret )
653
- goto err_hw_fini ;
634
+ goto err_free_dev ;
654
635
655
636
drm_fbdev_ttm_setup (dev , 32 );
656
637
return ret ;
657
638
658
- err_hw_fini :
659
- bochs_hw_fini (dev );
660
639
err_free_dev :
661
640
drm_dev_put (dev );
662
641
return ret ;
@@ -668,7 +647,6 @@ static void bochs_pci_remove(struct pci_dev *pdev)
668
647
669
648
drm_dev_unplug (dev );
670
649
drm_atomic_helper_shutdown (dev );
671
- bochs_hw_fini (dev );
672
650
drm_dev_put (dev );
673
651
}
674
652
0 commit comments