The callback fb_probe in struct drm_fb_helper is unused. Remove it.
New drivers should set struct drm_driver.fbdev_probe instead and call
drm_client_setup() to instantiate in-kernel DRM clients.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 drivers/gpu/drm/drm_fb_helper.c |  8 ++++----
 include/drm/drm_fb_helper.h     | 17 -----------------
 2 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index e800b43cfbf1..d3626ac15ddc 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1632,6 +1632,9 @@ static int drm_fb_helper_single_fb_probe(struct 
drm_fb_helper *fb_helper)
        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.. */
@@ -1641,10 +1644,7 @@ static int drm_fb_helper_single_fb_probe(struct 
drm_fb_helper *fb_helper)
        }
 
        /* 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;
 
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 7de1abd2e0ea..44b1d82b1b5c 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -69,23 +69,6 @@ struct drm_fb_helper_surface_size {
  * 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:
         *
-- 
2.47.1

Reply via email to