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 = intel_fb_obj(&ifbdev->fb->base); in intel_fbdev_invalidate()
52 ifbdev->vma_flags & PLANE_HAS_FENCE ? ORIGIN_GTT : ORIGIN_CPU; in intel_fbdev_invalidate()
60 struct intel_fbdev *ifbdev = in intel_fbdev_set_par() local
66 intel_fbdev_invalidate(ifbdev); in intel_fbdev_set_par()
74 struct intel_fbdev *ifbdev = in intel_fbdev_blank() local
80 intel_fbdev_invalidate(ifbdev); in intel_fbdev_blank()
89 struct intel_fbdev *ifbdev = in intel_fbdev_pan_display() local
95 intel_fbdev_invalidate(ifbdev); in intel_fbdev_pan_display()
114 struct intel_fbdev *ifbdev = in intelfb_alloc() local
158 ifbdev->fb = to_intel_framebuffer(fb); in intelfb_alloc()
171 struct intel_fbdev *ifbdev = in intelfb_create() local
173 struct intel_framebuffer *intel_fb = ifbdev->fb; in intelfb_create()
194 intel_fb = ifbdev->fb = NULL; in intelfb_create()
201 intel_fb = ifbdev->fb; in intelfb_create()
216 vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, in intelfb_create()
224 fb = &ifbdev->fb->base; in intelfb_create()
236 ifbdev->helper.fb = fb; in intelfb_create()
262 drm_fb_helper_fill_var(info, &ifbdev->helper, sizes->fb_width, sizes->fb_height); in intelfb_create()
275 ifbdev->vma = vma; in intelfb_create()
276 ifbdev->vma_flags = flags; in intelfb_create()
511 static void intel_fbdev_destroy(struct intel_fbdev *ifbdev) in intel_fbdev_destroy() argument
518 drm_fb_helper_fini(&ifbdev->helper); in intel_fbdev_destroy()
520 if (ifbdev->vma) { in intel_fbdev_destroy()
521 mutex_lock(&ifbdev->helper.dev->struct_mutex); in intel_fbdev_destroy()
522 intel_unpin_fb_vma(ifbdev->vma, ifbdev->vma_flags); in intel_fbdev_destroy()
523 mutex_unlock(&ifbdev->helper.dev->struct_mutex); in intel_fbdev_destroy()
526 if (ifbdev->fb) in intel_fbdev_destroy()
527 drm_framebuffer_remove(&ifbdev->fb->base); in intel_fbdev_destroy()
529 kfree(ifbdev); in intel_fbdev_destroy()
542 struct intel_fbdev *ifbdev) in intel_fbdev_init_bios() argument
632 ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8; in intel_fbdev_init_bios()
633 ifbdev->fb = fb; in intel_fbdev_init_bios()
635 drm_framebuffer_get(&ifbdev->fb->base); in intel_fbdev_init_bios()
670 struct intel_fbdev *ifbdev; in intel_fbdev_init() local
676 ifbdev = kzalloc(sizeof(struct intel_fbdev), GFP_KERNEL); in intel_fbdev_init()
677 if (ifbdev == NULL) in intel_fbdev_init()
680 drm_fb_helper_prepare(dev, &ifbdev->helper, &intel_fb_helper_funcs); in intel_fbdev_init()
682 if (!intel_fbdev_init_bios(dev, ifbdev)) in intel_fbdev_init()
683 ifbdev->preferred_bpp = 32; in intel_fbdev_init()
685 ret = drm_fb_helper_init(dev, &ifbdev->helper, 4); in intel_fbdev_init()
687 kfree(ifbdev); in intel_fbdev_init()
691 dev_priv->fbdev = ifbdev; in intel_fbdev_init()
694 drm_fb_helper_single_add_all_connectors(&ifbdev->helper); in intel_fbdev_init()
701 struct intel_fbdev *ifbdev = data; in intel_fbdev_initial_config() local
704 if (drm_fb_helper_initial_config(&ifbdev->helper, in intel_fbdev_initial_config()
705 ifbdev->preferred_bpp)) in intel_fbdev_initial_config()
706 intel_fbdev_unregister(to_i915(ifbdev->helper.dev)); in intel_fbdev_initial_config()
711 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_initial_config_async() local
713 if (!ifbdev) in intel_fbdev_initial_config_async()
716 ifbdev->cookie = async_schedule(intel_fbdev_initial_config, ifbdev); in intel_fbdev_initial_config_async()
719 static void intel_fbdev_sync(struct intel_fbdev *ifbdev) in intel_fbdev_sync() argument
721 if (!ifbdev->cookie) in intel_fbdev_sync()
725 async_synchronize_cookie(ifbdev->cookie + 1); in intel_fbdev_sync()
726 ifbdev->cookie = 0; in intel_fbdev_sync()
731 struct intel_fbdev *ifbdev = dev_priv->fbdev; in intel_fbdev_unregister() local
733 if (!ifbdev) in intel_fbdev_unregister()
738 intel_fbdev_sync(ifbdev); in intel_fbdev_unregister()
740 drm_fb_helper_unregister_fbi(&ifbdev->helper); in intel_fbdev_unregister()
745 struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->fbdev); in intel_fbdev_fini() local
747 if (!ifbdev) in intel_fbdev_fini()
750 intel_fbdev_destroy(ifbdev); in intel_fbdev_fini()
756 struct intel_fbdev *ifbdev = dev_priv->fbdev; in intel_fbdev_set_suspend() local
759 if (!ifbdev || !ifbdev->vma) in intel_fbdev_set_suspend()
762 info = ifbdev->helper.fbdev; in intel_fbdev_set_suspend()
796 intel_fb_obj(&ifbdev->fb->base)->stolen) in intel_fbdev_set_suspend()
799 drm_fb_helper_set_suspend(&ifbdev->helper, state); in intel_fbdev_set_suspend()
805 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_output_poll_changed() local
807 if (!ifbdev) in intel_fbdev_output_poll_changed()
810 intel_fbdev_sync(ifbdev); in intel_fbdev_output_poll_changed()
811 if (ifbdev->vma || ifbdev->helper.deferred_setup) in intel_fbdev_output_poll_changed()
812 drm_fb_helper_hotplug_event(&ifbdev->helper); in intel_fbdev_output_poll_changed()
817 struct intel_fbdev *ifbdev = to_i915(dev)->fbdev; in intel_fbdev_restore_mode() local
819 if (!ifbdev) in intel_fbdev_restore_mode()
822 intel_fbdev_sync(ifbdev); in intel_fbdev_restore_mode()
823 if (!ifbdev->vma) in intel_fbdev_restore_mode()
826 if (drm_fb_helper_restore_fbdev_mode_unlocked(&ifbdev->helper) == 0) in intel_fbdev_restore_mode()
827 intel_fbdev_invalidate(ifbdev); in intel_fbdev_restore_mode()