Lines Matching refs:dev_priv

79 static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
81 struct vmw_legacy_display *lds = dev_priv->ldu_priv;
90 if (!(dev_priv->capabilities & SVGA_CAP_DISPLAY_TOPOLOGY)) {
102 return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
111 vmw_kms_write_svga(dev_priv, fb->width, fb->height, fb->pitches[0],
116 vmw_write(dev_priv, SVGA_REG_NUM_GUEST_DISPLAYS,
123 vmw_write(dev_priv, SVGA_REG_DISPLAY_ID, i);
124 vmw_write(dev_priv, SVGA_REG_DISPLAY_IS_PRIMARY, !i);
125 vmw_write(dev_priv, SVGA_REG_DISPLAY_POSITION_X, crtc->x);
126 vmw_write(dev_priv, SVGA_REG_DISPLAY_POSITION_Y, crtc->y);
127 vmw_write(dev_priv, SVGA_REG_DISPLAY_WIDTH, crtc->mode.hdisplay);
128 vmw_write(dev_priv, SVGA_REG_DISPLAY_HEIGHT, crtc->mode.vdisplay);
146 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev);
155 WARN_ON(dev_priv->active_display_unit != vmw_du_legacy);
157 if (dev_priv->active_display_unit == vmw_du_legacy) {
158 vmw_overlay_pause_all(dev_priv);
159 ret = vmw_bo_pin_in_start_of_vram(dev_priv, buf, false);
160 vmw_overlay_resume_all(dev_priv);
169 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev);
178 return vmw_bo_unpin(dev_priv, buf, false);
297 static int vmw_kms_ldu_do_bo_dirty(struct vmw_private *dev_priv,
315 struct vmw_private *dev_priv;
322 dev_priv = vmw_priv(plane->dev);
328 vmw_ldu_add_active(dev_priv, ldu, vfb);
330 vmw_ldu_del_active(dev_priv, ldu);
332 vmw_ldu_commit_list(dev_priv);
334 if (vfb && vmw_cmd_supported(dev_priv)) {
350 ret = vmw_kms_ldu_do_bo_dirty(dev_priv, vfb, 0, 0, damage_rects, rect_count);
355 vmw_cmd_flush(dev_priv, false);
404 static int vmw_ldu_init(struct vmw_private *dev_priv, unsigned unit)
407 struct drm_device *dev = &dev_priv->drm;
429 ldu->base.pref_width = dev_priv->initial_width;
430 ldu->base.pref_height = dev_priv->initial_height;
454 if (vmw_cmd_supported(dev_priv)) {
498 vmw_cmd_supported(dev_priv) ? &cursor->base : NULL,
510 dev_priv->hotplug_mode_update_property, 1);
515 if (dev_priv->implicit_placement_property)
518 dev_priv->implicit_placement_property,
536 int vmw_kms_ldu_init_display(struct vmw_private *dev_priv)
538 struct drm_device *dev = &dev_priv->drm;
540 int num_display_units = (dev_priv->capabilities & SVGA_CAP_MULTIMON) ?
543 if (unlikely(dev_priv->ldu_priv)) {
547 dev_priv->ldu_priv = kmalloc(sizeof(*dev_priv->ldu_priv), GFP_KERNEL);
548 if (!dev_priv->ldu_priv)
551 INIT_LIST_HEAD(&dev_priv->ldu_priv->active);
552 dev_priv->ldu_priv->num_active = 0;
553 dev_priv->ldu_priv->last_num_active = 0;
554 dev_priv->ldu_priv->fb = NULL;
556 vmw_kms_create_implicit_placement_property(dev_priv);
559 ret = vmw_ldu_init(dev_priv, i);
564 dev_priv->active_display_unit = vmw_du_legacy;
571 kfree(dev_priv->ldu_priv);
572 dev_priv->ldu_priv = NULL;
576 int vmw_kms_ldu_close_display(struct vmw_private *dev_priv)
578 if (!dev_priv->ldu_priv)
581 BUG_ON(!list_empty(&dev_priv->ldu_priv->active));
583 kfree(dev_priv->ldu_priv);
589 static int vmw_kms_ldu_do_bo_dirty(struct vmw_private *dev_priv,
604 cmd = VMW_CMD_RESERVE(dev_priv, fifo_size);
617 vmw_cmd_commit(dev_priv, fifo_size);