Commit ed84e254 authored by Daniel Vetter's avatar Daniel Vetter

drm/fb-helper: Explain unload sequence a bit better

While reviewing Chris' patches to properly cancel our async workers I
checked that this happens after the fbdev is already unregistered.
That's the case, but I found a small gap in our docs, fill that in.

Note that I don't explain what release_fbi does, because that function
will disappear in the next patch ...

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170207141050.1129-1-daniel.vetter@ffwll.ch
parent 0e70dad0
...@@ -63,7 +63,8 @@ static DEFINE_MUTEX(kernel_fb_helper_lock); ...@@ -63,7 +63,8 @@ static DEFINE_MUTEX(kernel_fb_helper_lock);
* drm_fb_helper_init(), drm_fb_helper_single_add_all_connectors() and * drm_fb_helper_init(), drm_fb_helper_single_add_all_connectors() and
* drm_fb_helper_initial_config(). Drivers with fancier requirements than the * drm_fb_helper_initial_config(). Drivers with fancier requirements than the
* default behaviour can override the third step with their own code. * default behaviour can override the third step with their own code.
* Teardown is done with drm_fb_helper_fini(). * Teardown is done with drm_fb_helper_fini() after the fbdev device is
* unregisters using drm_fb_helper_unregister_fbi().
* *
* At runtime drivers should restore the fbdev console by calling * At runtime drivers should restore the fbdev console by calling
* drm_fb_helper_restore_fbdev_mode_unlocked() from their &drm_driver.lastclose * drm_fb_helper_restore_fbdev_mode_unlocked() from their &drm_driver.lastclose
...@@ -709,7 +710,7 @@ void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper, ...@@ -709,7 +710,7 @@ void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper,
EXPORT_SYMBOL(drm_fb_helper_prepare); EXPORT_SYMBOL(drm_fb_helper_prepare);
/** /**
* drm_fb_helper_init - initialize a drm_fb_helper structure * drm_fb_helper_init - initialize a &struct drm_fb_helper
* @dev: drm device * @dev: drm device
* @fb_helper: driver-allocated fbdev helper structure to initialize * @fb_helper: driver-allocated fbdev helper structure to initialize
* @max_conn_count: max connector count * @max_conn_count: max connector count
...@@ -823,7 +824,8 @@ EXPORT_SYMBOL(drm_fb_helper_alloc_fbi); ...@@ -823,7 +824,8 @@ EXPORT_SYMBOL(drm_fb_helper_alloc_fbi);
* @fb_helper: driver-allocated fbdev helper * @fb_helper: driver-allocated fbdev helper
* *
* A wrapper around unregister_framebuffer, to release the fb_info * A wrapper around unregister_framebuffer, to release the fb_info
* framebuffer device * framebuffer device. This must be called before releasing all resources for
* @fb_helper by calling drm_fb_helper_fini().
*/ */
void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper) void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper)
{ {
...@@ -855,6 +857,13 @@ void drm_fb_helper_release_fbi(struct drm_fb_helper *fb_helper) ...@@ -855,6 +857,13 @@ void drm_fb_helper_release_fbi(struct drm_fb_helper *fb_helper)
} }
EXPORT_SYMBOL(drm_fb_helper_release_fbi); EXPORT_SYMBOL(drm_fb_helper_release_fbi);
/**
* drm_fb_helper_fini - finialize a &struct drm_fb_helper
* @fb_helper: driver-allocated fbdev helper
*
* This cleans up all remaining resources associated with @fb_helper. Must be
* called after drm_fb_helper_unlink_fbi() was called.
*/
void drm_fb_helper_fini(struct drm_fb_helper *fb_helper) void drm_fb_helper_fini(struct drm_fb_helper *fb_helper)
{ {
if (!drm_fbdev_emulation) if (!drm_fbdev_emulation)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment