Lines Matching refs:helper

142 	struct drm_fb_helper *helper = info->par;  in drm_fb_helper_debug_enter()  local
146 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_debug_enter()
147 mutex_lock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
148 drm_client_for_each_modeset(mode_set, &helper->client) { in drm_fb_helper_debug_enter()
165 mutex_unlock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
178 struct drm_fb_helper *helper = info->par; in drm_fb_helper_debug_leave() local
179 struct drm_client_dev *client = &helper->client; in drm_fb_helper_debug_leave()
180 struct drm_device *dev = helper->dev; in drm_fb_helper_debug_leave()
276 struct drm_fb_helper *helper; in drm_fb_helper_restore_work_fn() local
279 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_restore_work_fn()
280 struct drm_device *dev = helper->dev; in drm_fb_helper_restore_work_fn()
285 mutex_lock(&helper->lock); in drm_fb_helper_restore_work_fn()
286 drm_client_modeset_commit_locked(&helper->client); in drm_fb_helper_restore_work_fn()
287 mutex_unlock(&helper->lock); in drm_fb_helper_restore_work_fn()
355 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, in drm_fb_helper_resume_worker() local
359 fb_set_suspend(helper->info, 0); in drm_fb_helper_resume_worker()
363 static void drm_fb_helper_fb_dirty(struct drm_fb_helper *helper) in drm_fb_helper_fb_dirty() argument
365 struct drm_device *dev = helper->dev; in drm_fb_helper_fb_dirty()
366 struct drm_clip_rect *clip = &helper->damage_clip; in drm_fb_helper_fb_dirty()
371 if (drm_WARN_ON_ONCE(dev, !helper->funcs->fb_dirty)) in drm_fb_helper_fb_dirty()
374 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
378 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
380 ret = helper->funcs->fb_dirty(helper, &clip_copy); in drm_fb_helper_fb_dirty()
391 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
396 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
401 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, damage_work); in drm_fb_helper_damage_work() local
403 drm_fb_helper_fb_dirty(helper); in drm_fb_helper_damage_work()
416 void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper, in drm_fb_helper_prepare() argument
434 INIT_LIST_HEAD(&helper->kernel_fb_list); in drm_fb_helper_prepare()
435 spin_lock_init(&helper->damage_lock); in drm_fb_helper_prepare()
436 INIT_WORK(&helper->resume_work, drm_fb_helper_resume_worker); in drm_fb_helper_prepare()
437 INIT_WORK(&helper->damage_work, drm_fb_helper_damage_work); in drm_fb_helper_prepare()
438 helper->damage_clip.x1 = helper->damage_clip.y1 = ~0; in drm_fb_helper_prepare()
439 mutex_init(&helper->lock); in drm_fb_helper_prepare()
440 helper->funcs = funcs; in drm_fb_helper_prepare()
441 helper->dev = dev; in drm_fb_helper_prepare()
442 helper->preferred_bpp = preferred_bpp; in drm_fb_helper_prepare()
612 static void drm_fb_helper_add_damage_clip(struct drm_fb_helper *helper, u32 x, u32 y, in drm_fb_helper_add_damage_clip() argument
615 struct drm_clip_rect *clip = &helper->damage_clip; in drm_fb_helper_add_damage_clip()
618 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_add_damage_clip()
623 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_add_damage_clip()
626 static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y, in drm_fb_helper_damage() argument
640 drm_fb_helper_add_damage_clip(helper, x, y, width, height); in drm_fb_helper_damage()
642 schedule_work(&helper->damage_work); in drm_fb_helper_damage()
715 struct drm_fb_helper *helper = info->par; in drm_fb_helper_deferred_io() local
742 drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1, in drm_fb_helper_deferred_io()