Lines Matching defs:stdu
129 static void vmw_stdu_destroy(struct vmw_screen_target_display_unit *stdu);
152 * @stdu: display unit to create a Screen Target for
164 struct vmw_screen_target_display_unit *stdu,
180 cmd->body.stid = stdu->base.unit;
188 stdu->base.set_gui_x = cmd->body.xRoot;
189 stdu->base.set_gui_y = cmd->body.yRoot;
193 stdu->defined = true;
194 stdu->display_width = mode->hdisplay;
195 stdu->display_height = mode->vdisplay;
206 * @stdu: display unit affected
212 struct vmw_screen_target_display_unit *stdu,
223 if (!stdu->defined) {
239 cmd->body.stid = stdu->base.unit;
277 * @stdu: display unit affected
287 struct vmw_screen_target_display_unit *stdu)
291 if (!stdu->defined) {
300 vmw_stdu_populate_update(cmd, stdu->base.unit,
301 0, stdu->display_width,
302 0, stdu->display_height);
315 * @stdu: display unit to destroy
318 struct vmw_screen_target_display_unit *stdu)
329 if (unlikely(!stdu->defined))
339 cmd->body.stid = stdu->base.unit;
348 stdu->defined = false;
349 stdu->display_width = 0;
350 stdu->display_height = 0;
367 struct vmw_screen_target_display_unit *stdu;
372 stdu = vmw_crtc_to_stdu(crtc);
374 conn_state = stdu->base.connector.state;
377 if (stdu->defined) {
378 ret = vmw_stdu_bind_st(dev_priv, stdu, NULL);
382 (void) vmw_stdu_update_st(dev_priv, stdu);
384 ret = vmw_stdu_destroy_st(dev_priv, stdu);
388 stdu->content_fb_type = SAME_AS_DISPLAY;
398 ret = vmw_stdu_define_st(dev_priv, stdu, &crtc->mode, x, y);
419 struct vmw_screen_target_display_unit *stdu;
428 stdu = vmw_crtc_to_stdu(crtc);
431 if (stdu->defined) {
432 ret = vmw_stdu_bind_st(dev_priv, stdu, NULL);
436 (void) vmw_stdu_update_st(dev_priv, stdu);
438 ret = vmw_stdu_destroy_st(dev_priv, stdu);
442 stdu->content_fb_type = SAME_AS_DISPLAY;
493 struct vmw_screen_target_display_unit *stdu =
494 container_of(dirty->unit, typeof(*stdu), base);
510 cmd->body.host.sid = stdu->display_srf->res.id;
520 vmw_stdu_populate_update(&suffix[1], stdu->base.unit,
527 stdu->display_srf->res.res_dirty = true;
575 struct vmw_screen_target_display_unit *stdu =
576 container_of(dirty->unit, typeof(*stdu), base);
581 struct vmw_diff_cpy diff = VMW_CPU_BLIT_DIFF_INITIALIZER(stdu->cpp);
593 dst_pitch = stdu->display_srf->metadata.base_size.width * stdu->cpp;
594 dst_bo = &stdu->display_srf->res.backup->base;
595 dst_offset = ddirty->top * dst_pitch + ddirty->left * stdu->cpp;
599 src_offset = ddirty->fb_top * src_pitch + ddirty->fb_left * stdu->cpp;
610 width * stdu->cpp, height, &diff);
624 ret = vmw_kms_update_proxy(&stdu->display_srf->res, ®ion,
630 dev_priv = vmw_priv(stdu->base.crtc.dev);
635 vmw_stdu_populate_update(cmd, stdu->base.unit,
663 * @crtc: If crtc is passed, perform stdu dma on that crtc only.
752 struct vmw_screen_target_display_unit *stdu =
753 container_of(dirty->unit, typeof(*stdu), base);
755 if (sdirty->sid != stdu->display_srf->res.id) {
790 struct vmw_screen_target_display_unit *stdu =
791 container_of(dirty->unit, typeof(*stdu), base);
802 if (sdirty->sid != stdu->display_srf->res.id) {
808 cmd->body.dest.sid = stdu->display_srf->res.id;
811 stdu->display_srf->res.res_dirty = true;
817 vmw_stdu_populate_update(update, stdu->base.unit, sdirty->left,
1190 struct vmw_screen_target_display_unit *stdu;
1194 stdu = container_of(update->du, typeof(*stdu), base);
1203 cmd_dma->body.host.sid = stdu->display_srf->res.id;
1233 struct vmw_screen_target_display_unit *stdu;
1237 stdu = container_of(update->du, typeof(*stdu), base);
1243 vmw_stdu_populate_update(&suffix[1], stdu->base.unit, bb->x1, bb->x2,
1279 struct vmw_screen_target_display_unit *stdu;
1290 stdu = container_of(update->du, typeof(*stdu), base);
1296 diff.cpp = stdu->cpp;
1298 dst_bo = &stdu->display_srf->res.backup->base;
1299 dst_pitch = stdu->display_srf->metadata.base_size.width * stdu->cpp;
1300 dst_offset = bb->y1 * dst_pitch + bb->x1 * stdu->cpp;
1305 stdu->cpp;
1308 src_offset, src_pitch, width * stdu->cpp, height,
1316 cmd_img->body.image.sid = stdu->display_srf->res.id;
1328 vmw_stdu_populate_update(cmd_update, stdu->base.unit,
1467 struct vmw_screen_target_display_unit *stdu;
1471 stdu = container_of(update->du, typeof(*stdu), base);
1478 cmd_copy->body.dest.sid = stdu->display_srf->res.id;
1532 struct vmw_screen_target_display_unit *stdu;
1535 stdu = vmw_crtc_to_stdu(plane->state->crtc);
1552 if (vfbs->surface->res.id != stdu->display_srf->res.id) {
1571 * Formally update stdu->display_srf to the new plane, and bind the new
1582 struct vmw_screen_target_display_unit *stdu;
1592 stdu = vmw_crtc_to_stdu(crtc);
1595 stdu->display_srf = vps->surf;
1596 stdu->content_fb_type = vps->content_fb_type;
1597 stdu->cpp = vps->cpp;
1599 ret = vmw_stdu_bind_st(dev_priv, stdu, &stdu->display_srf->res);
1614 stdu = vmw_crtc_to_stdu(crtc);
1618 if (!stdu->defined)
1621 ret = vmw_stdu_bind_st(dev_priv, stdu, NULL);
1625 ret = vmw_stdu_update_st(dev_priv, stdu);
1715 struct vmw_screen_target_display_unit *stdu;
1724 stdu = kzalloc(sizeof(*stdu), GFP_KERNEL);
1725 if (!stdu)
1728 stdu->base.unit = unit;
1729 crtc = &stdu->base.crtc;
1730 encoder = &stdu->base.encoder;
1731 connector = &stdu->base.connector;
1732 primary = &stdu->base.primary;
1733 cursor = &stdu->base.cursor;
1735 stdu->base.pref_active = (unit == 0);
1736 stdu->base.pref_width = dev_priv->initial_width;
1737 stdu->base.pref_height = dev_priv->initial_height;
1738 stdu->base.is_implicit = false;
1762 drm_plane_cleanup(&stdu->base.primary);
1795 ret = drm_crtc_init_with_planes(dev, crtc, &stdu->base.primary,
1796 &stdu->base.cursor,
1822 kfree(stdu);
1831 * @stdu: Screen Target Display Unit to be destroyed
1835 static void vmw_stdu_destroy(struct vmw_screen_target_display_unit *stdu)
1837 vmw_du_cleanup(&stdu->base);
1838 kfree(stdu);