Lines Matching refs:sou

58 static void vmw_sou_destroy(struct vmw_screen_object_unit *sou)  in vmw_sou_destroy()  argument
60 vmw_display_unit_cleanup(&sou->base); in vmw_sou_destroy()
61 kfree(sou); in vmw_sou_destroy()
75 struct vmw_screen_object_unit *sou) in vmw_sou_del_active() argument
79 if (sou->active_implicit) { in vmw_sou_del_active()
82 sou->active_implicit = false; in vmw_sou_del_active()
87 struct vmw_screen_object_unit *sou, in vmw_sou_add_active() argument
94 if (!sou->active_implicit && sou->base.is_implicit) { in vmw_sou_add_active()
96 sou->active_implicit = true; in vmw_sou_add_active()
105 struct vmw_screen_object_unit *sou, in vmw_sou_fifo_create() argument
118 BUG_ON(!sou->buffer); in vmw_sou_fifo_create()
131 cmd->obj.id = sou->base.unit; in vmw_sou_fifo_create()
133 (sou->base.unit == 0 ? SVGA_SCREEN_IS_PRIMARY : 0); in vmw_sou_fifo_create()
136 if (sou->base.is_implicit) { in vmw_sou_fifo_create()
140 cmd->obj.root.x = sou->base.gui_x; in vmw_sou_fifo_create()
141 cmd->obj.root.y = sou->base.gui_y; in vmw_sou_fifo_create()
145 vmw_bo_get_guest_ptr(&sou->buffer->base, &cmd->obj.backingStore.ptr); in vmw_sou_fifo_create()
150 sou->defined = true; in vmw_sou_fifo_create()
159 struct vmw_screen_object_unit *sou) in vmw_sou_fifo_destroy() argument
172 if (unlikely(!sou->defined)) in vmw_sou_fifo_destroy()
185 cmd->body.screenId = sou->base.unit; in vmw_sou_fifo_destroy()
194 sou->defined = false; in vmw_sou_fifo_destroy()
203 struct vmw_screen_object_unit *sou) in vmw_sou_backing_free() argument
207 if (unlikely(sou->buffer == NULL)) in vmw_sou_backing_free()
210 bo = &sou->buffer->base; in vmw_sou_backing_free()
212 sou->buffer = NULL; in vmw_sou_backing_free()
213 sou->buffer_size = 0; in vmw_sou_backing_free()
220 struct vmw_screen_object_unit *sou, in vmw_sou_backing_alloc() argument
225 if (sou->buffer_size == size) in vmw_sou_backing_alloc()
228 if (sou->buffer) in vmw_sou_backing_alloc()
229 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_backing_alloc()
231 sou->buffer = kzalloc(sizeof(*sou->buffer), GFP_KERNEL); in vmw_sou_backing_alloc()
232 if (unlikely(sou->buffer == NULL)) in vmw_sou_backing_alloc()
239 ret = vmw_dmabuf_init(dev_priv, sou->buffer, size, in vmw_sou_backing_alloc()
245 sou->buffer = NULL; /* vmw_dmabuf_init frees on error */ in vmw_sou_backing_alloc()
247 sou->buffer_size = size; in vmw_sou_backing_alloc()
255 struct vmw_screen_object_unit *sou; in vmw_sou_crtc_set_config() local
272 sou = vmw_crtc_to_sou(crtc); in vmw_sou_crtc_set_config()
282 set->connectors[0] != &sou->base.connector) { in vmw_sou_crtc_set_config()
284 set->connectors[0], &sou->base.connector); in vmw_sou_crtc_set_config()
289 if (sou->base.is_implicit && in vmw_sou_crtc_set_config()
292 sou->active_implicit) && in vmw_sou_crtc_set_config()
299 connector = &sou->base.connector; in vmw_sou_crtc_set_config()
300 encoder = &sou->base.encoder; 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()
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()
350 if (!sou->buffer) { 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()
367 if (sou->defined) in vmw_sou_crtc_set_config()
380 vmw_sou_add_active(dev_priv, sou, vfb); in vmw_sou_crtc_set_config()
438 struct vmw_screen_object_unit *sou; in vmw_sou_init() local
444 sou = kzalloc(sizeof(*sou), GFP_KERNEL); in vmw_sou_init()
445 if (!sou) in vmw_sou_init()
448 sou->base.unit = unit; in vmw_sou_init()
449 crtc = &sou->base.crtc; in vmw_sou_init()
450 encoder = &sou->base.encoder; in vmw_sou_init()
451 connector = &sou->base.connector; in vmw_sou_init()
453 sou->active_implicit = false; in vmw_sou_init()
455 sou->base.pref_active = (unit == 0); 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()
458 sou->base.pref_mode = NULL; in vmw_sou_init()
459 sou->base.is_implicit = true; in vmw_sou_init()
553 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_kms_screen_object_flippable() local
555 if (!sou->base.is_implicit) in vmw_kms_screen_object_flippable()
571 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_kms_screen_object_update_implicit_fb() local
573 BUG_ON(!sou->base.is_implicit); in vmw_kms_screen_object_update_implicit_fb()
576 vmw_framebuffer_to_vfb(sou->base.crtc.primary->fb); in vmw_kms_screen_object_update_implicit_fb()