armada_plane.h (1249B)
1#ifndef ARMADA_PLANE_H 2#define ARMADA_PLANE_H 3 4struct armada_plane_state { 5 struct drm_plane_state base; 6 u32 src_hw; 7 u32 dst_yx; 8 u32 dst_hw; 9 u32 addrs[2][3]; 10 u16 pitches[3]; 11 bool interlace; 12}; 13 14#define to_armada_plane_state(st) \ 15 container_of(st, struct armada_plane_state, base) 16#define armada_src_hw(state) to_armada_plane_state(state)->src_hw 17#define armada_dst_yx(state) to_armada_plane_state(state)->dst_yx 18#define armada_dst_hw(state) to_armada_plane_state(state)->dst_hw 19#define armada_addr(state, f, p) to_armada_plane_state(state)->addrs[f][p] 20#define armada_pitch(state, n) to_armada_plane_state(state)->pitches[n] 21 22void armada_drm_plane_calc(struct drm_plane_state *state, u32 addrs[2][3], 23 u16 pitches[3], bool interlaced); 24void armada_drm_plane_cleanup_fb(struct drm_plane *plane, 25 struct drm_plane_state *old_state); 26int armada_drm_plane_atomic_check(struct drm_plane *plane, 27 struct drm_atomic_state *state); 28void armada_plane_reset(struct drm_plane *plane); 29struct drm_plane_state *armada_plane_duplicate_state(struct drm_plane *plane); 30void armada_plane_destroy_state(struct drm_plane *plane, 31 struct drm_plane_state *state); 32 33int armada_drm_primary_plane_init(struct drm_device *drm, 34 struct drm_plane *primary); 35 36#endif