fbdev/aty128fb: Reorder backlight and framebuffer init/cleanup
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 13 Jun 2023 11:06:44 +0000 (13:06 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 27 Jun 2023 07:58:48 +0000 (09:58 +0200)
The driver's backlight code requires the framebuffer to be
registered. Therefore reorder the init and cleanup calls for
both data structures.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230613110953.24176-10-tzimmermann@suse.de
drivers/video/fbdev/aty/aty128fb.c

index 36a9ac0..b4a4906 100644 (file)
@@ -2028,14 +2028,14 @@ static int aty128_init(struct pci_dev *pdev, const struct pci_device_id *ent)
        par->asleep = 0;
        par->lock_blank = 0;
 
+       if (register_framebuffer(info) < 0)
+               return 0;
+
 #ifdef CONFIG_FB_ATY128_BACKLIGHT
        if (backlight)
                aty128_bl_init(par);
 #endif
 
-       if (register_framebuffer(info) < 0)
-               return 0;
-
        fb_info(info, "%s frame buffer device on %s\n",
                info->fix.id, video_card);
 
@@ -2167,12 +2167,12 @@ static void aty128_remove(struct pci_dev *pdev)
 
        par = info->par;
 
-       unregister_framebuffer(info);
-
 #ifdef CONFIG_FB_ATY128_BACKLIGHT
        aty128_bl_exit(info->bl_dev);
 #endif
 
+       unregister_framebuffer(info);
+
        arch_phys_wc_del(par->wc_cookie);
        iounmap(par->regbase);
        iounmap(info->screen_base);