Lines Matching full:helper

6  * DRM framebuffer helper functions
88 * The fb helper functions are useful to provide an fbdev on top of a drm kernel
90 * helper functions used by many drivers to implement the kernel mode setting
100 * They should also notify the fb helper code from updates to the output
107 * All other functions exported by the fb helper library can be used to
112 * helper must be called first to initialize the minimum required to make
117 * encoders and connectors. To finish up the fbdev helper initialization, the
152 * @info: fbdev registered by the helper
156 struct drm_fb_helper *helper = info->par; in drm_fb_helper_debug_enter() local
160 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_debug_enter()
161 mutex_lock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
162 drm_client_for_each_modeset(mode_set, &helper->client) { in drm_fb_helper_debug_enter()
179 mutex_unlock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
188 * @info: fbdev registered by the helper
192 struct drm_fb_helper *helper = info->par; in drm_fb_helper_debug_leave() local
193 struct drm_client_dev *client = &helper->client; in drm_fb_helper_debug_leave()
194 struct drm_device *dev = helper->dev; in drm_fb_helper_debug_leave()
268 * @fb_helper: driver-allocated fbdev helper, can be NULL
271 * when implementing an fbcon on top of kms using this helper. This ensures that
285 * restore fbcon display for all kms driver's using this helper, used for sysrq
291 struct drm_fb_helper *helper; in drm_fb_helper_force_kernel_mode() local
296 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_force_kernel_mode()
297 struct drm_device *dev = helper->dev; in drm_fb_helper_force_kernel_mode()
302 mutex_lock(&helper->lock); in drm_fb_helper_force_kernel_mode()
303 ret = drm_client_modeset_commit_locked(&helper->client); in drm_fb_helper_force_kernel_mode()
306 mutex_unlock(&helper->lock); in drm_fb_helper_force_kernel_mode()
347 * @info: fbdev registered by the helper
382 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, in drm_fb_helper_resume_worker() local
386 fb_set_suspend(helper->fbdev, 0); in drm_fb_helper_resume_worker()
414 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, in drm_fb_helper_dirty_work() local
416 struct drm_clip_rect *clip = &helper->dirty_clip; in drm_fb_helper_dirty_work()
421 spin_lock_irqsave(&helper->dirty_lock, flags); in drm_fb_helper_dirty_work()
425 spin_unlock_irqrestore(&helper->dirty_lock, flags); in drm_fb_helper_dirty_work()
431 if (helper->buffer) { in drm_fb_helper_dirty_work()
432 vaddr = drm_client_buffer_vmap(helper->buffer); in drm_fb_helper_dirty_work()
435 drm_fb_helper_dirty_blit_real(helper, &clip_copy); in drm_fb_helper_dirty_work()
437 if (helper->fb->funcs->dirty) in drm_fb_helper_dirty_work()
438 helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, in drm_fb_helper_dirty_work()
441 if (helper->buffer) in drm_fb_helper_dirty_work()
442 drm_client_buffer_vunmap(helper->buffer); in drm_fb_helper_dirty_work()
449 * @helper: driver-allocated fbdev helper structure to set up
450 * @funcs: pointer to structure of functions associate with this helper
452 * Sets up the bare minimum to make the framebuffer helper usable. This is
455 void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper, in drm_fb_helper_prepare() argument
458 INIT_LIST_HEAD(&helper->kernel_fb_list); in drm_fb_helper_prepare()
459 spin_lock_init(&helper->dirty_lock); in drm_fb_helper_prepare()
460 INIT_WORK(&helper->resume_work, drm_fb_helper_resume_worker); in drm_fb_helper_prepare()
461 INIT_WORK(&helper->dirty_work, drm_fb_helper_dirty_work); in drm_fb_helper_prepare()
462 helper->dirty_clip.x1 = helper->dirty_clip.y1 = ~0; in drm_fb_helper_prepare()
463 mutex_init(&helper->lock); in drm_fb_helper_prepare()
464 helper->funcs = funcs; in drm_fb_helper_prepare()
465 helper->dev = dev; in drm_fb_helper_prepare()
472 * @fb_helper: driver-allocated fbdev helper structure to initialize
474 * This allocates the structures for the fbdev helper with the given limits.
512 * @fb_helper: driver-allocated fbdev helper
514 * A helper to alloc fb_info and the members cmap and apertures. Called
539 * for each IORESOURCE_MEM resource helper->dev->dev has and also in drm_fb_helper_alloc_fbi()
566 * @fb_helper: driver-allocated fbdev helper, can be NULL
581 * @fb_helper: driver-allocated fbdev helper, can be NULL
636 struct drm_fb_helper *helper = info->par; in drm_fb_helper_dirty() local
637 struct drm_clip_rect *clip = &helper->dirty_clip; in drm_fb_helper_dirty()
640 if (!drm_fbdev_use_shadow_fb(helper)) in drm_fb_helper_dirty()
643 spin_lock_irqsave(&helper->dirty_lock, flags); in drm_fb_helper_dirty()
648 spin_unlock_irqrestore(&helper->dirty_lock, flags); in drm_fb_helper_dirty()
650 schedule_work(&helper->dirty_work); in drm_fb_helper_dirty()
727 * @info: fbdev registered by the helper
743 * @info: fbdev registered by the helper
759 * @info: fbdev registered by the helper
775 * @info: fbdev registered by the helper
791 * @info: fbdev registered by the helper
807 * @info: fbdev registered by the helper
823 * @fb_helper: driver-allocated fbdev helper, can be NULL
840 * @fb_helper: driver-allocated fbdev helper, can be NULL
1079 * @info: fbdev registered by the helper
1116 * @info: fbdev registered by the helper
1120 * A helper to implement the standard fbdev ioctl. Only
1261 * @info: fbdev registered by the helper
1331 * @info: fbdev registered by the helper
1436 * @info: fbdev registered by the helper
1686 * @fb_helper: fb helper instance to use as template
1689 * Sets up the variable and fixed fbdev metainformation from the given fb helper
1854 * as a helper to setup simple default values for the fbdev info structure.
1897 * @fb_helper: driver-allocated fbdev helper, can be NULL
1950 * drm_fb_helper_lastclose - DRM driver lastclose helper for fbdev emulation
1964 * helper for fbdev emulation