summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2017-10-17 17:01:12 +0300
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2017-10-17 17:01:12 +0300
commit5634cbab489e8428f352f257b631c128b8dc869d (patch)
tree740e7e70f0d7b03c81933ae908e830205dbbbb8c /drivers/video
parentf6fc8c9dbdc976e4933c5edc13764eafe9897313 (diff)
downloadlinux-5634cbab489e8428f352f257b631c128b8dc869d.tar.xz
video: sa1100fb: use devm_gpio_request_one()
Switch to using devm_gpio_request_one() to request the shannon gpio and move the request before the video memory allocation, so we request all device managed resources before this large allocation attempt. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/fbdev/sa1100fb.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
index a48fdb676f3e..7fa6c8f74ec6 100644
--- a/drivers/video/fbdev/sa1100fb.c
+++ b/drivers/video/fbdev/sa1100fb.c
@@ -1246,18 +1246,18 @@ static int sa1100fb_probe(struct platform_device *pdev)
goto failed;
}
- /* Initialize video memory */
- ret = sa1100fb_map_video_memory(fbi);
- if (ret)
- goto failed;
-
if (machine_is_shannon()) {
- ret = gpio_request_one(SHANNON_GPIO_DISP_EN,
+ ret = devm_gpio_request_one(&pdev->dev, SHANNON_GPIO_DISP_EN,
GPIOF_OUT_INIT_LOW, "display enable");
if (ret)
goto failed;
}
+ /* Initialize video memory */
+ ret = sa1100fb_map_video_memory(fbi);
+ if (ret)
+ goto failed;
+
/*
* This makes sure that our colour bitfield
* descriptors are correctly initialised.
@@ -1268,7 +1268,7 @@ static int sa1100fb_probe(struct platform_device *pdev)
ret = register_framebuffer(&fbi->fb);
if (ret < 0)
- goto err_reg_fb;
+ goto failed;
#ifdef CONFIG_CPU_FREQ
fbi->freq_transition.notifier_call = sa1100fb_freq_transition;
@@ -1280,9 +1280,6 @@ static int sa1100fb_probe(struct platform_device *pdev)
/* This driver cannot be unloaded at the moment */
return 0;
- err_reg_fb:
- if (machine_is_shannon())
- gpio_free(SHANNON_GPIO_DISP_EN);
failed:
return ret;
}