Lines Matching refs:helper

154 	struct drm_fb_helper *helper = info->par;  in drm_fb_helper_debug_enter()  local
158 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_debug_enter()
159 mutex_lock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
160 drm_client_for_each_modeset(mode_set, &helper->client) { in drm_fb_helper_debug_enter()
177 mutex_unlock(&helper->client.modeset_mutex); in drm_fb_helper_debug_enter()
190 struct drm_fb_helper *helper = info->par; in drm_fb_helper_debug_leave() local
191 struct drm_client_dev *client = &helper->client; in drm_fb_helper_debug_leave()
192 struct drm_device *dev = helper->dev; in drm_fb_helper_debug_leave()
285 struct drm_fb_helper *helper; in drm_fb_helper_restore_work_fn() local
288 list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { in drm_fb_helper_restore_work_fn()
289 struct drm_device *dev = helper->dev; in drm_fb_helper_restore_work_fn()
294 mutex_lock(&helper->lock); in drm_fb_helper_restore_work_fn()
295 drm_client_modeset_commit_locked(&helper->client); in drm_fb_helper_restore_work_fn()
296 mutex_unlock(&helper->lock); in drm_fb_helper_restore_work_fn()
364 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, in drm_fb_helper_resume_worker() local
368 fb_set_suspend(helper->info, 0); in drm_fb_helper_resume_worker()
372 static void drm_fb_helper_fb_dirty(struct drm_fb_helper *helper) in drm_fb_helper_fb_dirty() argument
374 struct drm_device *dev = helper->dev; in drm_fb_helper_fb_dirty()
375 struct drm_clip_rect *clip = &helper->damage_clip; in drm_fb_helper_fb_dirty()
380 if (drm_WARN_ON_ONCE(dev, !helper->funcs->fb_dirty)) in drm_fb_helper_fb_dirty()
383 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
387 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
389 ret = helper->funcs->fb_dirty(helper, &clip_copy); in drm_fb_helper_fb_dirty()
400 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
405 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_fb_dirty()
410 struct drm_fb_helper *helper = container_of(work, struct drm_fb_helper, damage_work); in drm_fb_helper_damage_work() local
412 drm_fb_helper_fb_dirty(helper); in drm_fb_helper_damage_work()
425 void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper, in drm_fb_helper_prepare() argument
443 INIT_LIST_HEAD(&helper->kernel_fb_list); in drm_fb_helper_prepare()
444 spin_lock_init(&helper->damage_lock); in drm_fb_helper_prepare()
445 INIT_WORK(&helper->resume_work, drm_fb_helper_resume_worker); in drm_fb_helper_prepare()
446 INIT_WORK(&helper->damage_work, drm_fb_helper_damage_work); in drm_fb_helper_prepare()
447 helper->damage_clip.x1 = helper->damage_clip.y1 = ~0; in drm_fb_helper_prepare()
448 mutex_init(&helper->lock); in drm_fb_helper_prepare()
449 helper->funcs = funcs; in drm_fb_helper_prepare()
450 helper->dev = dev; in drm_fb_helper_prepare()
451 helper->preferred_bpp = preferred_bpp; in drm_fb_helper_prepare()
598 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
601 struct drm_clip_rect *clip = &helper->damage_clip; in drm_fb_helper_add_damage_clip()
604 spin_lock_irqsave(&helper->damage_lock, flags); in drm_fb_helper_add_damage_clip()
609 spin_unlock_irqrestore(&helper->damage_lock, flags); in drm_fb_helper_add_damage_clip()
612 static void drm_fb_helper_damage(struct drm_fb_helper *helper, u32 x, u32 y, in drm_fb_helper_damage() argument
615 drm_fb_helper_add_damage_clip(helper, x, y, width, height); in drm_fb_helper_damage()
617 schedule_work(&helper->damage_work); in drm_fb_helper_damage()
659 struct drm_fb_helper *helper = info->par; in drm_fb_helper_deferred_io() local
682 drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1, in drm_fb_helper_deferred_io()
819 struct drm_fb_helper *helper = info->par; in drm_fb_helper_sys_write() local
828 if (helper->funcs->fb_dirty) { in drm_fb_helper_sys_write()
830 drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1, in drm_fb_helper_sys_write()
849 struct drm_fb_helper *helper = info->par; in drm_fb_helper_sys_fillrect() local
853 if (helper->funcs->fb_dirty) in drm_fb_helper_sys_fillrect()
854 drm_fb_helper_damage(helper, rect->dx, rect->dy, rect->width, rect->height); in drm_fb_helper_sys_fillrect()
868 struct drm_fb_helper *helper = info->par; in drm_fb_helper_sys_copyarea() local
872 if (helper->funcs->fb_dirty) in drm_fb_helper_sys_copyarea()
873 drm_fb_helper_damage(helper, area->dx, area->dy, area->width, area->height); in drm_fb_helper_sys_copyarea()
887 struct drm_fb_helper *helper = info->par; in drm_fb_helper_sys_imageblit() local
891 if (helper->funcs->fb_dirty) in drm_fb_helper_sys_imageblit()
892 drm_fb_helper_damage(helper, image->dx, image->dy, image->width, image->height); in drm_fb_helper_sys_imageblit()
992 struct drm_fb_helper *helper = info->par; in drm_fb_helper_cfb_write() local
1001 if (helper->funcs->fb_dirty) { in drm_fb_helper_cfb_write()
1003 drm_fb_helper_damage(helper, damage_area.x1, damage_area.y1, in drm_fb_helper_cfb_write()
1022 struct drm_fb_helper *helper = info->par; in drm_fb_helper_cfb_fillrect() local
1026 if (helper->funcs->fb_dirty) in drm_fb_helper_cfb_fillrect()
1027 drm_fb_helper_damage(helper, rect->dx, rect->dy, rect->width, rect->height); in drm_fb_helper_cfb_fillrect()
1041 struct drm_fb_helper *helper = info->par; in drm_fb_helper_cfb_copyarea() local
1045 if (helper->funcs->fb_dirty) in drm_fb_helper_cfb_copyarea()
1046 drm_fb_helper_damage(helper, area->dx, area->dy, area->width, area->height); in drm_fb_helper_cfb_copyarea()
1060 struct drm_fb_helper *helper = info->par; in drm_fb_helper_cfb_imageblit() local
1064 if (helper->funcs->fb_dirty) in drm_fb_helper_cfb_imageblit()
1065 drm_fb_helper_damage(helper, image->dx, image->dy, image->width, image->height); in drm_fb_helper_cfb_imageblit()