Lines Matching refs:helper

6  * DRM framebuffer helper functions
85 * The fb helper functions are useful to provide an fbdev on top of a drm kernel
87 * helper functions used by many drivers to implement the kernel mode setting
97 * They should also notify the fb helper code from updates to the output
106 * All other functions exported by the fb helper library can be used to
111 * helper must be called first to initialize the minimum required to make
116 * encoders and connectors. To finish up the fbdev helper initialization, the
151 * @info: fbdev registered by the helper
155 struct drm_fb_helper *helper = info->par;
159 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
160 mutex_lock(&helper->client.modeset_mutex);
161 drm_client_for_each_modeset(mode_set, &helper->client) {
178 mutex_unlock(&helper->client.modeset_mutex);
187 * @info: fbdev registered by the helper
191 struct drm_fb_helper *helper = info->par;
192 struct drm_client_dev *client = &helper->client;
194 struct drm_device *dev = helper->dev;
273 * @fb_helper: driver-allocated fbdev helper, can be NULL
276 * when implementing an fbcon on top of kms using this helper. This ensures that
292 struct drm_fb_helper *helper;
295 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
296 struct drm_device *dev = helper->dev;
301 mutex_lock(&helper->lock);
302 drm_client_modeset_commit_locked(&helper->client);
303 mutex_unlock(&helper->lock);
336 * @info: fbdev registered by the helper
371 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper,
375 fb_set_suspend(helper->info, 0);
379 static void drm_fb_helper_fb_dirty(struct drm_fb_helper *helper)
381 struct drm_device *dev = helper->dev;
382 struct drm_clip_rect *clip = &helper->damage_clip;
387 if (drm_WARN_ON_ONCE(dev, !helper->funcs->fb_dirty))
390 spin_lock_irqsave(&helper->damage_lock, flags);
394 spin_unlock_irqrestore(&helper->damage_lock, flags);
396 ret = helper->funcs->fb_dirty(helper, &clip_copy);
407 spin_lock_irqsave(&helper->damage_lock, flags);
412 spin_unlock_irqrestore(&helper->damage_lock, flags);
417 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, damage_work);
419 drm_fb_helper_fb_dirty(helper);
425 * @helper: driver-allocated fbdev helper structure to set up
427 * @funcs: pointer to structure of functions associate with this helper
429 * Sets up the bare minimum to make the framebuffer helper usable. This is
432 void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper,
450 INIT_LIST_HEAD(&helper->kernel_fb_list);
451 mtx_init(&helper->damage_lock, IPL_TTY);
452 INIT_WORK(&helper->resume_work, drm_fb_helper_resume_worker);
453 INIT_WORK(&helper->damage_work, drm_fb_helper_damage_work);
454 helper->damage_clip.x1 = helper->damage_clip.y1 = ~0;
455 rw_init(&helper->lock, "fbhlk");
456 helper->funcs = funcs;
457 helper->dev = dev;
458 helper->preferred_bpp = preferred_bpp;
464 * @fb_helper: driver-allocated fbdev helper structure to set up
466 * Cleans up the framebuffer helper. Inverse of drm_fb_helper_prepare().
477 * @fb_helper: driver-allocated fbdev helper structure to initialize
479 * 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 member cmap. Called by the driver
556 * @fb_helper: driver-allocated fbdev helper
558 * A helper to release fb_info and the member cmap. Drivers do not
581 * @fb_helper: driver-allocated fbdev helper, can be NULL
596 * @fb_helper: driver-allocated fbdev helper, can be NULL
630 static void drm_fb_helper_add_damage_clip(struct drm_fb_helper *helper, u32 x, u32 y,
633 struct drm_clip_rect *clip = &helper->damage_clip;
636 spin_lock_irqsave(&helper->damage_lock, flags);
641 spin_unlock_irqrestore(&helper->damage_lock, flags);
644 static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y,
647 drm_fb_helper_add_damage_clip(helper, x, y, width, height);
649 schedule_work(&helper->damage_work);
721 struct drm_fb_helper *helper = info->par;
748 drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1,
759 * @fb_helper: driver-allocated fbdev helper, can be NULL
778 * @fb_helper: driver-allocated fbdev helper, can be NULL
1031 * @info: fbdev registered by the helper
1068 * @info: fbdev registered by the helper
1072 * A helper to implement the standard fbdev ioctl. Only
1240 * @info: fbdev registered by the helper
1337 * @info: fbdev registered by the helper
1453 * @info: fbdev registered by the helper
1795 * @fb_helper: fb helper instance to use as template
1798 * Sets up the variable and fixed fbdev metainformation from the given fb helper
1969 * as a helper to setup simple default values for the fbdev info structure.
2012 * @fb_helper: driver-allocated fbdev helper, can be NULL
2069 * drm_fb_helper_lastclose - DRM driver lastclose helper for fbdev emulation
2083 * helper for fbdev emulation