Lines Matching defs:plane
19 #include "ipuv3-plane.h"
93 drm_plane_state_to_eba(struct drm_plane_state *state, int plane)
100 cma_obj = drm_fb_cma_get_gem_obj(fb, plane);
103 return cma_obj->paddr + fb->offsets[plane] + fb->pitches[plane] * y +
104 fb->format->cpp[plane] * x;
254 void ipu_plane_disable_deferred(struct drm_plane *plane)
256 struct ipu_plane *ipu_plane = to_ipu_plane(plane);
265 static void ipu_plane_destroy(struct drm_plane *plane)
267 struct ipu_plane *ipu_plane = to_ipu_plane(plane);
271 drm_plane_cleanup(plane);
275 static void ipu_plane_state_reset(struct drm_plane *plane)
277 unsigned int zpos = (plane->type == DRM_PLANE_TYPE_PRIMARY) ? 0 : 1;
280 if (plane->state) {
281 ipu_state = to_ipu_plane_state(plane->state);
282 __drm_atomic_helper_plane_destroy_state(plane->state);
284 plane->state = NULL;
290 __drm_atomic_helper_plane_reset(plane, &ipu_state->base);
297 ipu_plane_duplicate_state(struct drm_plane *plane)
301 if (WARN_ON(!plane->state))
306 __drm_atomic_helper_plane_duplicate_state(plane, &state->base);
311 static void ipu_plane_destroy_state(struct drm_plane *plane,
320 static bool ipu_plane_format_mod_supported(struct drm_plane *plane,
323 struct ipu_soc *ipu = to_ipu_plane(plane)->ipu;
346 static int ipu_plane_atomic_check(struct drm_plane *plane,
349 struct drm_plane_state *old_state = plane->state;
351 struct device *dev = plane->dev->dev;
355 bool can_position = (plane->type == DRM_PLANE_TYPE_OVERLAY);
381 switch (plane->type) {
383 /* full plane minimum width is 13 pixels */
390 dev_warn(dev, "Unsupported plane type %d\n", plane->type);
398 * We support resizing active plane or changing its format by
399 * forcing CRTC mode change in plane's ->atomic_check callback
401 * callback. The planes will be reenabled in plane's ->atomic_update
430 * - The (up to) three plane addresses are EBA, EBA+UBO, EBA+VBO
499 static void ipu_plane_atomic_disable(struct drm_plane *plane,
502 struct ipu_plane *ipu_plane = to_ipu_plane(plane);
544 static void ipu_plane_atomic_update(struct drm_plane *plane,
547 struct ipu_plane *ipu_plane = to_ipu_plane(plane);
548 struct drm_plane_state *state = plane->state;
720 bool ipu_plane_atomic_update_pending(struct drm_plane *plane)
722 struct ipu_plane *ipu_plane = to_ipu_plane(plane);
723 struct drm_plane_state *state = plane->state;
750 struct drm_plane *plane;
769 for_each_new_plane_in_state(state, plane, plane_state, i) {
771 ipu_plane = to_ipu_plane(plane);
794 for_each_new_plane_in_state(state, plane, plane_state, i) {
796 ipu_plane = to_ipu_plane(plane);
839 DRM_ERROR("failed to allocate plane\n");
855 DRM_ERROR("failed to initialize plane\n");