Lines Matching defs:crtc

370 	struct drm_crtc *crtc;
376 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
377 if (crtc->fb == fb) {
378 /* should turn off the crtc */
380 set.crtc = crtc;
382 ret = crtc->funcs->set_config(&set);
384 DRM_ERROR("failed to reset crtc %p when fb was deleted\n", crtc);
390 /* should turn off the crtc */
394 /* disconnect the plane from the fb and crtc: */
396 plane->crtc = NULL;
409 * @crtc: CRTC object to init
415 * Inits a new object created as base part of an driver crtc object.
420 int drm_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
425 crtc->dev = dev;
426 crtc->funcs = funcs;
427 crtc->invert_dimensions = false;
431 ret = drm_mode_object_get(dev, &crtc->base, DRM_MODE_OBJECT_CRTC);
435 crtc->base.properties = &crtc->properties;
437 list_add_tail(&crtc->head, &dev->mode_config.crtc_list);
448 * drm_crtc_cleanup - Cleans up the core crtc usage.
449 * @crtc: CRTC to cleanup
454 * Cleanup @crtc. Removes from drm modesetting space
457 void drm_crtc_cleanup(struct drm_crtc *crtc)
459 struct drm_device *dev = crtc->dev;
461 free(crtc->gamma_store, DRM_MEM_KMS);
462 crtc->gamma_store = NULL;
464 drm_mode_object_put(dev, &crtc->base);
465 list_del(&crtc->head);
671 * for the scanout engine with the crtc implementation.
1018 struct drm_crtc *crtc;
1026 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
1027 group->id_list[group->num_crtcs++] = crtc->base.id;
1056 struct drm_crtc *crtc, *ct;
1092 list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) {
1093 crtc->funcs->destroy(crtc);
1204 struct drm_crtc *crtc;
1273 list_for_each_entry(crtc, &dev->mode_config.crtc_list,
1275 DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
1276 if (put_user(crtc->base.id, crtc_id + copied)) {
1388 struct drm_crtc *crtc;
1403 crtc = obj_to_crtc(obj);
1405 crtc_resp->x = crtc->x;
1406 crtc_resp->y = crtc->y;
1407 crtc_resp->gamma_size = crtc->gamma_size;
1408 if (crtc->fb)
1409 crtc_resp->fb_id = crtc->fb->base.id;
1413 if (crtc->enabled) {
1415 drm_crtc_convert_to_umode(&crtc_resp->mode, &crtc->mode);
1591 if (encoder->crtc)
1592 enc_resp->crtc_id = encoder->crtc->base.id;
1687 if (plane->crtc)
1688 plane_resp->crtc_id = plane->crtc->base.id;
1740 struct drm_crtc *crtc;
1752 * First, find the plane, crtc, and fb objects. If not available,
1768 plane->crtc = NULL;
1776 DRM_DEBUG_KMS("Unknown crtc ID %d\n",
1781 crtc = obj_to_crtc(obj);
1837 ret = plane->funcs->update_plane(plane, crtc, fb,
1843 plane->crtc = crtc;
1876 struct drm_crtc *crtc;
1888 /* For some reason crtc x/y offsets are signed internally. */
1900 crtc = obj_to_crtc(obj);
1901 DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
1908 if (!crtc->fb) {
1913 fb = crtc->fb;
1943 if (crtc->invert_dimensions) {
1957 crtc->invert_dimensions ? " (inverted)" : "");
2013 set.crtc = crtc;
2020 ret = crtc->funcs->set_config(&set);
2034 struct drm_crtc *crtc;
2050 crtc = obj_to_crtc(obj);
2053 if (!crtc->funcs->cursor_set) {
2058 ret = crtc->funcs->cursor_set(crtc, file_priv, req->handle,
2063 if (crtc->funcs->cursor_move) {
2064 ret = crtc->funcs->cursor_move(crtc, req->x, req->y);
2574 int drm_mode_attachmode_crtc(struct drm_device *dev, struct drm_crtc *crtc,
2585 if (connector->encoder->crtc == crtc) {
2598 if (connector->encoder->crtc == crtc)
3231 struct drm_crtc *crtc = obj_to_crtc(obj);
3233 if (crtc->funcs->set_property)
3234 ret = crtc->funcs->set_property(crtc, property, value);
3397 int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
3400 crtc->gamma_size = gamma_size;
3402 crtc->gamma_store = malloc(gamma_size * sizeof(uint16_t) * 3,
3414 struct drm_crtc *crtc;
3428 crtc = obj_to_crtc(obj);
3430 if (crtc->funcs->gamma_set == NULL) {
3436 if (crtc_lut->gamma_size != crtc->gamma_size) {
3442 r_base = crtc->gamma_store;
3460 crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, crtc->gamma_size);
3473 struct drm_crtc *crtc;
3487 crtc = obj_to_crtc(obj);
3490 if (crtc_lut->gamma_size != crtc->gamma_size) {
3496 r_base = crtc->gamma_store;
3530 struct drm_crtc *crtc;
3547 crtc = obj_to_crtc(obj);
3549 if (crtc->fb == NULL) {
3558 if (crtc->funcs->page_flip == NULL)
3566 hdisplay = crtc->mode.hdisplay;
3567 vdisplay = crtc->mode.vdisplay;
3569 if (crtc->invert_dimensions) {
3578 crtc->x > fb->width - hdisplay ||
3579 crtc->y > fb->height - vdisplay) {
3581 fb->width, fb->height, hdisplay, vdisplay, crtc->x, crtc->y,
3582 crtc->invert_dimensions ? " (inverted)" : "");
3607 ret = crtc->funcs->page_flip(crtc, fb, e);
3624 struct drm_crtc *crtc;
3628 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
3629 if (crtc->funcs->reset)
3630 crtc->funcs->reset(crtc);