Lines Matching refs:dev_priv

50 int vmw_cursor_update_image(struct vmw_private *dev_priv,  in vmw_cursor_update_image()  argument
64 cmd = vmw_fifo_reserve(dev_priv, cmd_size); in vmw_cursor_update_image()
81 vmw_fifo_commit_flush(dev_priv, cmd_size); in vmw_cursor_update_image()
86 int vmw_cursor_update_dmabuf(struct vmw_private *dev_priv, in vmw_cursor_update_dmabuf() argument
112 ret = vmw_cursor_update_image(dev_priv, virtual, width, height, in vmw_cursor_update_dmabuf()
123 void vmw_cursor_update_position(struct vmw_private *dev_priv, in vmw_cursor_update_position() argument
126 u32 *fifo_mem = dev_priv->mmio_virt; in vmw_cursor_update_position()
144 struct vmw_private *dev_priv = vmw_priv(crtc->dev); in vmw_du_crtc_cursor_set2() local
159 drm_modeset_lock_all(dev_priv->dev); in vmw_du_crtc_cursor_set2()
172 ret = vmw_user_lookup_handle(dev_priv, tfile, in vmw_du_crtc_cursor_set2()
205 ret = vmw_cursor_update_image(dev_priv, surface->snooper.image, in vmw_du_crtc_cursor_set2()
211 ret = vmw_cursor_update_dmabuf(dev_priv, dmabuf, width, height, in vmw_du_crtc_cursor_set2()
214 vmw_cursor_update_position(dev_priv, false, 0, 0); in vmw_du_crtc_cursor_set2()
219 vmw_cursor_update_position(dev_priv, true, in vmw_du_crtc_cursor_set2()
227 drm_modeset_unlock_all(dev_priv->dev); in vmw_du_crtc_cursor_set2()
235 struct vmw_private *dev_priv = vmw_priv(crtc->dev); in vmw_du_crtc_cursor_move() local
250 drm_modeset_lock_all(dev_priv->dev); in vmw_du_crtc_cursor_move()
252 vmw_cursor_update_position(dev_priv, shown, in vmw_du_crtc_cursor_move()
258 drm_modeset_unlock_all(dev_priv->dev); in vmw_du_crtc_cursor_move()
357 void vmw_kms_legacy_hotspot_clear(struct vmw_private *dev_priv) in vmw_kms_legacy_hotspot_clear() argument
359 struct drm_device *dev = dev_priv->dev; in vmw_kms_legacy_hotspot_clear()
373 void vmw_kms_cursor_post_execbuf(struct vmw_private *dev_priv) in vmw_kms_cursor_post_execbuf() argument
375 struct drm_device *dev = dev_priv->dev; in vmw_kms_cursor_post_execbuf()
388 vmw_cursor_update_image(dev_priv, in vmw_kms_cursor_post_execbuf()
425 struct vmw_private *dev_priv = vmw_priv(framebuffer->dev); in vmw_framebuffer_surface_dirty() local
432 if (dev_priv->active_display_unit == vmw_du_legacy) in vmw_framebuffer_surface_dirty()
435 drm_modeset_lock_all(dev_priv->dev); in vmw_framebuffer_surface_dirty()
437 ret = ttm_read_lock(&dev_priv->reservation_sem, true); in vmw_framebuffer_surface_dirty()
439 drm_modeset_unlock_all(dev_priv->dev); in vmw_framebuffer_surface_dirty()
454 if (dev_priv->active_display_unit == vmw_du_screen_object) in vmw_framebuffer_surface_dirty()
455 ret = vmw_kms_sou_do_surface_dirty(dev_priv, &vfbs->base, in vmw_framebuffer_surface_dirty()
459 ret = vmw_kms_stdu_surface_dirty(dev_priv, &vfbs->base, in vmw_framebuffer_surface_dirty()
463 vmw_fifo_flush(dev_priv, false); in vmw_framebuffer_surface_dirty()
464 ttm_read_unlock(&dev_priv->reservation_sem); in vmw_framebuffer_surface_dirty()
466 drm_modeset_unlock_all(dev_priv->dev); in vmw_framebuffer_surface_dirty()
487 int vmw_kms_readback(struct vmw_private *dev_priv, in vmw_kms_readback() argument
494 switch (dev_priv->active_display_unit) { in vmw_kms_readback()
496 return vmw_kms_sou_readback(dev_priv, file_priv, vfb, in vmw_kms_readback()
499 return vmw_kms_stdu_dma(dev_priv, file_priv, vfb, in vmw_kms_readback()
516 static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv, in vmw_kms_new_framebuffer_surface() argument
524 struct drm_device *dev = dev_priv->dev; in vmw_kms_new_framebuffer_surface()
530 if (dev_priv->active_display_unit == vmw_du_legacy) in vmw_kms_new_framebuffer_surface()
573 if (!dev_priv->has_dx && format != surface->format) { in vmw_kms_new_framebuffer_surface()
633 struct vmw_private *dev_priv = vmw_priv(framebuffer->dev); in vmw_framebuffer_dmabuf_dirty() local
639 drm_modeset_lock_all(dev_priv->dev); in vmw_framebuffer_dmabuf_dirty()
641 ret = ttm_read_lock(&dev_priv->reservation_sem, true); in vmw_framebuffer_dmabuf_dirty()
643 drm_modeset_unlock_all(dev_priv->dev); in vmw_framebuffer_dmabuf_dirty()
658 switch (dev_priv->active_display_unit) { in vmw_framebuffer_dmabuf_dirty()
660 ret = vmw_kms_stdu_dma(dev_priv, NULL, &vfbd->base, NULL, in vmw_framebuffer_dmabuf_dirty()
665 ret = vmw_kms_sou_do_dmabuf_dirty(dev_priv, &vfbd->base, in vmw_framebuffer_dmabuf_dirty()
671 ret = vmw_kms_ldu_do_dmabuf_dirty(dev_priv, &vfbd->base, 0, 0, in vmw_framebuffer_dmabuf_dirty()
680 vmw_fifo_flush(dev_priv, false); in vmw_framebuffer_dmabuf_dirty()
681 ttm_read_unlock(&dev_priv->reservation_sem); in vmw_framebuffer_dmabuf_dirty()
683 drm_modeset_unlock_all(dev_priv->dev); in vmw_framebuffer_dmabuf_dirty()
698 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev); in vmw_framebuffer_pin() local
708 switch (dev_priv->active_display_unit) { in vmw_framebuffer_pin()
710 vmw_overlay_pause_all(dev_priv); in vmw_framebuffer_pin()
711 ret = vmw_dmabuf_pin_in_start_of_vram(dev_priv, buf, false); in vmw_framebuffer_pin()
712 vmw_overlay_resume_all(dev_priv); in vmw_framebuffer_pin()
717 return vmw_dmabuf_pin_in_vram_or_gmr(dev_priv, buf, in vmw_framebuffer_pin()
720 return vmw_dmabuf_pin_in_placement(dev_priv, buf, in vmw_framebuffer_pin()
731 struct vmw_private *dev_priv = vmw_priv(vfb->base.dev); in vmw_framebuffer_unpin() local
740 return vmw_dmabuf_unpin(dev_priv, buf, false); in vmw_framebuffer_unpin()
814 mutex_lock(&res->dev_priv->cmdbuf_mutex); in vmw_create_dmabuf_proxy()
820 mutex_unlock(&res->dev_priv->cmdbuf_mutex); in vmw_create_dmabuf_proxy()
827 static int vmw_kms_new_framebuffer_dmabuf(struct vmw_private *dev_priv, in vmw_kms_new_framebuffer_dmabuf() argument
834 struct drm_device *dev = dev_priv->dev; in vmw_kms_new_framebuffer_dmabuf()
847 if (dev_priv->active_display_unit == vmw_du_screen_object) { in vmw_kms_new_framebuffer_dmabuf()
916 vmw_kms_new_framebuffer(struct vmw_private *dev_priv, in vmw_kms_new_framebuffer() argument
932 dev_priv->active_display_unit == vmw_du_screen_target) { in vmw_kms_new_framebuffer()
933 ret = vmw_create_dmabuf_proxy(dev_priv->dev, mode_cmd, in vmw_kms_new_framebuffer()
943 ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb, in vmw_kms_new_framebuffer()
954 ret = vmw_kms_new_framebuffer_dmabuf(dev_priv, dmabuf, &vfb, in vmw_kms_new_framebuffer()
977 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_kms_fb_create() local
999 if (!vmw_kms_validate_mode_vram(dev_priv, in vmw_kms_fb_create()
1026 ret = vmw_user_lookup_handle(dev_priv, tfile, in vmw_kms_fb_create()
1032 vfb = vmw_kms_new_framebuffer(dev_priv, bo, surface, in vmw_kms_fb_create()
1033 !(dev_priv->capabilities & SVGA_CAP_3D), in vmw_kms_fb_create()
1061 static int vmw_kms_generic_present(struct vmw_private *dev_priv, in vmw_kms_generic_present() argument
1070 return vmw_kms_sou_do_surface_dirty(dev_priv, vfb, NULL, clips, in vmw_kms_generic_present()
1076 int vmw_kms_present(struct vmw_private *dev_priv, in vmw_kms_present() argument
1087 switch (dev_priv->active_display_unit) { in vmw_kms_present()
1089 ret = vmw_kms_stdu_surface_dirty(dev_priv, vfb, NULL, clips, in vmw_kms_present()
1094 ret = vmw_kms_generic_present(dev_priv, file_priv, vfb, surface, in vmw_kms_present()
1107 vmw_fifo_flush(dev_priv, false); in vmw_kms_present()
1112 int vmw_kms_init(struct vmw_private *dev_priv) in vmw_kms_init() argument
1114 struct drm_device *dev = dev_priv->dev; in vmw_kms_init()
1121 dev->mode_config.max_width = dev_priv->texture_max_width; in vmw_kms_init()
1122 dev->mode_config.max_height = dev_priv->texture_max_height; in vmw_kms_init()
1124 ret = vmw_kms_stdu_init_display(dev_priv); in vmw_kms_init()
1126 ret = vmw_kms_sou_init_display(dev_priv); in vmw_kms_init()
1128 ret = vmw_kms_ldu_init_display(dev_priv); in vmw_kms_init()
1134 int vmw_kms_close(struct vmw_private *dev_priv) in vmw_kms_close() argument
1143 drm_mode_config_cleanup(dev_priv->dev); in vmw_kms_close()
1144 if (dev_priv->active_display_unit == vmw_du_screen_object) in vmw_kms_close()
1145 ret = vmw_kms_sou_close_display(dev_priv); in vmw_kms_close()
1146 else if (dev_priv->active_display_unit == vmw_du_screen_target) in vmw_kms_close()
1147 ret = vmw_kms_stdu_close_display(dev_priv); in vmw_kms_close()
1149 ret = vmw_kms_ldu_close_display(dev_priv); in vmw_kms_close()
1296 bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv, in vmw_kms_validate_mode_vram() argument
1301 ((dev_priv->active_display_unit == vmw_du_screen_target) ? in vmw_kms_validate_mode_vram()
1302 dev_priv->prim_bb_mem : dev_priv->vram_size); in vmw_kms_validate_mode_vram()
1334 static int vmw_du_update_layout(struct vmw_private *dev_priv, unsigned num, in vmw_du_update_layout() argument
1337 struct drm_device *dev = dev_priv->dev; in vmw_du_update_layout()
1388 struct vmw_private *dev_priv = vmw_priv(crtc->dev); in vmw_du_crtc_gamma_set() local
1394 vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 0, r[i] >> 8); in vmw_du_crtc_gamma_set()
1395 vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 1, g[i] >> 8); in vmw_du_crtc_gamma_set()
1396 vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 2, b[i] >> 8); in vmw_du_crtc_gamma_set()
1418 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_du_connector_detect() local
1421 num_displays = vmw_read(dev_priv, SVGA_REG_NUM_DISPLAYS); in vmw_du_connector_detect()
1532 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_du_connector_fill_modes() local
1547 if (dev_priv->active_display_unit == vmw_du_screen_object) in vmw_du_connector_fill_modes()
1550 if (dev_priv->active_display_unit == vmw_du_screen_target) { in vmw_du_connector_fill_modes()
1551 max_width = min(max_width, dev_priv->stdu_max_width); in vmw_du_connector_fill_modes()
1552 max_height = min(max_height, dev_priv->stdu_max_height); in vmw_du_connector_fill_modes()
1563 if (vmw_kms_validate_mode_vram(dev_priv, in vmw_du_connector_fill_modes()
1586 if (!vmw_kms_validate_mode_vram(dev_priv, in vmw_du_connector_fill_modes()
1617 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_kms_update_layout_ioctl() local
1631 vmw_du_update_layout(dev_priv, 1, &def_rect); in vmw_kms_update_layout_ioctl()
1672 if (dev_priv->active_display_unit == vmw_du_screen_target) { in vmw_kms_update_layout_ioctl()
1681 if (bb_mem > dev_priv->prim_bb_mem) { in vmw_kms_update_layout_ioctl()
1687 if (pixel_mem > dev_priv->prim_bb_mem) { in vmw_kms_update_layout_ioctl()
1694 vmw_du_update_layout(dev_priv, arg->num_outputs, rects); in vmw_kms_update_layout_ioctl()
1718 int vmw_kms_helper_dirty(struct vmw_private *dev_priv, in vmw_kms_helper_dirty() argument
1732 dirty->dev_priv = dev_priv; in vmw_kms_helper_dirty()
1734 list_for_each_entry(crtc, &dev_priv->dev->mode_config.crtc_list, head) { in vmw_kms_helper_dirty()
1751 dirty->cmd = vmw_fifo_reserve(dev_priv, in vmw_kms_helper_dirty()
1833 int vmw_kms_helper_buffer_prepare(struct vmw_private *dev_priv, in vmw_kms_helper_buffer_prepare() argument
1842 ret = vmw_validate_single_buffer(dev_priv, bo, interruptible, in vmw_kms_helper_buffer_prepare()
1880 void vmw_kms_helper_buffer_finish(struct vmw_private *dev_priv, in vmw_kms_helper_buffer_finish() argument
1891 ret = vmw_execbuf_fence_commands(file_priv, dev_priv, &fence, in vmw_kms_helper_buffer_finish()
1896 vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv), in vmw_kms_helper_buffer_finish()
1921 mutex_unlock(&res->dev_priv->cmdbuf_mutex); in vmw_kms_helper_resource_revert()
1941 ret = mutex_lock_interruptible(&res->dev_priv->cmdbuf_mutex); in vmw_kms_helper_resource_prepare()
1943 mutex_lock(&res->dev_priv->cmdbuf_mutex); in vmw_kms_helper_resource_prepare()
1953 ret = vmw_kms_helper_buffer_prepare(res->dev_priv, res->backup, in vmw_kms_helper_resource_prepare()
1955 res->dev_priv->has_mob); in vmw_kms_helper_resource_prepare()
1969 mutex_unlock(&res->dev_priv->cmdbuf_mutex); in vmw_kms_helper_resource_prepare()
1985 vmw_kms_helper_buffer_finish(res->dev_priv, NULL, res->backup, in vmw_kms_helper_resource_finish()
1989 mutex_unlock(&res->dev_priv->cmdbuf_mutex); in vmw_kms_helper_resource_finish()
2011 struct vmw_private *dev_priv = res->dev_priv; in vmw_kms_update_proxy() local
2024 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd) * num_clips); in vmw_kms_update_proxy()
2056 vmw_fifo_commit(dev_priv, copy_size); in vmw_kms_update_proxy()
2061 int vmw_kms_fbdev_init_data(struct vmw_private *dev_priv, in vmw_kms_fbdev_init_data() argument
2074 list_for_each_entry(con, &dev_priv->dev->mode_config.connector_list, in vmw_kms_fbdev_init_data()