brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 6c4fe35 Raw
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