Lines Matching refs:sou
57 static void vmw_sou_destroy(struct vmw_screen_object_unit *sou) in vmw_sou_destroy() argument
59 vmw_display_unit_cleanup(&sou->base); in vmw_sou_destroy()
60 kfree(sou); in vmw_sou_destroy()
74 struct vmw_screen_object_unit *sou) in vmw_sou_del_active() argument
78 if (sou->active_implicit) { in vmw_sou_del_active()
81 sou->active_implicit = false; in vmw_sou_del_active()
86 struct vmw_screen_object_unit *sou, in vmw_sou_add_active() argument
93 if (!sou->active_implicit && sou->base.is_implicit) { in vmw_sou_add_active()
95 sou->active_implicit = true; in vmw_sou_add_active()
104 struct vmw_screen_object_unit *sou, in vmw_sou_fifo_create() argument
117 BUG_ON(!sou->buffer); in vmw_sou_fifo_create()
130 cmd->obj.id = sou->base.unit; in vmw_sou_fifo_create()
132 (sou->base.unit == 0 ? SVGA_SCREEN_IS_PRIMARY : 0); in vmw_sou_fifo_create()
135 if (sou->base.is_implicit) { in vmw_sou_fifo_create()
139 cmd->obj.root.x = sou->base.gui_x; in vmw_sou_fifo_create()
140 cmd->obj.root.y = sou->base.gui_y; in vmw_sou_fifo_create()
144 vmw_bo_get_guest_ptr(&sou->buffer->base, &cmd->obj.backingStore.ptr); in vmw_sou_fifo_create()
149 sou->defined = true; in vmw_sou_fifo_create()
158 struct vmw_screen_object_unit *sou) in vmw_sou_fifo_destroy() argument
171 if (unlikely(!sou->defined)) in vmw_sou_fifo_destroy()
184 cmd->body.screenId = sou->base.unit; in vmw_sou_fifo_destroy()
193 sou->defined = false; in vmw_sou_fifo_destroy()
202 struct vmw_screen_object_unit *sou) in vmw_sou_backing_free() argument
206 if (unlikely(sou->buffer == NULL)) in vmw_sou_backing_free()
209 bo = &sou->buffer->base; in vmw_sou_backing_free()
211 sou->buffer = NULL; in vmw_sou_backing_free()
212 sou->buffer_size = 0; in vmw_sou_backing_free()
219 struct vmw_screen_object_unit *sou, in vmw_sou_backing_alloc() argument
224 if (sou->buffer_size == size) in vmw_sou_backing_alloc()
227 if (sou->buffer) in vmw_sou_backing_alloc()
228 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_backing_alloc()
230 sou->buffer = kzalloc(sizeof(*sou->buffer), GFP_KERNEL); in vmw_sou_backing_alloc()
231 if (unlikely(sou->buffer == NULL)) in vmw_sou_backing_alloc()
238 ret = vmw_dmabuf_init(dev_priv, sou->buffer, size, in vmw_sou_backing_alloc()
244 sou->buffer = NULL; /* vmw_dmabuf_init frees on error */ in vmw_sou_backing_alloc()
246 sou->buffer_size = size; in vmw_sou_backing_alloc()
254 struct vmw_screen_object_unit *sou; in vmw_sou_crtc_set_config() local
271 sou = vmw_crtc_to_sou(crtc); in vmw_sou_crtc_set_config()
281 set->connectors[0] != &sou->base.connector) { in vmw_sou_crtc_set_config()
283 set->connectors[0], &sou->base.connector); in vmw_sou_crtc_set_config()
288 if (sou->base.is_implicit && in vmw_sou_crtc_set_config()
291 sou->active_implicit) && in vmw_sou_crtc_set_config()
298 connector = &sou->base.connector; in vmw_sou_crtc_set_config()
299 encoder = &sou->base.encoder; in vmw_sou_crtc_set_config()
303 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
314 vmw_sou_del_active(dev_priv, sou); in vmw_sou_crtc_set_config()
316 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
340 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
345 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
348 if (!sou->buffer) { in vmw_sou_crtc_set_config()
351 ret = vmw_sou_backing_alloc(dev_priv, sou, size); in vmw_sou_crtc_set_config()
356 ret = vmw_sou_fifo_create(dev_priv, sou, set->x, set->y, mode); in vmw_sou_crtc_set_config()
365 if (sou->defined) in vmw_sou_crtc_set_config()
377 vmw_sou_add_active(dev_priv, sou, vfb); in vmw_sou_crtc_set_config()
434 struct vmw_screen_object_unit *sou; in vmw_sou_init() local
440 sou = kzalloc(sizeof(*sou), GFP_KERNEL); in vmw_sou_init()
441 if (!sou) in vmw_sou_init()
444 sou->base.unit = unit; in vmw_sou_init()
445 crtc = &sou->base.crtc; in vmw_sou_init()
446 encoder = &sou->base.encoder; in vmw_sou_init()
447 connector = &sou->base.connector; in vmw_sou_init()
449 sou->active_implicit = false; in vmw_sou_init()
451 sou->base.pref_active = (unit == 0); in vmw_sou_init()
452 sou->base.pref_width = dev_priv->initial_width; in vmw_sou_init()
453 sou->base.pref_height = dev_priv->initial_height; in vmw_sou_init()
454 sou->base.pref_mode = NULL; in vmw_sou_init()
455 sou->base.is_implicit = true; in vmw_sou_init()
547 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_kms_screen_object_flippable() local
549 if (!sou->base.is_implicit) in vmw_kms_screen_object_flippable()
565 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_kms_screen_object_update_implicit_fb() local
567 BUG_ON(!sou->base.is_implicit); in vmw_kms_screen_object_update_implicit_fb()
570 vmw_framebuffer_to_vfb(sou->base.crtc.fb); in vmw_kms_screen_object_update_implicit_fb()