diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2015-03-28 05:03:40 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-03 07:55:03 -0400 |
commit | f30a746bec5507d9781e876626d4bba7f5ab0c8e (patch) | |
tree | c1fc05dd00d7e5def777de938a6c3410b9628579 | |
parent | 63b8ebe44ab6bc812f849818250e49e9157c309c (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.c | 10 |
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 | ||
907 | failed_free: | 913 | failed_free: |
914 | pci_release_region(pdev, 0); | ||
915 | |||
916 | failed_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 |