Lines Matching refs:dev_priv
104 static int vmw_sou_fifo_create(struct vmw_private *dev_priv, in vmw_sou_fifo_create() argument
121 cmd = vmw_fifo_reserve(dev_priv, fifo_size); in vmw_sou_fifo_create()
148 vmw_fifo_commit(dev_priv, fifo_size); in vmw_sou_fifo_create()
158 static int vmw_sou_fifo_destroy(struct vmw_private *dev_priv, in vmw_sou_fifo_destroy() argument
176 cmd = vmw_fifo_reserve(dev_priv, fifo_size); in vmw_sou_fifo_destroy()
187 vmw_fifo_commit(dev_priv, fifo_size); in vmw_sou_fifo_destroy()
190 ret = vmw_fallback_wait(dev_priv, false, true, 0, false, 3*HZ); in vmw_sou_fifo_destroy()
202 static void vmw_sou_backing_free(struct vmw_private *dev_priv, in vmw_sou_backing_free() argument
219 static int vmw_sou_backing_alloc(struct vmw_private *dev_priv, in vmw_sou_backing_alloc() argument
229 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_backing_alloc()
238 vmw_overlay_pause_all(dev_priv); in vmw_sou_backing_alloc()
239 ret = vmw_dmabuf_init(dev_priv, sou->buffer, size, in vmw_sou_backing_alloc()
242 vmw_overlay_resume_all(dev_priv); in vmw_sou_backing_alloc()
254 struct vmw_private *dev_priv; in vmw_sou_crtc_set_config() local
274 dev_priv = vmw_priv(crtc->dev); in vmw_sou_crtc_set_config()
290 dev_priv->sou_priv->implicit_fb && vfb && in vmw_sou_crtc_set_config()
291 !(dev_priv->sou_priv->num_implicit == 1 && in vmw_sou_crtc_set_config()
293 dev_priv->sou_priv->implicit_fb != vfb) { in vmw_sou_crtc_set_config()
304 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
316 vmw_sou_del_active(dev_priv, sou); in vmw_sou_crtc_set_config()
318 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
334 vmw_fb_off(dev_priv); in vmw_sou_crtc_set_config()
342 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
347 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
353 ret = vmw_sou_backing_alloc(dev_priv, sou, size); in vmw_sou_crtc_set_config()
358 ret = vmw_sou_fifo_create(dev_priv, sou, set->x, set->y, mode); in vmw_sou_crtc_set_config()
380 vmw_sou_add_active(dev_priv, sou, vfb); in vmw_sou_crtc_set_config()
436 static int vmw_sou_init(struct vmw_private *dev_priv, unsigned unit) in vmw_sou_init() argument
439 struct drm_device *dev = dev_priv->dev; in vmw_sou_init()
456 sou->base.pref_width = dev_priv->initial_width; in vmw_sou_init()
457 sou->base.pref_height = dev_priv->initial_height; in vmw_sou_init()
484 int vmw_kms_init_screen_object_display(struct vmw_private *dev_priv) in vmw_kms_init_screen_object_display() argument
486 struct drm_device *dev = dev_priv->dev; in vmw_kms_init_screen_object_display()
489 if (dev_priv->sou_priv) { in vmw_kms_init_screen_object_display()
494 if (!(dev_priv->capabilities & SVGA_CAP_SCREEN_OBJECT_2)) { in vmw_kms_init_screen_object_display()
501 dev_priv->sou_priv = kmalloc(sizeof(*dev_priv->sou_priv), GFP_KERNEL); in vmw_kms_init_screen_object_display()
502 if (unlikely(!dev_priv->sou_priv)) in vmw_kms_init_screen_object_display()
505 dev_priv->sou_priv->num_implicit = 0; in vmw_kms_init_screen_object_display()
506 dev_priv->sou_priv->implicit_fb = NULL; in vmw_kms_init_screen_object_display()
517 vmw_sou_init(dev_priv, i); in vmw_kms_init_screen_object_display()
526 kfree(dev_priv->sou_priv); in vmw_kms_init_screen_object_display()
527 dev_priv->sou_priv = NULL; in vmw_kms_init_screen_object_display()
532 int vmw_kms_close_screen_object_display(struct vmw_private *dev_priv) in vmw_kms_close_screen_object_display() argument
534 struct drm_device *dev = dev_priv->dev; in vmw_kms_close_screen_object_display()
536 if (!dev_priv->sou_priv) in vmw_kms_close_screen_object_display()
541 kfree(dev_priv->sou_priv); in vmw_kms_close_screen_object_display()
550 bool vmw_kms_screen_object_flippable(struct vmw_private *dev_priv, in vmw_kms_screen_object_flippable() argument
558 if (dev_priv->sou_priv->num_implicit != 1) in vmw_kms_screen_object_flippable()
568 void vmw_kms_screen_object_update_implicit_fb(struct vmw_private *dev_priv, in vmw_kms_screen_object_update_implicit_fb() argument
575 dev_priv->sou_priv->implicit_fb = in vmw_kms_screen_object_update_implicit_fb()