Lines Matching refs:dev_priv

149 static int vmw_sou_fifo_create(struct vmw_private *dev_priv,  in vmw_sou_fifo_create()  argument
166 cmd = vmw_fifo_reserve(dev_priv, fifo_size); in vmw_sou_fifo_create()
193 vmw_fifo_commit(dev_priv, fifo_size); in vmw_sou_fifo_create()
203 static int vmw_sou_fifo_destroy(struct vmw_private *dev_priv, in vmw_sou_fifo_destroy() argument
221 cmd = vmw_fifo_reserve(dev_priv, fifo_size); in vmw_sou_fifo_destroy()
232 vmw_fifo_commit(dev_priv, fifo_size); in vmw_sou_fifo_destroy()
235 ret = vmw_fallback_wait(dev_priv, false, true, 0, false, 3*HZ); in vmw_sou_fifo_destroy()
247 static void vmw_sou_backing_free(struct vmw_private *dev_priv, in vmw_sou_backing_free() argument
257 static int vmw_sou_backing_alloc(struct vmw_private *dev_priv, in vmw_sou_backing_alloc() argument
267 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_backing_alloc()
276 vmw_overlay_pause_all(dev_priv); in vmw_sou_backing_alloc()
277 ret = vmw_dmabuf_init(dev_priv, sou->buffer, size, in vmw_sou_backing_alloc()
280 vmw_overlay_resume_all(dev_priv); in vmw_sou_backing_alloc()
292 struct vmw_private *dev_priv; in vmw_sou_crtc_set_config() local
312 dev_priv = vmw_priv(crtc->dev); in vmw_sou_crtc_set_config()
328 dev_priv->sou_priv->implicit_fb && vfb && in vmw_sou_crtc_set_config()
329 !(dev_priv->sou_priv->num_implicit == 1 && in vmw_sou_crtc_set_config()
331 dev_priv->sou_priv->implicit_fb != vfb) { in vmw_sou_crtc_set_config()
342 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
354 vmw_sou_del_active(dev_priv, sou); in vmw_sou_crtc_set_config()
356 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
372 vmw_svga_enable(dev_priv); in vmw_sou_crtc_set_config()
380 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
385 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
391 ret = vmw_sou_backing_alloc(dev_priv, sou, size); in vmw_sou_crtc_set_config()
396 ret = vmw_sou_fifo_create(dev_priv, sou, set->x, set->y, mode); in vmw_sou_crtc_set_config()
418 vmw_sou_add_active(dev_priv, sou, vfb); in vmw_sou_crtc_set_config()
435 static bool vmw_sou_screen_object_flippable(struct vmw_private *dev_priv, in vmw_sou_screen_object_flippable() argument
443 if (dev_priv->sou_priv->num_implicit != 1) in vmw_sou_screen_object_flippable()
453 static void vmw_sou_update_implicit_fb(struct vmw_private *dev_priv, in vmw_sou_update_implicit_fb() argument
460 dev_priv->sou_priv->implicit_fb = in vmw_sou_update_implicit_fb()
469 struct vmw_private *dev_priv = vmw_priv(crtc->dev); in vmw_sou_crtc_page_flip() local
477 if (!dev_priv->sou_priv) in vmw_sou_crtc_page_flip()
480 if (!vmw_sou_screen_object_flippable(dev_priv, crtc)) in vmw_sou_crtc_page_flip()
491 ret = vmw_kms_sou_do_dmabuf_dirty(dev_priv, vfb, in vmw_sou_crtc_page_flip()
495 ret = vmw_kms_sou_do_surface_dirty(dev_priv, vfb, in vmw_sou_crtc_page_flip()
524 vmw_sou_update_implicit_fb(dev_priv, crtc); in vmw_sou_crtc_page_flip()
576 static int vmw_sou_init(struct vmw_private *dev_priv, unsigned unit) in vmw_sou_init() argument
579 struct drm_device *dev = dev_priv->dev; in vmw_sou_init()
596 sou->base.pref_width = dev_priv->initial_width; in vmw_sou_init()
597 sou->base.pref_height = dev_priv->initial_height; in vmw_sou_init()
624 int vmw_kms_sou_init_display(struct vmw_private *dev_priv) in vmw_kms_sou_init_display() argument
626 struct drm_device *dev = dev_priv->dev; in vmw_kms_sou_init_display()
629 if (dev_priv->sou_priv) { in vmw_kms_sou_init_display()
634 if (!(dev_priv->capabilities & SVGA_CAP_SCREEN_OBJECT_2)) { in vmw_kms_sou_init_display()
641 dev_priv->sou_priv = kmalloc(sizeof(*dev_priv->sou_priv), GFP_KERNEL); in vmw_kms_sou_init_display()
642 if (unlikely(!dev_priv->sou_priv)) in vmw_kms_sou_init_display()
645 dev_priv->sou_priv->num_implicit = 0; in vmw_kms_sou_init_display()
646 dev_priv->sou_priv->implicit_fb = NULL; in vmw_kms_sou_init_display()
657 vmw_sou_init(dev_priv, i); in vmw_kms_sou_init_display()
659 dev_priv->active_display_unit = vmw_du_screen_object; in vmw_kms_sou_init_display()
668 kfree(dev_priv->sou_priv); in vmw_kms_sou_init_display()
669 dev_priv->sou_priv = NULL; in vmw_kms_sou_init_display()
674 int vmw_kms_sou_close_display(struct vmw_private *dev_priv) in vmw_kms_sou_close_display() argument
676 struct drm_device *dev = dev_priv->dev; in vmw_kms_sou_close_display()
678 if (!dev_priv->sou_priv) in vmw_kms_sou_close_display()
683 kfree(dev_priv->sou_priv); in vmw_kms_sou_close_display()
688 static int do_dmabuf_define_gmrfb(struct vmw_private *dev_priv, in do_dmabuf_define_gmrfb() argument
707 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); in do_dmabuf_define_gmrfb()
720 vmw_fifo_commit(dev_priv, sizeof(*cmd)); in do_dmabuf_define_gmrfb()
773 vmw_fifo_commit(dirty->dev_priv, region_size + sizeof(*cmd)); in vmw_sou_surface_fifo_commit()
831 int vmw_kms_sou_do_surface_dirty(struct vmw_private *dev_priv, in vmw_kms_sou_do_surface_dirty() argument
855 sdirty.base.dev_priv = dev_priv; in vmw_kms_sou_do_surface_dirty()
865 ret = vmw_kms_helper_dirty(dev_priv, framebuffer, clips, vclips, in vmw_kms_sou_do_surface_dirty()
882 vmw_fifo_commit(dirty->dev_priv, in vmw_sou_dmabuf_fifo_commit()
926 int vmw_kms_sou_do_dmabuf_dirty(struct vmw_private *dev_priv, in vmw_kms_sou_do_dmabuf_dirty() argument
939 ret = vmw_kms_helper_buffer_prepare(dev_priv, buf, interruptible, in vmw_kms_sou_do_dmabuf_dirty()
944 ret = do_dmabuf_define_gmrfb(dev_priv, framebuffer); in vmw_kms_sou_do_dmabuf_dirty()
952 ret = vmw_kms_helper_dirty(dev_priv, framebuffer, clips, NULL, in vmw_kms_sou_do_dmabuf_dirty()
954 vmw_kms_helper_buffer_finish(dev_priv, NULL, buf, out_fence, NULL); in vmw_kms_sou_do_dmabuf_dirty()
974 vmw_fifo_commit(dirty->dev_priv, in vmw_sou_readback_fifo_commit()
1018 int vmw_kms_sou_readback(struct vmw_private *dev_priv, in vmw_kms_sou_readback() argument
1030 ret = vmw_kms_helper_buffer_prepare(dev_priv, buf, true, false); in vmw_kms_sou_readback()
1034 ret = do_dmabuf_define_gmrfb(dev_priv, vfb); in vmw_kms_sou_readback()
1042 ret = vmw_kms_helper_dirty(dev_priv, vfb, NULL, vclips, in vmw_kms_sou_readback()
1044 vmw_kms_helper_buffer_finish(dev_priv, file_priv, buf, NULL, in vmw_kms_sou_readback()