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