Lines Matching refs:ifbdev
48 static void intel_fbdev_invalidate(struct intel_fbdev *ifbdev) in intel_fbdev_invalidate() argument
50 struct drm_i915_gem_object *obj = ifbdev->fb->obj; in intel_fbdev_invalidate()
51 unsigned int origin = ifbdev->vma->fence ? ORIGIN_GTT : ORIGIN_CPU; in intel_fbdev_invalidate()
59 struct intel_fbdev *ifbdev = in intel_fbdev_set_par() local
65 intel_fbdev_invalidate(ifbdev); in intel_fbdev_set_par()
73 struct intel_fbdev *ifbdev = in intel_fbdev_blank() local
79 intel_fbdev_invalidate(ifbdev); in intel_fbdev_blank()
89 struct intel_fbdev *ifbdev =
95 intel_fbdev_invalidate(ifbdev);
119 struct intel_fbdev *ifbdev = in intelfb_alloc() local
164 ifbdev->fb = to_intel_framebuffer(fb); in intelfb_alloc()
177 struct intel_fbdev *ifbdev = in intelfb_create() local
179 struct intel_framebuffer *intel_fb = ifbdev->fb; in intelfb_create()
200 intel_fb = ifbdev->fb = NULL; in intelfb_create()
207 intel_fb = ifbdev->fb; in intelfb_create()
222 vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, DRM_MODE_ROTATE_0); in intelfb_create()
237 fb = &ifbdev->fb->base; in intelfb_create()
239 ifbdev->helper.fb = fb; in intelfb_create()
280 drm_fb_helper_fill_var(info, &ifbdev->helper, sizes->fb_width, sizes->fb_height); in intelfb_create()
294 ifbdev->vma = vma; in intelfb_create()
529 static void intel_fbdev_destroy(struct intel_fbdev *ifbdev) in intel_fbdev_destroy() argument
536 drm_fb_helper_fini(&ifbdev->helper); in intel_fbdev_destroy()
538 if (ifbdev->vma) { in intel_fbdev_destroy()
539 mutex_lock(&ifbdev->helper.dev->struct_mutex); in intel_fbdev_destroy()
540 intel_unpin_fb_vma(ifbdev->vma); in intel_fbdev_destroy()
541 mutex_unlock(&ifbdev->helper.dev->struct_mutex); in intel_fbdev_destroy()
544 if (ifbdev->fb) in intel_fbdev_destroy()
545 drm_framebuffer_remove(&ifbdev->fb->base); in intel_fbdev_destroy()
547 kfree(ifbdev); in intel_fbdev_destroy()
560 struct intel_fbdev *ifbdev) in intel_fbdev_init_bios() argument
650 ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8; in intel_fbdev_init_bios()
651 ifbdev->fb = fb; in intel_fbdev_init_bios()
653 drm_framebuffer_get(&ifbdev->fb->base); in intel_fbdev_init_bios()
688 struct intel_fbdev *ifbdev; in intel_fbdev_init() local
694 ifbdev = kzalloc(sizeof(struct intel_fbdev), GFP_KERNEL); in intel_fbdev_init()
695 if (ifbdev == NULL) in intel_fbdev_init()
698 drm_fb_helper_prepare(dev, &ifbdev->helper, &intel_fb_helper_funcs); in intel_fbdev_init()
700 if (!intel_fbdev_init_bios(dev, ifbdev)) in intel_fbdev_init()
701 ifbdev->preferred_bpp = 32; in intel_fbdev_init()
703 ret = drm_fb_helper_init(dev, &ifbdev->helper, 4); in intel_fbdev_init()
705 kfree(ifbdev); in intel_fbdev_init()
709 dev_priv->fbdev = ifbdev; in intel_fbdev_init()
712 drm_fb_helper_single_add_all_connectors(&ifbdev->helper); in intel_fbdev_init()
719 struct intel_fbdev *ifbdev = data; in intel_fbdev_initial_config() local
722 if (drm_fb_helper_initial_config(&ifbdev->helper, in intel_fbdev_initial_config()
723 ifbdev->preferred_bpp)) in intel_fbdev_initial_config()
724 intel_fbdev_unregister(to_i915(ifbdev->helper.dev)); in intel_fbdev_initial_config()
729 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_initial_config_async() local
731 if (!ifbdev) in intel_fbdev_initial_config_async()
734 ifbdev->cookie = async_schedule(intel_fbdev_initial_config, ifbdev); in intel_fbdev_initial_config_async()
737 static void intel_fbdev_sync(struct intel_fbdev *ifbdev) in intel_fbdev_sync() argument
739 if (!ifbdev->cookie) in intel_fbdev_sync()
743 async_synchronize_cookie(ifbdev->cookie + 1); in intel_fbdev_sync()
744 ifbdev->cookie = 0; in intel_fbdev_sync()
749 struct intel_fbdev *ifbdev = dev_priv->fbdev; in intel_fbdev_unregister() local
751 if (!ifbdev) in intel_fbdev_unregister()
756 intel_fbdev_sync(ifbdev); in intel_fbdev_unregister()
758 drm_fb_helper_unregister_fbi(&ifbdev->helper); in intel_fbdev_unregister()
763 struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->fbdev); in intel_fbdev_fini() local
765 if (!ifbdev) in intel_fbdev_fini()
768 intel_fbdev_destroy(ifbdev); in intel_fbdev_fini()
775 struct intel_fbdev *ifbdev = dev_priv->fbdev; in intel_fbdev_set_suspend()
778 if (!ifbdev || !ifbdev->vma) in intel_fbdev_set_suspend()
781 info = ifbdev->helper.fbdev; in intel_fbdev_set_suspend()
814 if (state == FBINFO_STATE_RUNNING && ifbdev->fb->obj->stolen) in intel_fbdev_set_suspend()
817 drm_fb_helper_set_suspend(&ifbdev->helper, state); in intel_fbdev_set_suspend()
824 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_output_poll_changed() local
826 if (!ifbdev) in intel_fbdev_output_poll_changed()
829 intel_fbdev_sync(ifbdev); in intel_fbdev_output_poll_changed()
830 if (ifbdev->vma) in intel_fbdev_output_poll_changed()
831 drm_fb_helper_hotplug_event(&ifbdev->helper); in intel_fbdev_output_poll_changed()
836 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_restore_mode() local
838 if (!ifbdev) in intel_fbdev_restore_mode()
841 intel_fbdev_sync(ifbdev); in intel_fbdev_restore_mode()
842 if (!ifbdev->vma) in intel_fbdev_restore_mode()
853 if (drm_fb_helper_restore_fbdev_mode_unlocked(&ifbdev->helper) == 0) in intel_fbdev_restore_mode()
854 intel_fbdev_invalidate(ifbdev); in intel_fbdev_restore_mode()