Lines Matching refs:plane
18 * plane funcs
45 static int omap_plane_prepare_fb(struct drm_plane *plane,
51 drm_gem_plane_helper_prepare_fb(plane, new_state);
56 static void omap_plane_cleanup_fb(struct drm_plane *plane,
63 static void omap_plane_atomic_update(struct drm_plane *plane,
66 struct omap_drm_private *priv = plane->dev->dev_private;
68 plane);
70 plane);
90 DBG("[PLANE:%d:%s] no overlay attached", plane->base.id, plane->name);
95 DBG("%s, crtc=%p fb=%p", plane->name, new_state->crtc,
125 * If the current plane uses 2 hw planes the very next
144 dev_err(plane->dev->dev, "Failed to setup plane %s\n",
145 plane->name);
157 dev_err(plane->dev->dev, "Failed to setup plane right-overlay %s\n",
158 plane->name);
168 static void omap_plane_atomic_disable(struct drm_plane *plane,
171 struct omap_drm_private *priv = plane->dev->dev_private;
172 struct omap_plane *omap_plane = to_omap_plane(plane);
174 plane);
176 plane);
187 new_state->zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : omap_plane->id;
200 static int omap_plane_atomic_check(struct drm_plane *plane,
204 plane);
206 plane);
207 struct omap_drm_private *priv = plane->dev->dev_private;
228 crtc = new_plane_state->crtc ? new_plane_state->crtc : plane->state->crtc;
233 /* we should have a crtc state if the plane is attached to a crtc */
249 DBG("%s: visible %d -> %d", plane->name,
338 ret = omap_overlay_assign(state, plane, caps, fourcc, &new_ovl,
341 DBG("%s: failed to assign hw_overlay", plane->name);
354 DBG("plane: %s overlay_id: %d", plane->name, omap_state->overlay->id);
357 DBG("plane: %s r_overlay_id: %d", plane->name, omap_state->r_overlay->id);
370 static void omap_plane_destroy(struct drm_plane *plane)
372 struct omap_plane *omap_plane = to_omap_plane(plane);
374 DBG("%s", plane->name);
376 drm_plane_cleanup(plane);
382 void omap_plane_install_properties(struct drm_plane *plane,
385 struct drm_device *dev = plane->dev;
389 if (!plane->rotation_property)
390 drm_plane_create_rotation_property(plane,
397 if (plane->rotation_property && obj != &plane->base)
398 drm_object_attach_property(obj, plane->rotation_property,
405 static void omap_plane_reset(struct drm_plane *plane)
409 if (plane->state)
410 drm_atomic_helper_plane_destroy_state(plane, plane->state);
416 __drm_atomic_helper_plane_reset(plane, &omap_state->base);
420 omap_plane_atomic_duplicate_state(struct drm_plane *plane)
424 if (WARN_ON(!plane->state))
427 current_state = to_omap_plane_state(plane->state);
433 __drm_atomic_helper_plane_duplicate_state(plane, &state->base);
460 static int omap_plane_atomic_set_property(struct drm_plane *plane,
465 struct omap_drm_private *priv = plane->dev->dev_private;
475 static int omap_plane_atomic_get_property(struct drm_plane *plane,
480 struct omap_drm_private *priv = plane->dev->dev_private;
502 static bool omap_plane_supports_yuv(struct drm_plane *plane)
504 struct omap_drm_private *priv = plane->dev->dev_private;
505 struct omap_plane *omap_plane = to_omap_plane(plane);
518 /* initialize plane */
525 struct drm_plane *plane;
548 plane = &omap_plane->base;
550 ret = drm_universal_plane_init(dev, plane, possible_crtcs,
556 drm_plane_helper_add(plane, &omap_plane_helper_funcs);
558 omap_plane_install_properties(plane, &plane->base);
562 * plane.
564 if (plane->type == DRM_PLANE_TYPE_PRIMARY)
568 drm_plane_create_zpos_property(plane, zpos, 0, num_planes - 1);
569 drm_plane_create_alpha_property(plane);
570 drm_plane_create_blend_mode_property(plane, BIT(DRM_MODE_BLEND_PREMULTI) |
573 if (omap_plane_supports_yuv(plane))
574 drm_plane_create_color_properties(plane,
582 return plane;
585 dev_err(dev->dev, "%s(): could not create plane: %d\n",