Lines Matching refs:omap_plane
29 #define omap_plane _omap_plane macro
40 #define to_omap_plane(x) container_of(x, struct omap_plane, base)
42 struct omap_plane { struct
70 struct omap_plane *omap_plane = in omap_plane_unpin_worker() argument
71 container_of(work, struct omap_plane, unpin_work); in omap_plane_unpin_worker()
72 struct drm_device *dev = omap_plane->base.dev; in omap_plane_unpin_worker()
88 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_update_pin() local
89 struct drm_framebuffer *pinned_fb = omap_plane->pinned_fb; in omap_plane_update_pin()
102 drm_flip_work_queue(&omap_plane->unpin_work, pinned_fb); in omap_plane_update_pin()
106 omap_plane->pinned_fb, fb); in omap_plane_update_pin()
108 omap_plane->pinned_fb = NULL; in omap_plane_update_pin()
112 omap_plane->pinned_fb = fb; in omap_plane_update_pin()
120 struct omap_plane *omap_plane = in omap_plane_pre_apply() local
121 container_of(apply, struct omap_plane, apply); in omap_plane_pre_apply()
122 struct omap_drm_window *win = &omap_plane->win; in omap_plane_pre_apply()
123 struct drm_plane *plane = &omap_plane->base; in omap_plane_pre_apply()
125 struct omap_overlay_info *info = &omap_plane->info; in omap_plane_pre_apply()
128 bool enabled = omap_plane->enabled && crtc; in omap_plane_pre_apply()
131 DBG("%s, enabled=%d", omap_plane->name, enabled); in omap_plane_pre_apply()
137 dispc_ovl_enable(omap_plane->id, false); in omap_plane_pre_apply()
152 dispc_ovl_set_channel_out(omap_plane->id, channel); in omap_plane_pre_apply()
155 ret = dispc_ovl_setup(omap_plane->id, info, false, in omap_plane_pre_apply()
162 dispc_ovl_enable(omap_plane->id, true); in omap_plane_pre_apply()
167 struct omap_plane *omap_plane = in omap_plane_post_apply() local
168 container_of(apply, struct omap_plane, apply); in omap_plane_post_apply()
169 struct drm_plane *plane = &omap_plane->base; in omap_plane_post_apply()
173 cb = omap_plane->apply_done_cb; in omap_plane_post_apply()
174 omap_plane->apply_done_cb.fxn = NULL; in omap_plane_post_apply()
176 drm_flip_work_commit(&omap_plane->unpin_work, priv->wq); in omap_plane_post_apply()
185 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_apply() local
186 return omap_crtc_apply(plane->crtc, &omap_plane->apply); in omap_plane_apply()
199 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_mode_set() local
200 struct omap_drm_window *win = &omap_plane->win; in omap_plane_mode_set()
216 BUG_ON(omap_plane->apply_done_cb.fxn); in omap_plane_mode_set()
218 omap_plane->apply_done_cb.fxn = fxn; in omap_plane_mode_set()
219 omap_plane->apply_done_cb.arg = arg; in omap_plane_mode_set()
232 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_update() local
233 omap_plane->enabled = true; in omap_plane_update()
236 switch (omap_plane->win.rotation & 0xf) { in omap_plane_update()
259 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_disable() local
261 omap_plane->win.rotation = BIT(DRM_ROTATE_0); in omap_plane_disable()
262 omap_plane->info.zorder = plane->type == DRM_PLANE_TYPE_PRIMARY in omap_plane_disable()
263 ? 0 : omap_plane->id; in omap_plane_disable()
270 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_destroy() local
272 DBG("%s", omap_plane->name); in omap_plane_destroy()
274 omap_irq_unregister(plane->dev, &omap_plane->error_irq); in omap_plane_destroy()
278 drm_flip_work_cleanup(&omap_plane->unpin_work); in omap_plane_destroy()
280 kfree(omap_plane); in omap_plane_destroy()
285 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_set_enable() local
287 if (enable == omap_plane->enabled) in omap_plane_set_enable()
290 omap_plane->enabled = enable; in omap_plane_set_enable()
332 struct omap_plane *omap_plane = to_omap_plane(plane); in omap_plane_set_property() local
337 DBG("%s: rotation: %02x", omap_plane->name, (uint32_t)val); in omap_plane_set_property()
338 omap_plane->win.rotation = val; in omap_plane_set_property()
341 DBG("%s: zorder: %02x", omap_plane->name, (uint32_t)val); in omap_plane_set_property()
342 omap_plane->info.zorder = val; in omap_plane_set_property()
358 struct omap_plane *omap_plane = in omap_plane_error_irq() local
359 container_of(irq, struct omap_plane, error_irq); in omap_plane_error_irq()
360 DRM_ERROR_RATELIMITED("%s: errors: %08x\n", omap_plane->name, in omap_plane_error_irq()
384 struct omap_plane *omap_plane; in omap_plane_init() local
390 omap_plane = kzalloc(sizeof(*omap_plane), GFP_KERNEL); in omap_plane_init()
391 if (!omap_plane) in omap_plane_init()
394 drm_flip_work_init(&omap_plane->unpin_work, in omap_plane_init()
397 omap_plane->nformats = omap_framebuffer_get_formats( in omap_plane_init()
398 omap_plane->formats, ARRAY_SIZE(omap_plane->formats), in omap_plane_init()
400 omap_plane->id = id; in omap_plane_init()
401 omap_plane->name = plane_names[id]; in omap_plane_init()
403 plane = &omap_plane->base; in omap_plane_init()
405 omap_plane->apply.pre_apply = omap_plane_pre_apply; in omap_plane_init()
406 omap_plane->apply.post_apply = omap_plane_post_apply; in omap_plane_init()
408 omap_plane->error_irq.irqmask = error_irqs[id]; in omap_plane_init()
409 omap_plane->error_irq.irq = omap_plane_error_irq; in omap_plane_init()
410 omap_irq_register(dev, &omap_plane->error_irq); in omap_plane_init()
413 &omap_plane_funcs, omap_plane->formats, in omap_plane_init()
414 omap_plane->nformats, type); in omap_plane_init()
423 info = &omap_plane->info; in omap_plane_init()
435 omap_plane->info.zorder = 0; in omap_plane_init()
437 omap_plane->info.zorder = id; in omap_plane_init()
442 omap_irq_unregister(plane->dev, &omap_plane->error_irq); in omap_plane_init()
443 kfree(omap_plane); in omap_plane_init()