resume_work);
 
        console_lock();
-       fb_set_suspend(helper->fbdev, 0);
+       fb_set_suspend(helper->info, 0);
        console_unlock();
 }
 
                break;
        }
 
-       src = fb_helper->fbdev->screen_buffer + offset;
+       src = fb_helper->info->screen_buffer + offset;
        iosys_map_incr(dst, offset); /* go to first pixel within clip rect */
 
        for (y = clip->y1; y < clip->y2; y++) {
                goto err_free_cmap;
        }
 
-       fb_helper->fbdev = info;
+       fb_helper->info = info;
        info->skip_vt_switch = true;
 
        return info;
  */
 void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper)
 {
-       if (fb_helper && fb_helper->fbdev)
-               unregister_framebuffer(fb_helper->fbdev);
+       if (fb_helper && fb_helper->info)
+               unregister_framebuffer(fb_helper->info);
 }
 EXPORT_SYMBOL(drm_fb_helper_unregister_fbi);
 
        cancel_work_sync(&fb_helper->resume_work);
        cancel_work_sync(&fb_helper->damage_work);
 
-       info = fb_helper->fbdev;
+       info = fb_helper->info;
        if (info) {
                if (info->cmap.len)
                        fb_dealloc_cmap(&info->cmap);
                framebuffer_release(info);
        }
-       fb_helper->fbdev = NULL;
+       fb_helper->info = NULL;
 
        mutex_lock(&kernel_fb_helper_lock);
        if (!list_empty(&fb_helper->kernel_fb_list)) {
  */
 void drm_fb_helper_set_suspend(struct drm_fb_helper *fb_helper, bool suspend)
 {
-       if (fb_helper && fb_helper->fbdev)
-               fb_set_suspend(fb_helper->fbdev, suspend);
+       if (fb_helper && fb_helper->info)
+               fb_set_suspend(fb_helper->info, suspend);
 }
 EXPORT_SYMBOL(drm_fb_helper_set_suspend);
 
 void drm_fb_helper_set_suspend_unlocked(struct drm_fb_helper *fb_helper,
                                        bool suspend)
 {
-       if (!fb_helper || !fb_helper->fbdev)
+       if (!fb_helper || !fb_helper->info)
                return;
 
        /* make sure there's no pending/ongoing resume */
        flush_work(&fb_helper->resume_work);
 
        if (suspend) {
-               if (fb_helper->fbdev->state != FBINFO_STATE_RUNNING)
+               if (fb_helper->info->state != FBINFO_STATE_RUNNING)
                        return;
 
                console_lock();
 
        } else {
-               if (fb_helper->fbdev->state == FBINFO_STATE_RUNNING)
+               if (fb_helper->info->state == FBINFO_STATE_RUNNING)
                        return;
 
                if (!console_trylock()) {
                }
        }
 
-       fb_set_suspend(fb_helper->fbdev, suspend);
+       fb_set_suspend(fb_helper->info, suspend);
        console_unlock();
 }
 EXPORT_SYMBOL(drm_fb_helper_set_suspend_unlocked);
 /*
  * This is a continuation of drm_setup_crtcs() that sets up anything related
  * to the framebuffer. During initialization, drm_setup_crtcs() is called before
- * the framebuffer has been allocated (fb_helper->fb and fb_helper->fbdev).
+ * the framebuffer has been allocated (fb_helper->fb and fb_helper->info).
  * So, any setup that touches those fields needs to be done here instead of in
  * drm_setup_crtcs().
  */
 {
        struct drm_client_dev *client = &fb_helper->client;
        struct drm_connector_list_iter conn_iter;
-       struct fb_info *info = fb_helper->fbdev;
+       struct fb_info *info = fb_helper->info;
        unsigned int rotation, sw_rotations = 0;
        struct drm_connector *connector;
        struct drm_mode_set *modeset;
 
        fb_helper->deferred_setup = false;
 
-       info = fb_helper->fbdev;
+       info = fb_helper->info;
        info->var.pixclock = 0;
        /* Shamelessly allow physical address leaking to userspace */
 #if IS_ENABLED(CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM)
        drm_setup_crtcs_fb(fb_helper);
        mutex_unlock(&fb_helper->lock);
 
-       drm_fb_helper_set_par(fb_helper->fbdev);
+       drm_fb_helper_set_par(fb_helper->info);
 
        return 0;
 }
 
 static void drm_fbdev_cleanup(struct drm_fb_helper *fb_helper)
 {
-       struct fb_info *fbi = fb_helper->fbdev;
+       struct fb_info *fbi = fb_helper->info;
        void *shadow = NULL;
 
        if (!fb_helper->dev)
 {
        struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client);
 
-       if (fb_helper->fbdev)
+       if (fb_helper->info)
                /* drm_fbdev_fb_destroy() takes care of cleanup */
                drm_fb_helper_unregister_fbi(fb_helper);
        else
        drm_fbdev_cleanup(fb_helper);
 err:
        fb_helper->dev = NULL;
-       fb_helper->fbdev = NULL;
+       fb_helper->info = NULL;
 
        drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
 
 
 nouveau_fbcon_accel_save_disable(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
-       if (drm->fbcon && drm->fbcon->helper.fbdev) {
-               drm->fbcon->saved_flags = drm->fbcon->helper.fbdev->flags;
-               drm->fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
+       if (drm->fbcon && drm->fbcon->helper.info) {
+               drm->fbcon->saved_flags = drm->fbcon->helper.info->flags;
+               drm->fbcon->helper.info->flags |= FBINFO_HWACCEL_DISABLED;
        }
 }
 
 nouveau_fbcon_accel_restore(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
-       if (drm->fbcon && drm->fbcon->helper.fbdev) {
-               drm->fbcon->helper.fbdev->flags = drm->fbcon->saved_flags;
-       }
+       if (drm->fbcon && drm->fbcon->helper.info)
+               drm->fbcon->helper.info->flags = drm->fbcon->saved_flags;
 }
 
 static void
        struct nouveau_fbdev *fbcon = drm->fbcon;
        if (fbcon && drm->channel) {
                console_lock();
-               if (fbcon->helper.fbdev)
-                       fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
+               if (fbcon->helper.info)
+                       fbcon->helper.info->flags |= FBINFO_HWACCEL_DISABLED;
                console_unlock();
                nouveau_channel_idle(drm->channel);
                nvif_object_dtor(&fbcon->twod);
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
        struct nouveau_fbdev *fbcon = drm->fbcon;
-       struct fb_info *info = fbcon->helper.fbdev;
+       struct fb_info *info = fbcon->helper.info;
        int ret;
 
        if (drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA)
 static void
 nouveau_fbcon_zfill(struct drm_device *dev, struct nouveau_fbdev *fbcon)
 {
-       struct fb_info *info = fbcon->helper.fbdev;
+       struct fb_info *info = fbcon->helper.info;
        struct fb_fillrect rect;
 
        /* Clear the entire fbcon.  The drm will program every connector
        if (ret)
                goto fini;
 
-       if (fbcon->helper.fbdev)
-               fbcon->helper.fbdev->pixmap.buf_align = 4;
+       if (fbcon->helper.info)
+               fbcon->helper.info->pixmap.buf_align = 4;
        return 0;
 
 fini: