Lines Matching refs:sou

103 static void vmw_sou_destroy(struct vmw_screen_object_unit *sou)  in vmw_sou_destroy()  argument
105 vmw_du_cleanup(&sou->base); in vmw_sou_destroy()
106 kfree(sou); in vmw_sou_destroy()
120 struct vmw_screen_object_unit *sou) in vmw_sou_del_active() argument
124 if (sou->active_implicit) { in vmw_sou_del_active()
127 sou->active_implicit = false; in vmw_sou_del_active()
132 struct vmw_screen_object_unit *sou, in vmw_sou_add_active() argument
139 if (!sou->active_implicit && sou->base.is_implicit) { in vmw_sou_add_active()
141 sou->active_implicit = true; in vmw_sou_add_active()
150 struct vmw_screen_object_unit *sou, in vmw_sou_fifo_create() argument
163 BUG_ON(!sou->buffer); in vmw_sou_fifo_create()
176 cmd->obj.id = sou->base.unit; in vmw_sou_fifo_create()
178 (sou->base.unit == 0 ? SVGA_SCREEN_IS_PRIMARY : 0); in vmw_sou_fifo_create()
181 if (sou->base.is_implicit) { in vmw_sou_fifo_create()
185 cmd->obj.root.x = sou->base.gui_x; in vmw_sou_fifo_create()
186 cmd->obj.root.y = sou->base.gui_y; in vmw_sou_fifo_create()
190 vmw_bo_get_guest_ptr(&sou->buffer->base, &cmd->obj.backingStore.ptr); in vmw_sou_fifo_create()
195 sou->defined = true; in vmw_sou_fifo_create()
204 struct vmw_screen_object_unit *sou) in vmw_sou_fifo_destroy() argument
217 if (unlikely(!sou->defined)) in vmw_sou_fifo_destroy()
230 cmd->body.screenId = sou->base.unit; in vmw_sou_fifo_destroy()
239 sou->defined = false; in vmw_sou_fifo_destroy()
248 struct vmw_screen_object_unit *sou) in vmw_sou_backing_free() argument
250 vmw_dmabuf_unreference(&sou->buffer); in vmw_sou_backing_free()
251 sou->buffer_size = 0; in vmw_sou_backing_free()
258 struct vmw_screen_object_unit *sou, in vmw_sou_backing_alloc() argument
263 if (sou->buffer_size == size) in vmw_sou_backing_alloc()
266 if (sou->buffer) in vmw_sou_backing_alloc()
267 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_backing_alloc()
269 sou->buffer = kzalloc(sizeof(*sou->buffer), GFP_KERNEL); in vmw_sou_backing_alloc()
270 if (unlikely(sou->buffer == NULL)) in vmw_sou_backing_alloc()
277 ret = vmw_dmabuf_init(dev_priv, sou->buffer, size, in vmw_sou_backing_alloc()
283 sou->buffer = NULL; /* vmw_dmabuf_init frees on error */ in vmw_sou_backing_alloc()
285 sou->buffer_size = size; in vmw_sou_backing_alloc()
293 struct vmw_screen_object_unit *sou; in vmw_sou_crtc_set_config() local
310 sou = vmw_crtc_to_sou(crtc); in vmw_sou_crtc_set_config()
320 set->connectors[0] != &sou->base.connector) { in vmw_sou_crtc_set_config()
322 set->connectors[0], &sou->base.connector); in vmw_sou_crtc_set_config()
327 if (sou->base.is_implicit && in vmw_sou_crtc_set_config()
330 sou->active_implicit) && in vmw_sou_crtc_set_config()
337 connector = &sou->base.connector; in vmw_sou_crtc_set_config()
338 encoder = &sou->base.encoder; in vmw_sou_crtc_set_config()
342 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
354 vmw_sou_del_active(dev_priv, sou); in vmw_sou_crtc_set_config()
356 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
380 ret = vmw_sou_fifo_destroy(dev_priv, sou); in vmw_sou_crtc_set_config()
385 vmw_sou_backing_free(dev_priv, sou); in vmw_sou_crtc_set_config()
388 if (!sou->buffer) { in vmw_sou_crtc_set_config()
391 ret = vmw_sou_backing_alloc(dev_priv, sou, size); in vmw_sou_crtc_set_config()
396 ret = vmw_sou_fifo_create(dev_priv, sou, set->x, set->y, mode); in vmw_sou_crtc_set_config()
405 if (sou->defined) in vmw_sou_crtc_set_config()
418 vmw_sou_add_active(dev_priv, sou, vfb); in vmw_sou_crtc_set_config()
438 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_sou_screen_object_flippable() local
440 if (!sou->base.is_implicit) in vmw_sou_screen_object_flippable()
456 struct vmw_screen_object_unit *sou = vmw_crtc_to_sou(crtc); in vmw_sou_update_implicit_fb() local
458 BUG_ON(!sou->base.is_implicit); in vmw_sou_update_implicit_fb()
461 vmw_framebuffer_to_vfb(sou->base.crtc.primary->fb); in vmw_sou_update_implicit_fb()
578 struct vmw_screen_object_unit *sou; in vmw_sou_init() local
584 sou = kzalloc(sizeof(*sou), GFP_KERNEL); in vmw_sou_init()
585 if (!sou) in vmw_sou_init()
588 sou->base.unit = unit; in vmw_sou_init()
589 crtc = &sou->base.crtc; in vmw_sou_init()
590 encoder = &sou->base.encoder; in vmw_sou_init()
591 connector = &sou->base.connector; in vmw_sou_init()
593 sou->active_implicit = false; in vmw_sou_init()
595 sou->base.pref_active = (unit == 0); in vmw_sou_init()
596 sou->base.pref_width = dev_priv->initial_width; in vmw_sou_init()
597 sou->base.pref_height = dev_priv->initial_height; in vmw_sou_init()
598 sou->base.pref_mode = NULL; in vmw_sou_init()
599 sou->base.is_implicit = true; in vmw_sou_init()