fbdev/rivafb: Reorder backlight and framebuffer init/cleanup
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 13 Jun 2023 11:06:58 +0000 (13:06 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 27 Jun 2023 07:58:50 +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>
Cc: Antonino Daplas <adaplas@gmail.com>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230613110953.24176-24-tzimmermann@suse.de
drivers/video/fbdev/riva/fbdev.c

index 41edc6e794603145e3d6da922b2285def60f1728..e328b2d39e2b6be766501115adaeac0d78a93e02 100644 (file)
@@ -2031,9 +2031,6 @@ static int rivafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
 
        pci_set_drvdata(pd, info);
 
-       if (backlight)
-               riva_bl_init(info->par);
-
        ret = register_framebuffer(info);
        if (ret < 0) {
                printk(KERN_ERR PFX
@@ -2041,6 +2038,9 @@ static int rivafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
                goto err_iounmap_screen_base;
        }
 
+       if (backlight)
+               riva_bl_init(info->par);
+
        printk(KERN_INFO PFX
                "PCI nVidia %s framebuffer ver %s (%dMB @ 0x%lX)\n",
                info->fix.id,
@@ -2084,9 +2084,9 @@ static void rivafb_remove(struct pci_dev *pd)
        kfree(par->EDID);
 #endif
 
+       riva_bl_exit(info);
        unregister_framebuffer(info);
 
-       riva_bl_exit(info);
        arch_phys_wc_del(par->wc_cookie);
        iounmap(par->ctrl_base);
        iounmap(info->screen_base);