]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
video: sa1100fb: use devm_gpio_request_one()
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 17 Oct 2017 14:01:12 +0000 (16:01 +0200)
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Tue, 17 Oct 2017 14:01:12 +0000 (16:01 +0200)
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>
drivers/video/fbdev/sa1100fb.c

index a48fdb676f3eb1e99fc37eb43ba64575ca9bc9b0..7fa6c8f74ec6c3447f73bf3a919a86aa1e31b76f 100644 (file)
@@ -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;
 }