Lines Matching refs:dev_priv
80 static int vmw_ldu_commit_list(struct vmw_private *dev_priv) in vmw_ldu_commit_list() argument
82 struct vmw_legacy_display *lds = dev_priv->ldu_priv; in vmw_ldu_commit_list()
91 if (!(dev_priv->capabilities & SVGA_CAP_DISPLAY_TOPOLOGY)) { in vmw_ldu_commit_list()
103 return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0], in vmw_ldu_commit_list()
112 vmw_kms_write_svga(dev_priv, fb->width, fb->height, fb->pitches[0], in vmw_ldu_commit_list()
117 vmw_write(dev_priv, SVGA_REG_NUM_GUEST_DISPLAYS, in vmw_ldu_commit_list()
124 vmw_write(dev_priv, SVGA_REG_DISPLAY_ID, i); in vmw_ldu_commit_list()
125 vmw_write(dev_priv, SVGA_REG_DISPLAY_IS_PRIMARY, !i); in vmw_ldu_commit_list()
126 vmw_write(dev_priv, SVGA_REG_DISPLAY_POSITION_X, crtc->x); in vmw_ldu_commit_list()
127 vmw_write(dev_priv, SVGA_REG_DISPLAY_POSITION_Y, crtc->y); in vmw_ldu_commit_list()
128 vmw_write(dev_priv, SVGA_REG_DISPLAY_WIDTH, crtc->mode.hdisplay); in vmw_ldu_commit_list()
129 vmw_write(dev_priv, SVGA_REG_DISPLAY_HEIGHT, crtc->mode.vdisplay); in vmw_ldu_commit_list()
147 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev); in vmw_ldu_fb_pin() local
157 WARN_ON(dev_priv->active_display_unit != vmw_du_legacy); in vmw_ldu_fb_pin()
159 if (dev_priv->active_display_unit == vmw_du_legacy) { in vmw_ldu_fb_pin()
160 vmw_overlay_pause_all(dev_priv); in vmw_ldu_fb_pin()
161 ret = vmw_bo_pin_in_start_of_vram(dev_priv, buf, false); in vmw_ldu_fb_pin()
162 vmw_overlay_resume_all(dev_priv); in vmw_ldu_fb_pin()
171 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev); in vmw_ldu_fb_unpin() local
182 return vmw_bo_unpin(dev_priv, buf, false); in vmw_ldu_fb_unpin()
301 static int vmw_kms_ldu_do_bo_dirty(struct vmw_private *dev_priv,
319 struct vmw_private *dev_priv; in vmw_ldu_primary_plane_atomic_update() local
326 dev_priv = vmw_priv(plane->dev); in vmw_ldu_primary_plane_atomic_update()
332 vmw_ldu_add_active(dev_priv, ldu, vfb); in vmw_ldu_primary_plane_atomic_update()
334 vmw_ldu_del_active(dev_priv, ldu); in vmw_ldu_primary_plane_atomic_update()
336 vmw_ldu_commit_list(dev_priv); in vmw_ldu_primary_plane_atomic_update()
338 if (vfb && vmw_cmd_supported(dev_priv)) { in vmw_ldu_primary_plane_atomic_update()
354 ret = vmw_kms_ldu_do_bo_dirty(dev_priv, vfb, 0, 0, damage_rects, rect_count); in vmw_ldu_primary_plane_atomic_update()
359 vmw_cmd_flush(dev_priv, false); in vmw_ldu_primary_plane_atomic_update()
408 static int vmw_ldu_init(struct vmw_private *dev_priv, unsigned unit) in vmw_ldu_init() argument
411 struct drm_device *dev = &dev_priv->drm; in vmw_ldu_init()
433 ldu->base.pref_width = dev_priv->initial_width; in vmw_ldu_init()
434 ldu->base.pref_height = dev_priv->initial_height; in vmw_ldu_init()
458 if (vmw_cmd_supported(dev_priv)) { in vmw_ldu_init()
501 vmw_cmd_supported(dev_priv) ? &cursor->base : NULL, in vmw_ldu_init()
513 dev_priv->hotplug_mode_update_property, 1); in vmw_ldu_init()
518 if (dev_priv->implicit_placement_property) in vmw_ldu_init()
521 dev_priv->implicit_placement_property, in vmw_ldu_init()
539 int vmw_kms_ldu_init_display(struct vmw_private *dev_priv) in vmw_kms_ldu_init_display() argument
541 struct drm_device *dev = &dev_priv->drm; in vmw_kms_ldu_init_display()
543 int num_display_units = (dev_priv->capabilities & SVGA_CAP_MULTIMON) ? in vmw_kms_ldu_init_display()
546 if (unlikely(dev_priv->ldu_priv)) { in vmw_kms_ldu_init_display()
550 dev_priv->ldu_priv = kmalloc(sizeof(*dev_priv->ldu_priv), GFP_KERNEL); in vmw_kms_ldu_init_display()
551 if (!dev_priv->ldu_priv) in vmw_kms_ldu_init_display()
554 INIT_LIST_HEAD(&dev_priv->ldu_priv->active); in vmw_kms_ldu_init_display()
555 dev_priv->ldu_priv->num_active = 0; in vmw_kms_ldu_init_display()
556 dev_priv->ldu_priv->last_num_active = 0; in vmw_kms_ldu_init_display()
557 dev_priv->ldu_priv->fb = NULL; in vmw_kms_ldu_init_display()
559 vmw_kms_create_implicit_placement_property(dev_priv); in vmw_kms_ldu_init_display()
562 ret = vmw_ldu_init(dev_priv, i); in vmw_kms_ldu_init_display()
567 dev_priv->active_display_unit = vmw_du_legacy; in vmw_kms_ldu_init_display()
574 kfree(dev_priv->ldu_priv); in vmw_kms_ldu_init_display()
575 dev_priv->ldu_priv = NULL; in vmw_kms_ldu_init_display()
579 int vmw_kms_ldu_close_display(struct vmw_private *dev_priv) in vmw_kms_ldu_close_display() argument
581 if (!dev_priv->ldu_priv) in vmw_kms_ldu_close_display()
584 BUG_ON(!list_empty(&dev_priv->ldu_priv->active)); in vmw_kms_ldu_close_display()
586 kfree(dev_priv->ldu_priv); in vmw_kms_ldu_close_display()
592 static int vmw_kms_ldu_do_bo_dirty(struct vmw_private *dev_priv, in vmw_kms_ldu_do_bo_dirty() argument
607 cmd = VMW_CMD_RESERVE(dev_priv, fifo_size); in vmw_kms_ldu_do_bo_dirty()
620 vmw_cmd_commit(dev_priv, fifo_size); in vmw_kms_ldu_do_bo_dirty()