drm/fb-helper: Remove drm_fb_helper_fbdev_{setup, teardown}()
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 6 Nov 2019 12:47:27 +0000 (13:47 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 7 Nov 2019 08:40:11 +0000 (09:40 +0100)
Both functions are unused and can be removed. Drivers should use
drm_fbdev_generic_setup() instead.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191106124727.11641-3-tzimmermann@suse.de
drivers/gpu/drm/drm_fb_helper.c
include/drm/drm_fb_helper.h

index 8ebeccdeed2334ebb06f9562668705074c7342b1..1038a2f0639ea2d3b2653e8dc55e00fabcf588fe 100644 (file)
@@ -95,10 +95,6 @@ static DEFINE_MUTEX(kernel_fb_helper_lock);
  * It will automatically set up deferred I/O if the driver requires a shadow
  * buffer.
  *
- * For other drivers, setup fbdev emulation by calling
- * drm_fb_helper_fbdev_setup() and tear it down by calling
- * drm_fb_helper_fbdev_teardown().
- *
  * At runtime drivers should restore the fbdev console by using
  * drm_fb_helper_lastclose() as their &drm_driver.lastclose callback.
  * They should also notify the fb helper code from updates to the output
@@ -1919,108 +1915,6 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
 }
 EXPORT_SYMBOL(drm_fb_helper_hotplug_event);
 
