Lines Matching full:plane
371 struct drm_plane *plane; in drm_framebuffer_remove() local
388 list_for_each_entry(plane, &dev->mode_config.plane_list, head) { in drm_framebuffer_remove()
389 if (plane->fb == fb) { in drm_framebuffer_remove()
391 ret = plane->funcs->disable_plane(plane); in drm_framebuffer_remove()
393 DRM_ERROR("failed to disable plane with busy fb\n"); in drm_framebuffer_remove()
394 /* disconnect the plane from the fb and crtc: */ in drm_framebuffer_remove()
395 plane->fb = NULL; in drm_framebuffer_remove()
396 plane->crtc = NULL; in drm_framebuffer_remove()
646 int drm_plane_init(struct drm_device *dev, struct drm_plane *plane, in drm_plane_init() argument
656 ret = drm_mode_object_get(dev, &plane->base, DRM_MODE_OBJECT_PLANE); in drm_plane_init()
660 plane->base.properties = &plane->properties; in drm_plane_init()
661 plane->dev = dev; in drm_plane_init()
662 plane->funcs = funcs; in drm_plane_init()
663 plane->format_types = malloc(sizeof(uint32_t) * format_count, in drm_plane_init()
665 memcpy(plane->format_types, formats, format_count * sizeof(uint32_t)); in drm_plane_init()
666 plane->format_count = format_count; in drm_plane_init()
667 plane->possible_crtcs = possible_crtcs; in drm_plane_init()
674 list_add_tail(&plane->head, &dev->mode_config.plane_list); in drm_plane_init()
677 INIT_LIST_HEAD(&plane->head); in drm_plane_init()
687 void drm_plane_cleanup(struct drm_plane *plane) in drm_plane_cleanup() argument
689 struct drm_device *dev = plane->dev; in drm_plane_cleanup()
692 free(plane->format_types, DRM_MEM_KMS); in drm_plane_cleanup()
693 drm_mode_object_put(dev, &plane->base); in drm_plane_cleanup()
694 /* if not added to a list, it must be a private plane */ in drm_plane_cleanup()
695 if (!list_empty(&plane->head)) { in drm_plane_cleanup()
696 list_del(&plane->head); in drm_plane_cleanup()
1061 struct drm_plane *plane, *plt; in drm_mode_config_cleanup() local
1087 list_for_each_entry_safe(plane, plt, &dev->mode_config.plane_list, in drm_mode_config_cleanup()
1089 plane->funcs->destroy(plane); in drm_mode_config_cleanup()
1606 * drm_mode_getplane_res - get plane info
1614 * Return an plane count and set of IDs.
1621 struct drm_plane *plane; in drm_mode_getplane_res() local
1639 list_for_each_entry(plane, &config->plane_list, head) { in drm_mode_getplane_res()
1640 if (put_user(plane->base.id, plane_ptr + copied)) { in drm_mode_getplane_res()
1655 * drm_mode_getplane - get plane info
1663 * Return plane info, including formats supported, gamma size, any
1671 struct drm_plane *plane; in drm_mode_getplane() local
1685 plane = obj_to_plane(obj); in drm_mode_getplane()
1687 if (plane->crtc) in drm_mode_getplane()
1688 plane_resp->crtc_id = plane->crtc->base.id; in drm_mode_getplane()
1692 if (plane->fb) in drm_mode_getplane()
1693 plane_resp->fb_id = plane->fb->base.id; in drm_mode_getplane()
1697 plane_resp->plane_id = plane->base.id; in drm_mode_getplane()
1698 plane_resp->possible_crtcs = plane->possible_crtcs; in drm_mode_getplane()
1699 plane_resp->gamma_size = plane->gamma_size; in drm_mode_getplane()
1705 if (plane->format_count && in drm_mode_getplane()
1706 (plane_resp->count_format_types >= plane->format_count)) { in drm_mode_getplane()
1709 plane->format_types, in drm_mode_getplane()
1710 sizeof(uint32_t) * plane->format_count)) { in drm_mode_getplane()
1715 plane_resp->count_format_types = plane->format_count; in drm_mode_getplane()
1723 * drm_mode_setplane - set up or tear down an plane
1731 * Set plane info, including placement, fb, scaling, and other factors.
1739 struct drm_plane *plane; in drm_mode_setplane() local
1752 * First, find the plane, crtc, and fb objects. If not available, in drm_mode_setplane()
1758 DRM_DEBUG_KMS("Unknown plane ID %d\n", in drm_mode_setplane()
1763 plane = obj_to_plane(obj); in drm_mode_setplane()
1767 plane->funcs->disable_plane(plane); in drm_mode_setplane()
1768 plane->crtc = NULL; in drm_mode_setplane()
1769 plane->fb = NULL; in drm_mode_setplane()
1793 /* Check whether this plane supports the fb pixel format. */ in drm_mode_setplane()
1794 for (i = 0; i < plane->format_count; i++) in drm_mode_setplane()
1795 if (fb->pixel_format == plane->format_types[i]) in drm_mode_setplane()
1797 if (i == plane->format_count) { in drm_mode_setplane()
1837 ret = plane->funcs->update_plane(plane, crtc, fb, in drm_mode_setplane()
1843 plane->crtc = crtc; in drm_mode_setplane()
1844 plane->fb = fb; in drm_mode_setplane()
2275 DRM_DEBUG_KMS("no buffer object handle for plane %d\n", i); in framebuffer_check()
2286 DRM_DEBUG_KMS("bad pitch %u for plane %d\n", r->pitches[i], i); in framebuffer_check()
3246 struct drm_plane *plane = obj_to_plane(obj); in drm_mode_plane_set_obj_prop() local
3248 if (plane->funcs->set_property) in drm_mode_plane_set_obj_prop()
3249 ret = plane->funcs->set_property(plane, property, value); in drm_mode_plane_set_obj_prop()
3784 * @plane: plane index
3787 * The bytes per pixel value for the specified plane.
3789 int drm_format_plane_cpp(uint32_t format, int plane) in drm_format_plane_cpp() argument
3794 if (plane >= drm_format_num_planes(format)) in drm_format_plane_cpp()
3809 return plane ? 2 : 1; in drm_format_plane_cpp()