fbdev/atyfb: Reorder backlight and framebuffer init/cleanup
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 13 Jun 2023 11:06:42 +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-8-tzimmermann@suse.de
drivers/video/fbdev/aty/atyfb_base.c

index cba2b11..51504fe 100644 (file)
@@ -2654,11 +2654,6 @@ static int aty_init(struct fb_info *info)
                           USE_F32KHZ | TRISTATE_MEM_EN, par);
        } else
 #endif
-       if (M64_HAS(MOBIL_BUS) && backlight) {
-#ifdef CONFIG_FB_ATY_BACKLIGHT
-               aty_bl_init(par);
-#endif
-       }
 
        memset(&var, 0, sizeof(var));
 #ifdef CONFIG_PPC
@@ -2751,6 +2746,12 @@ static int aty_init(struct fb_info *info)
                goto aty_init_exit;
        }
 
+       if (M64_HAS(MOBIL_BUS) && backlight) {
+#ifdef CONFIG_FB_ATY_BACKLIGHT
+               aty_bl_init(par);
+#endif
+       }
+
        fb_list = info;
 
        PRINTKI("fb%d: %s frame buffer device on %s\n",
@@ -3716,12 +3717,13 @@ static void atyfb_remove(struct fb_info *info)
        aty_set_crtc(par, &par->saved_crtc);
        par->pll_ops->set_pll(info, &par->saved_pll);
 
-       unregister_framebuffer(info);
-
 #ifdef CONFIG_FB_ATY_BACKLIGHT
        if (M64_HAS(MOBIL_BUS))
                aty_bl_exit(info->bl_dev);
 #endif
+
+       unregister_framebuffer(info);
+
        arch_phys_wc_del(par->wc_cookie);
 
 #ifndef __sparc__