aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/sm7xxfb/sm7xxfb.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/staging/sm7xxfb/sm7xxfb.c b/drivers/staging/sm7xxfb/sm7xxfb.c
index 5b3e6143a0ba..149286efda5d 100644
--- a/drivers/staging/sm7xxfb/sm7xxfb.c
+++ b/drivers/staging/sm7xxfb/sm7xxfb.c
@@ -776,6 +776,12 @@ static int smtcfb_pci_probe(struct pci_dev *pdev,
776 if (err) 776 if (err)
777 return err; 777 return err;
778 778
779 err = pci_request_region(pdev, 0, "sm7xxfb");
780 if (err < 0) {
781 dev_err(&pdev->dev, "cannot reserve framebuffer region\n");
782 goto failed_regions;
783 }
784
779 sprintf(smtcfb_fix.id, "sm%Xfb", ent->device); 785 sprintf(smtcfb_fix.id, "sm%Xfb", ent->device);
780 786
781 sfb = smtc_alloc_fb_info(pdev); 787 sfb = smtc_alloc_fb_info(pdev);
@@ -905,6 +911,9 @@ failed_fb:
905 smtc_free_fb_info(sfb); 911 smtc_free_fb_info(sfb);
906 912
907failed_free: 913failed_free:
914 pci_release_region(pdev, 0);
915
916failed_regions:
908 pci_disable_device(pdev); 917 pci_disable_device(pdev);
909 918
910 return err; 919 return err;
@@ -933,6 +942,7 @@ static void smtcfb_pci_remove(struct pci_dev *pdev)
933 smtc_unmap_mmio(sfb); 942 smtc_unmap_mmio(sfb);
934 unregister_framebuffer(&sfb->fb); 943 unregister_framebuffer(&sfb->fb);
935 smtc_free_fb_info(sfb); 944 smtc_free_fb_info(sfb);
945 pci_release_region(pdev, 0);
936} 946}
937 947
938#ifdef CONFIG_PM 948#ifdef CONFIG_PM