Lines Matching refs:plane
51 struct intel_plane *plane) in intel_plane_state_reset() argument
55 __drm_atomic_helper_plane_state_reset(&plane_state->uapi, &plane->base); in intel_plane_state_reset()
63 struct intel_plane *plane; in intel_plane_alloc() local
65 plane = kzalloc(sizeof(*plane), GFP_KERNEL); in intel_plane_alloc()
66 if (!plane) in intel_plane_alloc()
71 kfree(plane); in intel_plane_alloc()
75 intel_plane_state_reset(plane_state, plane); in intel_plane_alloc()
77 plane->base.state = &plane_state->uapi; in intel_plane_alloc()
79 return plane; in intel_plane_alloc()
82 void intel_plane_free(struct intel_plane *plane) in intel_plane_free() argument
84 intel_plane_destroy_state(&plane->base, plane->base.state); in intel_plane_free()
85 kfree(plane); in intel_plane_free()
98 intel_plane_duplicate_state(struct drm_plane *plane) in intel_plane_duplicate_state() argument
102 intel_state = to_intel_plane_state(plane->state); in intel_plane_duplicate_state()
108 __drm_atomic_helper_plane_duplicate_state(plane, &intel_state->uapi); in intel_plane_duplicate_state()
130 intel_plane_destroy_state(struct drm_plane *plane, in intel_plane_destroy_state() argument
135 drm_WARN_ON(plane->dev, plane_state->ggtt_vma); in intel_plane_destroy_state()
136 drm_WARN_ON(plane->dev, plane_state->dpt_vma); in intel_plane_destroy_state()
198 struct intel_plane *plane) in use_min_ddb() argument
200 struct drm_i915_private *i915 = to_i915(plane->base.dev); in use_min_ddb()
204 plane->async_flip; in use_min_ddb()
212 struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); in intel_plane_relative_data_rate() local
216 if (plane->id == PLANE_CURSOR) in intel_plane_relative_data_rate()
227 if (use_min_ddb(crtc_state, plane)) in intel_plane_relative_data_rate()
248 struct intel_plane *plane, in intel_plane_calc_min_cdclk() argument
251 struct drm_i915_private *dev_priv = to_i915(plane->base.dev); in intel_plane_calc_min_cdclk()
253 intel_atomic_get_new_plane_state(state, plane); in intel_plane_calc_min_cdclk()
259 if (!plane_state->uapi.visible || !plane->min_cdclk) in intel_plane_calc_min_cdclk()
265 new_crtc_state->min_cdclk[plane->id] = in intel_plane_calc_min_cdclk()
266 plane->min_cdclk(new_crtc_state, plane_state); in intel_plane_calc_min_cdclk()
276 if (new_crtc_state->min_cdclk[plane->id] <= in intel_plane_calc_min_cdclk()
277 old_crtc_state->min_cdclk[plane->id]) in intel_plane_calc_min_cdclk()
292 if (new_crtc_state->min_cdclk[plane->id] <= in intel_plane_calc_min_cdclk()
298 plane->base.base.id, plane->base.name, in intel_plane_calc_min_cdclk()
299 new_crtc_state->min_cdclk[plane->id], in intel_plane_calc_min_cdclk()
360 struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); in intel_plane_set_invisible() local
362 crtc_state->active_planes &= ~BIT(plane->id); in intel_plane_set_invisible()
363 crtc_state->scaled_planes &= ~BIT(plane->id); in intel_plane_set_invisible()
364 crtc_state->nv12_planes &= ~BIT(plane->id); in intel_plane_set_invisible()
365 crtc_state->c8_planes &= ~BIT(plane->id); in intel_plane_set_invisible()
366 crtc_state->data_rate[plane->id] = 0; in intel_plane_set_invisible()
367 crtc_state->data_rate_y[plane->id] = 0; in intel_plane_set_invisible()
368 crtc_state->rel_data_rate[plane->id] = 0; in intel_plane_set_invisible()
369 crtc_state->rel_data_rate_y[plane->id] = 0; in intel_plane_set_invisible()
370 crtc_state->min_cdclk[plane->id] = 0; in intel_plane_set_invisible()
407 static bool intel_plane_do_async_flip(struct intel_plane *plane, in intel_plane_do_async_flip() argument
411 struct drm_i915_private *i915 = to_i915(plane->base.dev); in intel_plane_do_async_flip()
413 if (!plane->async_flip) in intel_plane_do_async_flip()
433 struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane); in i9xx_must_disable_cxsr() local
440 if (plane->id == PLANE_CURSOR) in i9xx_must_disable_cxsr()
462 if (plane->id == PLANE_PRIMARY) { in i9xx_must_disable_cxsr()
476 struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane); in intel_plane_atomic_calc_changes() local
484 if (DISPLAY_VER(dev_priv) >= 9 && plane->id != PLANE_CURSOR) { in intel_plane_atomic_calc_changes()
520 plane->base.base.id, plane->base.name, in intel_plane_atomic_calc_changes()
539 new_crtc_state->fb_bits |= plane->frontbuffer_bit; in intel_plane_atomic_calc_changes()
578 if (plane->id != PLANE_CURSOR && in intel_plane_atomic_calc_changes()
585 if (intel_plane_do_async_flip(plane, old_crtc_state, new_crtc_state)) in intel_plane_atomic_calc_changes()
596 struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane); in intel_plane_atomic_check_with_state() local
601 new_crtc_state->enabled_planes &= ~BIT(plane->id); in intel_plane_atomic_check_with_state()
606 ret = plane->check_plane(new_crtc_state, new_plane_state); in intel_plane_atomic_check_with_state()
611 new_crtc_state->enabled_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
615 new_crtc_state->active_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
619 new_crtc_state->scaled_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
623 new_crtc_state->nv12_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
627 new_crtc_state->c8_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
630 new_crtc_state->update_planes |= BIT(plane->id); in intel_plane_atomic_check_with_state()
634 new_crtc_state->data_rate_y[plane->id] = in intel_plane_atomic_check_with_state()
636 new_crtc_state->data_rate[plane->id] = in intel_plane_atomic_check_with_state()
639 new_crtc_state->rel_data_rate_y[plane->id] = in intel_plane_atomic_check_with_state()
642 new_crtc_state->rel_data_rate[plane->id] = in intel_plane_atomic_check_with_state()
646 new_crtc_state->data_rate[plane->id] = in intel_plane_atomic_check_with_state()
649 new_crtc_state->rel_data_rate[plane->id] = in intel_plane_atomic_check_with_state()
662 struct intel_plane *plane; in intel_crtc_get_plane() local
664 for_each_intel_plane_on_crtc(&i915->drm, crtc, plane) { in intel_crtc_get_plane()
665 if (plane->id == plane_id) in intel_crtc_get_plane()
666 return plane; in intel_crtc_get_plane()
673 struct intel_plane *plane) in intel_plane_atomic_check() argument
677 intel_atomic_get_new_plane_state(state, plane); in intel_plane_atomic_check()
679 intel_atomic_get_old_plane_state(state, plane); in intel_plane_atomic_check()
681 struct intel_crtc *crtc = intel_crtc_for_pipe(i915, plane->pipe); in intel_plane_atomic_check()
691 intel_crtc_get_plane(master_crtc, plane->id); in intel_plane_atomic_check()
723 struct intel_plane *plane; in skl_next_plane_to_commit() local
729 for_each_new_intel_plane_in_state(state, plane, plane_state, i) { in skl_next_plane_to_commit()
730 enum plane_id plane_id = plane->id; in skl_next_plane_to_commit()
732 if (crtc->pipe != plane->pipe || in skl_next_plane_to_commit()
746 return plane; in skl_next_plane_to_commit()
755 void intel_plane_update_noarm(struct intel_plane *plane, in intel_plane_update_noarm() argument
761 trace_intel_plane_update_noarm(plane, crtc); in intel_plane_update_noarm()
763 if (plane->update_noarm) in intel_plane_update_noarm()
764 plane->update_noarm(plane, crtc_state, plane_state); in intel_plane_update_noarm()
767 void intel_plane_update_arm(struct intel_plane *plane, in intel_plane_update_arm() argument
773 trace_intel_plane_update_arm(plane, crtc); in intel_plane_update_arm()
775 if (crtc_state->do_async_flip && plane->async_flip) in intel_plane_update_arm()
776 plane->async_flip(plane, crtc_state, plane_state, true); in intel_plane_update_arm()
778 plane->update_arm(plane, crtc_state, plane_state); in intel_plane_update_arm()
781 void intel_plane_disable_arm(struct intel_plane *plane, in intel_plane_disable_arm() argument
786 trace_intel_plane_disable_arm(plane, crtc); in intel_plane_disable_arm()
787 plane->disable_arm(plane, crtc_state); in intel_plane_disable_arm()
797 struct intel_plane *plane; in intel_crtc_planes_update_noarm() local
807 for_each_new_intel_plane_in_state(state, plane, new_plane_state, i) { in intel_crtc_planes_update_noarm()
808 if (crtc->pipe != plane->pipe || in intel_crtc_planes_update_noarm()
809 !(update_mask & BIT(plane->id))) in intel_crtc_planes_update_noarm()
815 intel_plane_update_noarm(plane, new_crtc_state, new_plane_state); in intel_crtc_planes_update_noarm()
829 struct intel_plane *plane; in skl_crtc_planes_update_arm() local
836 while ((plane = skl_next_plane_to_commit(state, crtc, ddb, ddb_y, &update_mask))) { in skl_crtc_planes_update_arm()
838 intel_atomic_get_new_plane_state(state, plane); in skl_crtc_planes_update_arm()
846 intel_plane_update_arm(plane, new_crtc_state, new_plane_state); in skl_crtc_planes_update_arm()
848 intel_plane_disable_arm(plane, new_crtc_state); in skl_crtc_planes_update_arm()
859 struct intel_plane *plane; in i9xx_crtc_planes_update_arm() local
862 for_each_new_intel_plane_in_state(state, plane, new_plane_state, i) { in i9xx_crtc_planes_update_arm()
863 if (crtc->pipe != plane->pipe || in i9xx_crtc_planes_update_arm()
864 !(update_mask & BIT(plane->id))) in i9xx_crtc_planes_update_arm()
872 intel_plane_update_arm(plane, new_crtc_state, new_plane_state); in i9xx_crtc_planes_update_arm()
874 intel_plane_disable_arm(plane, new_crtc_state); in i9xx_crtc_planes_update_arm()
894 struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev); in intel_atomic_plane_check_clipping()
1016 struct intel_plane *plane = to_intel_plane(_plane); in intel_prepare_plane_fb() local
1021 struct drm_i915_private *dev_priv = to_i915(plane->base.dev); in intel_prepare_plane_fb()
1023 intel_atomic_get_old_plane_state(state, plane); in intel_prepare_plane_fb()
1127 intel_cleanup_plane_fb(struct drm_plane *plane, in intel_cleanup_plane_fb() argument
1134 struct drm_i915_private *dev_priv = to_i915(plane->dev); in intel_cleanup_plane_fb()
1154 void intel_plane_helper_add(struct intel_plane *plane) in intel_plane_helper_add() argument
1156 drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs); in intel_plane_helper_add()