-/**
- * drm_fb_helper_fbdev_setup() - Setup fbdev emulation
- * @dev: DRM device
- * @fb_helper: fbdev helper structure to set up
- * @funcs: fbdev helper functions
- * @preferred_bpp: Preferred bits per pixel for the device.
- *                 @dev->mode_config.preferred_depth is used if this is zero.
- * @max_conn_count: Maximum number of connectors (not used)
- *
- * This function sets up fbdev emulation and registers fbdev for access by
- * userspace. If all connectors are disconnected, setup is deferred to the next
- * time drm_fb_helper_hotplug_event() is called.
- * The caller must to provide a &drm_fb_helper_funcs->fb_probe callback
- * function.
- *
- * Use drm_fb_helper_fbdev_teardown() to destroy the fbdev.
- *
- * See also: drm_fb_helper_initial_config(), drm_fbdev_generic_setup().
- *
- * Returns:
- * Zero on success or negative error code on failure.
- */
-int drm_fb_helper_fbdev_setup(struct drm_device *dev,
-                             struct drm_fb_helper *fb_helper,
-                             const struct drm_fb_helper_funcs *funcs,
-                             unsigned int preferred_bpp,
-                             unsigned int max_conn_count)
-{
-       int ret;
-
-       if (!preferred_bpp)
-               preferred_bpp = dev->mode_config.preferred_depth;
-       if (!preferred_bpp)
-               preferred_bpp = 32;
-
-       drm_fb_helper_prepare(dev, fb_helper, funcs);
-
-       ret = drm_fb_helper_init(dev, fb_helper, 0);
-       if (ret < 0) {
-               DRM_DEV_ERROR(dev->dev, "fbdev: Failed to initialize (ret=%d)\n", ret);
-               return ret;
-       }
-
-       if (!drm_drv_uses_atomic_modeset(dev))
-               drm_helper_disable_unused_functions(dev);
-
-       ret = drm_fb_helper_initial_config(fb_helper, preferred_bpp);
-       if (ret < 0) {
-               DRM_DEV_ERROR(dev->dev, "fbdev: Failed to set configuration (ret=%d)\n", ret);
-               goto err_drm_fb_helper_fini;
-       }
-
-       return 0;
-
-err_drm_fb_helper_fini:
-       drm_fb_helper_fbdev_teardown(dev);
-
-       return ret;
-}
-EXPORT_SYMBOL(drm_fb_helper_fbdev_setup);
-
-/**
- * drm_fb_helper_fbdev_teardown - Tear down fbdev emulation
- * @dev: DRM device
- *
- * This function unregisters fbdev if not already done and cleans up the
- * associated resources including the &drm_framebuffer.
- * The driver is responsible for freeing the &drm_fb_helper structure which is
- * stored in &drm_device->fb_helper. Do note that this pointer has been cleared
- * when this function returns.
- *
- * In order to support device removal/unplug while file handles are still open,
- * drm_fb_helper_unregister_fbi() should be called on device removal and
- * drm_fb_helper_fbdev_teardown() in the &drm_driver->release callback when
- * file handles are closed.
- */
-void drm_fb_helper_fbdev_teardown(struct drm_device *dev)
-{
-       struct drm_fb_helper *fb_helper = dev->fb_helper;
-       struct fb_ops *fbops = NULL;
-
-       if (!fb_helper)
-               return;
-
-       /* Unregister if it hasn't been done already */
-       if (fb_helper->fbdev && fb_helper->fbdev->dev)
-               drm_fb_helper_unregister_fbi(fb_helper);
-
-       if (fb_helper->fbdev && fb_helper->fbdev->fbdefio) {
-               fb_deferred_io_cleanup(fb_helper->fbdev);
-               kfree(fb_helper->fbdev->fbdefio);
-               fbops = fb_helper->fbdev->fbops;
-       }
-
-       drm_fb_helper_fini(fb_helper);
-       kfree(fbops);
-
-       if (fb_helper->fb)
-               drm_framebuffer_remove(fb_helper->fb);
-}
-EXPORT_SYMBOL(drm_fb_helper_fbdev_teardown);
-
 /**
  * drm_fb_helper_lastclose - DRM driver lastclose helper for fbdev emulation
  * @dev: DRM device
@@ -2309,8 +2203,7 @@ static const struct drm_client_funcs drm_fbdev_client_funcs = {
  *                 @dev->mode_config.preferred_depth is used if this is zero.
  *
  * This function sets up generic fbdev emulation for drivers that supports
- * dumb buffers with a virtual address and that can be mmap'ed. If the driver
- * does not support these functions, it could use drm_fb_helper_fbdev_setup().
+ * dumb buffers with a virtual address and that can be mmap'ed.
  *
  * Restore, hotplug events and teardown are all taken care of. Drivers that do
  * suspend/resume need to call drm_fb_helper_set_suspend_unlocked() themselves.
index 2338e9f94a03e236fb045dabdada0908fe738a18..e3a75ff0739071c7bbcc1da923fae626d9488d2b 100644 (file)
@@ -269,13 +269,6 @@ int drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel);
 int drm_fb_helper_debug_enter(struct fb_info *info);
 int drm_fb_helper_debug_leave(struct fb_info *info);
 
-int drm_fb_helper_fbdev_setup(struct drm_device *dev,
-                             struct drm_fb_helper *fb_helper,
-                             const struct drm_fb_helper_funcs *funcs,
-                             unsigned int preferred_bpp,
-                             unsigned int max_conn_count);
-void drm_fb_helper_fbdev_teardown(struct drm_device *dev);
-
 void drm_fb_helper_lastclose(struct drm_device *dev);
 void drm_fb_helper_output_poll_changed(struct drm_device *dev);
 
@@ -452,24 +445,6 @@ static inline int drm_fb_helper_debug_leave(struct fb_info *info)
        return 0;
 }
 
-static inline int
-drm_fb_helper_fbdev_setup(struct drm_device *dev,
-                         struct drm_fb_helper *fb_helper,
-                         const struct drm_fb_helper_funcs *funcs,
-                         unsigned int preferred_bpp,
-                         unsigned int max_conn_count)
-{
-       /* So drivers can use it to free the struct */
-       dev->fb_helper = fb_helper;
-
-       return 0;
-}
-
-static inline void drm_fb_helper_fbdev_teardown(struct drm_device *dev)
-{
-       dev->fb_helper = NULL;
-}
-
 static inline void drm_fb_helper_lastclose(struct drm_device *dev)
 {
 }