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
                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",
        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__