| .. | .. |
|---|
| 1 | 1 | #ifndef ARMADA_PLANE_H |
|---|
| 2 | 2 | #define ARMADA_PLANE_H |
|---|
| 3 | 3 | |
|---|
| 4 | +struct 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 | + |
|---|
| 4 | 22 | void armada_drm_plane_calc(struct drm_plane_state *state, u32 addrs[2][3], |
|---|
| 5 | 23 | u16 pitches[3], bool interlaced); |
|---|
| 6 | 24 | int armada_drm_plane_prepare_fb(struct drm_plane *plane, |
|---|
| .. | .. |
|---|
| 9 | 27 | struct drm_plane_state *old_state); |
|---|
| 10 | 28 | int armada_drm_plane_atomic_check(struct drm_plane *plane, |
|---|
| 11 | 29 | struct drm_plane_state *state); |
|---|
| 30 | +void armada_plane_reset(struct drm_plane *plane); |
|---|
| 31 | +struct drm_plane_state *armada_plane_duplicate_state(struct drm_plane *plane); |
|---|
| 32 | +void armada_plane_destroy_state(struct drm_plane *plane, |
|---|
| 33 | + struct drm_plane_state *state); |
|---|
| 34 | + |
|---|
| 12 | 35 | int armada_drm_primary_plane_init(struct drm_device *drm, |
|---|
| 13 | 36 | struct drm_plane *primary); |
|---|
| 14 | 37 | |
|---|