Lines Matching refs:state

44 static inline u32 armada_spu_contrast(struct drm_plane_state *state)
46 return drm_to_overlay_state(state)->brightness << 16 |
47 drm_to_overlay_state(state)->contrast;
50 static inline u32 armada_spu_saturation(struct drm_plane_state *state)
53 return drm_to_overlay_state(state)->saturation << 16;
56 static inline u32 armada_csc(struct drm_plane_state *state)
65 (state->color_encoding == DRM_COLOR_YCBCR_BT709 ?
73 struct drm_plane_state *state = plane->state;
81 if (!state->fb || WARN_ON(!state->crtc))
86 state->crtc->base.id, state->crtc->name,
87 state->fb->base.id,
88 old_state->visible, state->visible);
90 dcrtc = drm_to_armada_crtc(state->crtc);
94 if (!old_state->visible && state->visible)
98 val = armada_src_hw(state);
101 val = armada_dst_yx(state);
104 val = armada_dst_hw(state);
108 if (old_state->src.x1 != state->src.x1 ||
109 old_state->src.y1 != state->src.y1 ||
110 old_state->fb != state->fb ||
111 state->crtc->state->mode_changed) {
115 armada_reg_queue_set(regs, idx, armada_addr(state, 0, 0),
117 armada_reg_queue_set(regs, idx, armada_addr(state, 0, 1),
119 armada_reg_queue_set(regs, idx, armada_addr(state, 0, 2),
121 armada_reg_queue_set(regs, idx, armada_addr(state, 1, 0),
123 armada_reg_queue_set(regs, idx, armada_addr(state, 1, 1),
125 armada_reg_queue_set(regs, idx, armada_addr(state, 1, 2),
128 val = armada_pitch(state, 0) << 16 | armada_pitch(state, 0);
130 val = armada_pitch(state, 1) << 16 | armada_pitch(state, 2);
133 cfg = CFG_DMA_FMT(drm_fb_to_armada_fb(state->fb)->fmt) |
134 CFG_DMA_MOD(drm_fb_to_armada_fb(state->fb)->mod) |
136 if (state->visible)
144 format = state->fb->format;
145 src_x = state->src.x1 >> 16;
148 if (to_armada_plane_state(state)->interlace)
155 } else if (old_state->visible != state->visible) {
156 cfg = state->visible ? CFG_DMA_ENA : 0;
161 if (drm_rect_width(&old_state->src) != drm_rect_width(&state->src) ||
162 drm_rect_width(&old_state->dst) != drm_rect_width(&state->dst)) {
164 if (drm_rect_width(&state->src) >> 16 !=
165 drm_rect_width(&state->dst))
173 val = armada_spu_contrast(state);
174 if ((!old_state->visible && state->visible) ||
177 val = armada_spu_saturation(state);
178 if ((!old_state->visible && state->visible) ||
181 if (!old_state->visible && state->visible)
183 val = armada_csc(state);
184 if ((!old_state->visible && state->visible) ||
188 val = drm_to_overlay_state(state)->colorkey_yr;
189 if ((!old_state->visible && state->visible) ||
192 val = drm_to_overlay_state(state)->colorkey_ug;
193 if ((!old_state->visible && state->visible) ||
196 val = drm_to_overlay_state(state)->colorkey_vb;
197 if ((!old_state->visible && state->visible) ||
200 val = drm_to_overlay_state(state)->colorkey_mode;
201 if ((!old_state->visible && state->visible) ||
206 val = drm_to_overlay_state(state)->colorkey_enable;
207 if (((!old_state->visible && state->visible) ||
259 struct drm_atomic_state *state;
267 state = drm_atomic_state_alloc(plane->dev);
268 if (!state)
271 state->acquire_ctx = ctx;
272 plane_state = drm_atomic_get_plane_state(state, plane);
292 ret = drm_atomic_nonblocking_commit(state);
294 drm_atomic_state_put(state);
306 struct armada_overlay_state *state;
308 if (plane->state)
309 __drm_atomic_helper_plane_destroy_state(plane->state);
310 kfree(plane->state);
311 plane->state = NULL;
313 state = kzalloc(sizeof(*state), GFP_KERNEL);
314 if (state) {
315 state->colorkey_yr = 0xfefefe00;
316 state->colorkey_ug = 0x01010100;
317 state->colorkey_vb = 0x01010100;
318 state->colorkey_mode = CFG_CKMODE(CKMODE_RGB) |
320 state->colorkey_enable = ADV_GRACOLORKEY;
321 state->brightness = DEFAULT_BRIGHTNESS;
322 state->contrast = DEFAULT_CONTRAST;
323 state->saturation = DEFAULT_SATURATION;
324 __drm_atomic_helper_plane_reset(plane, &state->base.base);
325 state->base.base.color_encoding = DEFAULT_ENCODING;
326 state->base.base.color_range = DRM_COLOR_YCBCR_LIMITED_RANGE;
333 struct armada_overlay_state *state;
335 if (WARN_ON(!plane->state))
338 state = kmemdup(plane->state, sizeof(*state), GFP_KERNEL);
339 if (state)
341 &state->base.base);
342 return &state->base.base;
346 struct drm_plane_state *state, struct drm_property *property,
356 drm_to_overlay_state(state)->colorkey_yr = CCC(K2R(val));
357 drm_to_overlay_state(state)->colorkey_ug = CCC(K2G(val));
358 drm_to_overlay_state(state)->colorkey_vb = CCC(K2B(val));
361 drm_to_overlay_state(state)->colorkey_yr &= ~0x00ff0000;
362 drm_to_overlay_state(state)->colorkey_yr |= K2R(val) << 16;
363 drm_to_overlay_state(state)->colorkey_ug &= ~0x00ff0000;
364 drm_to_overlay_state(state)->colorkey_ug |= K2G(val) << 16;
365 drm_to_overlay_state(state)->colorkey_vb &= ~0x00ff0000;
366 drm_to_overlay_state(state)->colorkey_vb |= K2B(val) << 16;
368 drm_to_overlay_state(state)->colorkey_yr &= ~0xff000000;
369 drm_to_overlay_state(state)->colorkey_yr |= K2R(val) << 24;
370 drm_to_overlay_state(state)->colorkey_ug &= ~0xff000000;
371 drm_to_overlay_state(state)->colorkey_ug |= K2G(val) << 24;
372 drm_to_overlay_state(state)->colorkey_vb &= ~0xff000000;
373 drm_to_overlay_state(state)->colorkey_vb |= K2B(val) << 24;
375 drm_to_overlay_state(state)->colorkey_yr &= ~0x0000ff00;
376 drm_to_overlay_state(state)->colorkey_yr |= K2R(val) << 8;
377 drm_to_overlay_state(state)->colorkey_ug &= ~0x0000ff00;
378 drm_to_overlay_state(state)->colorkey_ug |= K2G(val) << 8;
379 drm_to_overlay_state(state)->colorkey_vb &= ~0x0000ff00;
380 drm_to_overlay_state(state)->colorkey_vb |= K2B(val) << 8;
382 drm_to_overlay_state(state)->colorkey_yr &= ~0x000000ff;
383 drm_to_overlay_state(state)->colorkey_yr |= K2R(val);
384 drm_to_overlay_state(state)->colorkey_ug &= ~0x000000ff;
385 drm_to_overlay_state(state)->colorkey_ug |= K2G(val);
386 drm_to_overlay_state(state)->colorkey_vb &= ~0x000000ff;
387 drm_to_overlay_state(state)->colorkey_vb |= K2B(val);
390 drm_to_overlay_state(state)->colorkey_mode =
393 drm_to_overlay_state(state)->colorkey_enable = 0;
395 drm_to_overlay_state(state)->colorkey_mode =
398 drm_to_overlay_state(state)->colorkey_enable =
402 drm_to_overlay_state(state)->brightness = val - 256;
404 drm_to_overlay_state(state)->contrast = val;
406 drm_to_overlay_state(state)->saturation = val;
414 const struct drm_plane_state *state, struct drm_property *property,
423 *val = R2BGR(drm_to_overlay_state(state)->colorkey_yr,
424 drm_to_overlay_state(state)->colorkey_ug,
425 drm_to_overlay_state(state)->colorkey_vb, 16);
427 if (*val != R2BGR(drm_to_overlay_state(state)->colorkey_yr,
428 drm_to_overlay_state(state)->colorkey_ug,
429 drm_to_overlay_state(state)->colorkey_vb, 24) ||
430 *val != R2BGR(drm_to_overlay_state(state)->colorkey_yr,
431 drm_to_overlay_state(state)->colorkey_ug,
432 drm_to_overlay_state(state)->colorkey_vb, 8))
435 *val = R2BGR(drm_to_overlay_state(state)->colorkey_yr,
436 drm_to_overlay_state(state)->colorkey_ug,
437 drm_to_overlay_state(state)->colorkey_vb, 16);
439 *val = R2BGR(drm_to_overlay_state(state)->colorkey_yr,
440 drm_to_overlay_state(state)->colorkey_ug,
441 drm_to_overlay_state(state)->colorkey_vb, 24);
443 *val = R2BGR(drm_to_overlay_state(state)->colorkey_yr,
444 drm_to_overlay_state(state)->colorkey_ug,
445 drm_to_overlay_state(state)->colorkey_vb, 8);
447 *val = R2BGR(drm_to_overlay_state(state)->colorkey_yr,
448 drm_to_overlay_state(state)->colorkey_ug,
449 drm_to_overlay_state(state)->colorkey_vb, 0);
452 drm_to_overlay_state(state)->colorkey_mode);
454 *val = drm_to_overlay_state(state)->brightness + 256;
456 *val = drm_to_overlay_state(state)->contrast;
458 *val = drm_to_overlay_state(state)->saturation;