aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2015-03-28 05:03:40 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-04-03 07:55:03 -0400
commitf30a746bec5507d9781e876626d4bba7f5ab0c8e (patch)
treec1fc05dd00d7e5def777de938a6c3410b9628579
parent63b8ebe44ab6bc812f849818250e49e9157c309c (diff)
staging: sm7xxfb: reserve PCI resource
before starting to access any address inside the PCI region we should reserve the resource and release the resource when the module exits. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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