struct fb_info *info;
        int ret;
 
+       if (drm_WARN_ON(dev, !dev->driver->fbdev_probe))
+               return -EINVAL;
+
        ret = drm_fb_helper_find_sizes(fb_helper, &sizes);
        if (ret) {
                /* First time: disable all crtc's.. */
        }
 
        /* push down into drivers */
-       if (dev->driver->fbdev_probe)
-               ret = dev->driver->fbdev_probe(fb_helper, &sizes);
-       else if (fb_helper->funcs)
-               ret = fb_helper->funcs->fb_probe(fb_helper, &sizes);
+       ret = dev->driver->fbdev_probe(fb_helper, &sizes);
        if (ret < 0)
                return ret;
 
 
  * Driver callbacks used by the fbdev emulation helper library.
  */
 struct drm_fb_helper_funcs {
-       /**
-        * @fb_probe:
-        *
-        * Driver callback to allocate and initialize the fbdev info structure.
-        * Furthermore it also needs to allocate the DRM framebuffer used to
-        * back the fbdev.
-        *
-        * This callback is mandatory.
-        *
-        * RETURNS:
-        *
-        * The driver should return 0 on success and a negative error code on
-        * failure.
-        */
-       int (*fb_probe)(struct drm_fb_helper *helper,
-                       struct drm_fb_helper_surface_size *sizes);
-
        /**
         * @fb_dirty:
         *