armada_plane.h 1.2 KB

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