Lines Matching refs:dplane
73 static void armada_ovl_retire_fb(struct armada_ovl_plane *dplane, in armada_ovl_retire_fb() argument
78 old_fb = xchg(&dplane->old_fb, fb); in armada_ovl_retire_fb()
81 armada_drm_queue_unref_work(dplane->base.base.dev, old_fb); in armada_ovl_retire_fb()
88 struct armada_ovl_plane *dplane = container_of(plane, struct armada_ovl_plane, base); in armada_ovl_plane_work() local
90 armada_drm_crtc_update_regs(dcrtc, dplane->vbl.regs); in armada_ovl_plane_work()
91 armada_ovl_retire_fb(dplane, NULL); in armada_ovl_plane_work()
100 struct armada_ovl_plane *dplane = drm_to_armada_ovl_plane(plane); in armada_ovl_plane_update() local
138 armada_ovl_update_attr(&dplane->prop, dcrtc); in armada_ovl_plane_update()
143 if (plane->fb == fb && dplane->ctrl0 == ctrl0) { in armada_ovl_plane_update()
146 dplane->src_hw = val; in armada_ovl_plane_update()
150 dplane->dst_hw = val; in armada_ovl_plane_update()
154 dplane->dst_yx = val; in armada_ovl_plane_update()
158 } else if (~dplane->ctrl0 & ctrl0 & CFG_DMA_ENA) { in armada_ovl_plane_update()
164 if (armada_drm_plane_work_wait(&dplane->base, HZ / 25) == 0) in armada_ovl_plane_update()
165 armada_drm_plane_work_cancel(dcrtc, &dplane->base); in armada_ovl_plane_update()
179 armada_ovl_retire_fb(dplane, plane->fb); in armada_ovl_plane_update()
203 armada_reg_queue_set(dplane->vbl.regs, idx, addr[0], in armada_ovl_plane_update()
205 armada_reg_queue_set(dplane->vbl.regs, idx, addr[1], in armada_ovl_plane_update()
207 armada_reg_queue_set(dplane->vbl.regs, idx, addr[2], in armada_ovl_plane_update()
209 armada_reg_queue_set(dplane->vbl.regs, idx, addr[0], in armada_ovl_plane_update()
211 armada_reg_queue_set(dplane->vbl.regs, idx, addr[1], in armada_ovl_plane_update()
213 armada_reg_queue_set(dplane->vbl.regs, idx, addr[2], in armada_ovl_plane_update()
217 armada_reg_queue_set(dplane->vbl.regs, idx, val, in armada_ovl_plane_update()
220 armada_reg_queue_set(dplane->vbl.regs, idx, val, in armada_ovl_plane_update()
225 if (dplane->src_hw != val) { in armada_ovl_plane_update()
226 dplane->src_hw = val; in armada_ovl_plane_update()
227 armada_reg_queue_set(dplane->vbl.regs, idx, val, in armada_ovl_plane_update()
232 if (dplane->dst_hw != val) { in armada_ovl_plane_update()
233 dplane->dst_hw = val; in armada_ovl_plane_update()
234 armada_reg_queue_set(dplane->vbl.regs, idx, val, in armada_ovl_plane_update()
239 if (dplane->dst_yx != val) { in armada_ovl_plane_update()
240 dplane->dst_yx = val; in armada_ovl_plane_update()
241 armada_reg_queue_set(dplane->vbl.regs, idx, val, in armada_ovl_plane_update()
245 if (dplane->ctrl0 != ctrl0) { in armada_ovl_plane_update()
246 dplane->ctrl0 = ctrl0; in armada_ovl_plane_update()
247 armada_reg_queue_mod(dplane->vbl.regs, idx, ctrl0, in armada_ovl_plane_update()
255 armada_reg_queue_end(dplane->vbl.regs, idx); in armada_ovl_plane_update()
256 armada_drm_plane_work_queue(dcrtc, &dplane->base, in armada_ovl_plane_update()
257 &dplane->vbl.work); in armada_ovl_plane_update()
264 struct armada_ovl_plane *dplane = drm_to_armada_ovl_plane(plane); in armada_ovl_plane_disable() local
268 if (!dplane->base.base.crtc) in armada_ovl_plane_disable()
271 dcrtc = drm_to_armada_crtc(dplane->base.base.crtc); in armada_ovl_plane_disable()
273 armada_drm_plane_work_cancel(dcrtc, &dplane->base); in armada_ovl_plane_disable()
277 dplane->ctrl0 = 0; in armada_ovl_plane_disable()
279 fb = xchg(&dplane->old_fb, NULL); in armada_ovl_plane_disable()
288 struct armada_ovl_plane *dplane = drm_to_armada_ovl_plane(plane); in armada_ovl_plane_destroy() local
292 kfree(dplane); in armada_ovl_plane_destroy()
299 struct armada_ovl_plane *dplane = drm_to_armada_ovl_plane(plane); in armada_ovl_plane_set_property() local
304 dplane->prop.colorkey_yr = CCC(K2R(val)); in armada_ovl_plane_set_property()
305 dplane->prop.colorkey_ug = CCC(K2G(val)); in armada_ovl_plane_set_property()
306 dplane->prop.colorkey_vb = CCC(K2B(val)); in armada_ovl_plane_set_property()
310 dplane->prop.colorkey_yr &= ~0x00ff0000; in armada_ovl_plane_set_property()
311 dplane->prop.colorkey_yr |= K2R(val) << 16; in armada_ovl_plane_set_property()
312 dplane->prop.colorkey_ug &= ~0x00ff0000; in armada_ovl_plane_set_property()
313 dplane->prop.colorkey_ug |= K2G(val) << 16; in armada_ovl_plane_set_property()
314 dplane->prop.colorkey_vb &= ~0x00ff0000; in armada_ovl_plane_set_property()
315 dplane->prop.colorkey_vb |= K2B(val) << 16; in armada_ovl_plane_set_property()
318 dplane->prop.colorkey_yr &= ~0xff000000; in armada_ovl_plane_set_property()
319 dplane->prop.colorkey_yr |= K2R(val) << 24; in armada_ovl_plane_set_property()
320 dplane->prop.colorkey_ug &= ~0xff000000; in armada_ovl_plane_set_property()
321 dplane->prop.colorkey_ug |= K2G(val) << 24; in armada_ovl_plane_set_property()
322 dplane->prop.colorkey_vb &= ~0xff000000; in armada_ovl_plane_set_property()
323 dplane->prop.colorkey_vb |= K2B(val) << 24; in armada_ovl_plane_set_property()
326 dplane->prop.colorkey_yr &= ~0x0000ff00; in armada_ovl_plane_set_property()
327 dplane->prop.colorkey_yr |= K2R(val) << 8; in armada_ovl_plane_set_property()
328 dplane->prop.colorkey_ug &= ~0x0000ff00; in armada_ovl_plane_set_property()
329 dplane->prop.colorkey_ug |= K2G(val) << 8; in armada_ovl_plane_set_property()
330 dplane->prop.colorkey_vb &= ~0x0000ff00; in armada_ovl_plane_set_property()
331 dplane->prop.colorkey_vb |= K2B(val) << 8; in armada_ovl_plane_set_property()
334 dplane->prop.colorkey_yr &= ~0x000000ff; in armada_ovl_plane_set_property()
335 dplane->prop.colorkey_yr |= K2R(val); in armada_ovl_plane_set_property()
336 dplane->prop.colorkey_ug &= ~0x000000ff; in armada_ovl_plane_set_property()
337 dplane->prop.colorkey_ug |= K2G(val); in armada_ovl_plane_set_property()
338 dplane->prop.colorkey_vb &= ~0x000000ff; in armada_ovl_plane_set_property()
339 dplane->prop.colorkey_vb |= K2B(val); in armada_ovl_plane_set_property()
342 dplane->prop.colorkey_mode &= ~CFG_CKMODE_MASK; in armada_ovl_plane_set_property()
343 dplane->prop.colorkey_mode |= CFG_CKMODE(val); in armada_ovl_plane_set_property()
346 dplane->prop.brightness = val - 256; in armada_ovl_plane_set_property()
349 dplane->prop.contrast = val; in armada_ovl_plane_set_property()
352 dplane->prop.saturation = val; in armada_ovl_plane_set_property()
356 if (update_attr && dplane->base.base.crtc) in armada_ovl_plane_set_property()
357 armada_ovl_update_attr(&dplane->prop, in armada_ovl_plane_set_property()
358 drm_to_armada_crtc(dplane->base.base.crtc)); in armada_ovl_plane_set_property()
440 struct armada_ovl_plane *dplane; in armada_overlay_plane_create() local
447 dplane = kzalloc(sizeof(*dplane), GFP_KERNEL); in armada_overlay_plane_create()
448 if (!dplane) in armada_overlay_plane_create()
451 ret = armada_drm_plane_init(&dplane->base); in armada_overlay_plane_create()
453 kfree(dplane); in armada_overlay_plane_create()
457 dplane->vbl.work.fn = armada_ovl_plane_work; in armada_overlay_plane_create()
459 ret = drm_universal_plane_init(dev, &dplane->base.base, crtcs, in armada_overlay_plane_create()
465 kfree(dplane); in armada_overlay_plane_create()
469 dplane->prop.colorkey_yr = 0xfefefe00; in armada_overlay_plane_create()
470 dplane->prop.colorkey_ug = 0x01010100; in armada_overlay_plane_create()
471 dplane->prop.colorkey_vb = 0x01010100; in armada_overlay_plane_create()
472 dplane->prop.colorkey_mode = CFG_CKMODE(CKMODE_RGB); in armada_overlay_plane_create()
473 dplane->prop.brightness = 0; in armada_overlay_plane_create()
474 dplane->prop.contrast = 0x4000; in armada_overlay_plane_create()
475 dplane->prop.saturation = 0x4000; in armada_overlay_plane_create()
477 mobj = &dplane->base.base.base; in armada_overlay_plane_create()
492 dplane->prop.contrast); in armada_overlay_plane_create()
494 dplane->prop.saturation); in armada_overlay_plane_create()