78 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2019 Intel Corporation4 */5 6#ifndef __INTEL_ATOMIC_PLANE_H__7#define __INTEL_ATOMIC_PLANE_H__8 9#include <linux/types.h>10 11struct drm_plane;12struct drm_property;13struct drm_rect;14struct intel_atomic_state;15struct intel_crtc;16struct intel_crtc_state;17struct intel_plane;18struct intel_plane_state;19enum plane_id;20 21unsigned int intel_adjusted_rate(const struct drm_rect *src,22 const struct drm_rect *dst,23 unsigned int rate);24unsigned int intel_plane_pixel_rate(const struct intel_crtc_state *crtc_state,25 const struct intel_plane_state *plane_state);26 27unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state,28 const struct intel_plane_state *plane_state,29 int color_plane);30void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,31 const struct intel_plane_state *from_plane_state,32 struct intel_crtc *crtc);33void intel_plane_copy_hw_state(struct intel_plane_state *plane_state,34 const struct intel_plane_state *from_plane_state);35void intel_plane_async_flip(struct intel_plane *plane,36 const struct intel_crtc_state *crtc_state,37 const struct intel_plane_state *plane_state,38 bool async_flip);39void intel_plane_update_noarm(struct intel_plane *plane,40 const struct intel_crtc_state *crtc_state,41 const struct intel_plane_state *plane_state);42void intel_plane_update_arm(struct intel_plane *plane,43 const struct intel_crtc_state *crtc_state,44 const struct intel_plane_state *plane_state);45void intel_plane_disable_arm(struct intel_plane *plane,46 const struct intel_crtc_state *crtc_state);47struct intel_plane *intel_plane_alloc(void);48void intel_plane_free(struct intel_plane *plane);49struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane);50void intel_plane_destroy_state(struct drm_plane *plane,51 struct drm_plane_state *state);52void intel_crtc_planes_update_noarm(struct intel_atomic_state *state,53 struct intel_crtc *crtc);54void intel_crtc_planes_update_arm(struct intel_atomic_state *state,55 struct intel_crtc *crtc);56int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_state,57 struct intel_crtc_state *crtc_state,58 const struct intel_plane_state *old_plane_state,59 struct intel_plane_state *intel_state);60int intel_plane_atomic_check(struct intel_atomic_state *state,61 struct intel_plane *plane);62int intel_plane_calc_min_cdclk(struct intel_atomic_state *state,63 struct intel_plane *plane,64 bool *need_cdclk_calc);65int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,66 struct intel_crtc_state *crtc_state,67 int min_scale, int max_scale,68 bool can_position);69int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state);70void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,71 struct intel_plane_state *plane_state);72void intel_plane_helper_add(struct intel_plane *plane);73bool intel_plane_needs_physical(struct intel_plane *plane);74void intel_plane_init_cursor_vblank_work(struct intel_plane_state *old_plane_state,75 struct intel_plane_state *new_plane_state);76 77#endif /* __INTEL_ATOMIC_PLANE_H__ */78