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 <tzimmerm...@suse.de>
Cc: Antonino Daplas <adap...@gmail.com>
---
 drivers/video/fbdev/nvidia/nvidia.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/video/fbdev/nvidia/nvidia.c 
b/drivers/video/fbdev/nvidia/nvidia.c
index ea4ba3dfb96b..039e886346fa 100644
--- a/drivers/video/fbdev/nvidia/nvidia.c
+++ b/drivers/video/fbdev/nvidia/nvidia.c
@@ -1400,14 +1400,14 @@ static int nvidiafb_probe(struct pci_dev *pd, const 
struct pci_device_id *ent)
 
        pci_set_drvdata(pd, info);
 
-       if (backlight)
-               nvidia_bl_init(par);
-
        if (register_framebuffer(info) < 0) {
                printk(KERN_ERR PFX "error registering nVidia framebuffer\n");
                goto err_out_iounmap_fb;
        }
 
+       if (backlight)
+               nvidia_bl_init(par);
+
        printk(KERN_INFO PFX
               "PCI nVidia %s framebuffer (%dMB @ 0x%lX)\n",
               info->fix.id,
@@ -1439,9 +1439,9 @@ static void nvidiafb_remove(struct pci_dev *pd)
 
        NVTRACE_ENTER();
 
+       nvidia_bl_exit(par);
        unregister_framebuffer(info);
 
-       nvidia_bl_exit(par);
        arch_phys_wc_del(par->wc_cookie);
        iounmap(info->screen_base);
        fb_destroy_modedb(info->monspecs.modedb);
-- 
2.40.1

Reply via email to