--- initial
+++ final
@@ -1,102 +1,102 @@
 static int omap_fbdev_create(struct drm_fb_helper *helper, struct drm_fb_helper_surface_size *sizes) {
   struct omap_fbdev *fbdev = to_omap_fbdev(helper);
   struct drm_device *dev = helper->dev;
   struct omap_drm_private *priv = dev->dev_private;
   struct drm_framebuffer *fb = NULL;
   union omap_gem_size gsize;
   struct fb_info *fbi = NULL;
   struct drm_mode_fb_cmd2 mode_cmd = {0};
   dma_addr_t paddr;
   int ret;
   sizes->surface_bpp = 32;
   sizes->surface_depth = 24;
   DBG("create fbdev: %dx%d@%d (%dx%d)", sizes->surface_width, sizes->surface_height, sizes->surface_bpp, sizes->fb_width, sizes->fb_height);
   mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
   mode_cmd.width = sizes->surface_width;
   mode_cmd.height = sizes->surface_height;
   mode_cmd.pitches[0] = DIV_ROUND_UP(mode_cmd.width * sizes->surface_bpp, 8);
   fbdev->ywrap_enabled = priv->has_dmm && ywrap_enabled;
   if (fbdev->ywrap_enabled) {
     /* need to align pitch to page size if using DMM scrolling */
     mode_cmd.pitches[0] = PAGE_ALIGN(mode_cmd.pitches[0]);
   }
   /* allocate backing bo */
   gsize = (union omap_gem_size){
       .bytes = PAGE_ALIGN(mode_cmd.pitches[0] * mode_cmd.height),
   };
   DBG("allocating %d bytes for fb %d", gsize.bytes, dev->primary->index);
   fbdev->bo = omap_gem_new(dev, gsize, OMAP_BO_SCANOUT | OMAP_BO_WC);
   if (!fbdev->bo) {
     dev_err(dev->dev, "failed to allocate buffer object\n");
     ret = -ENOMEM;
     goto fail;
   }
   fb = omap_framebuffer_init(dev, &mode_cmd, &fbdev->bo);
   if (IS_ERR(fb)) {
     dev_err(dev->dev, "failed to allocate fb\n");
     /* note: if fb creation failed, we can't rely on fb destroy
      * to unref the bo:
      */
     drm_gem_object_unreference_unlocked(fbdev->bo);
     ret = PTR_ERR(fb);
     goto fail;
   }
   /* note: this keeps the bo pinned.. which is perhaps not ideal,
    * but is needed as long as we use fb_mmap() to mmap to userspace
    * (since this happens using fix.smem_start).  Possibly we could
    * implement our own mmap using GEM mmap support to avoid this
    * (non-tiled buffer doesn't need to be pinned for fbcon to write
    * to it).  Then we just need to be sure that we are able to re-
    * pin it in case of an opps.
    */
   ret = omap_gem_get_paddr(fbdev->bo, &paddr, true);
   if (ret) {
     dev_err(dev->dev, "could not map (paddr)!  Skipping framebuffer alloc\n");
     ret = -ENOMEM;
     goto fail;
   }
   mutex_lock(&dev->struct_mutex);
   fbi = drm_fb_helper_alloc_fbi(helper);
   if (IS_ERR(fbi)) {
     dev_err(dev->dev, "failed to allocate fb info\n");
     ret = PTR_ERR(fbi);
     goto fail_unlock;
   }
   DBG("fbi=%p, dev=%p", fbi, dev);
   fbdev->fb = fb;
   helper->fb = fb;
   fbi->par = helper;
   fbi->flags = FBINFO_DEFAULT;
   fbi->fbops = &omap_fb_ops;
   strcpy(fbi->fix.id, MODULE_NAME);
-  drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->depth);
+  drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
   drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
   dev->mode_config.fb_base = paddr;
   fbi->screen_base = omap_gem_vaddr(fbdev->bo);
   fbi->screen_size = fbdev->bo->size;
   fbi->fix.smem_start = paddr;
   fbi->fix.smem_len = fbdev->bo->size;
   /* if we have DMM, then we can use it for scrolling by just
    * shuffling pages around in DMM rather than doing sw blit.
    */
   if (fbdev->ywrap_enabled) {
     DRM_INFO("Enabling DMM ywrap scrolling\n");
     fbi->flags |= FBINFO_HWACCEL_YWRAP | FBINFO_READS_FAST;
     fbi->fix.ywrapstep = 1;
   }
   DBG("par=%p, %dx%d", fbi->par, fbi->var.xres, fbi->var.yres);
   DBG("allocated %dx%d fb", fbdev->fb->width, fbdev->fb->height);
   mutex_unlock(&dev->struct_mutex);
   return 0;
 fail_unlock:
   mutex_unlock(&dev->struct_mutex);
 fail:
   if (ret) {
     drm_fb_helper_release_fbi(helper);
     if (fb) {
       drm_framebuffer_unregister_private(fb);
       drm_framebuffer_remove(fb);
     }
   }
   return ret;
 }<sep>@@
struct drm_framebuffer *fb;
@@
- fb->depth
+ fb->format->depth

@@
struct drm_framebuffer *fb;
@@
- (fb->format->depth)
+ fb->format->depth