summaryrefslogtreecommitdiffstats
path: root/drivers/video/imx-ipu-v3/ipuv3-plane.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/imx-ipu-v3/ipuv3-plane.h')
-rw-r--r--drivers/video/imx-ipu-v3/ipuv3-plane.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/drivers/video/imx-ipu-v3/ipuv3-plane.h b/drivers/video/imx-ipu-v3/ipuv3-plane.h
new file mode 100644
index 0000000000..3d52f807fe
--- /dev/null
+++ b/drivers/video/imx-ipu-v3/ipuv3-plane.h
@@ -0,0 +1,51 @@
+#ifndef __IPUV3_PLANE_H__
+#define __IPUV3_PLANE_H__
+
+struct drm_plane;
+struct drm_device;
+struct ipu_soc;
+struct drm_crtc;
+struct drm_framebuffer;
+
+struct ipuv3_channel;
+struct dmfc_channel;
+struct ipu_dp;
+
+struct ipu_plane {
+ struct ipu_soc *ipu;
+ struct ipuv3_channel *ipu_ch;
+ struct dmfc_channel *dmfc;
+ struct ipu_dp *dp;
+
+ int dma;
+ int dp_flow;
+
+ int x;
+ int y;
+
+ bool enabled;
+};
+
+struct ipu_plane *ipu_plane_init(struct ipu_soc *ipu,
+ int dma, int dp);
+
+/* Init IDMAC, DMFC, DP */
+int ipu_plane_mode_set(struct ipu_plane *ipu_plane,
+ struct fb_videomode *mode,
+ struct fb_info *info, u32 pixel_format,
+ int crtc_x, int crtc_y,
+ unsigned int crtc_w, unsigned int crtc_h,
+ uint32_t src_x, uint32_t src_y,
+ uint32_t src_w, uint32_t src_h);
+
+void ipu_plane_enable(struct ipu_plane *plane);
+void ipu_plane_disable(struct ipu_plane *plane);
+int ipu_plane_set_base(struct ipu_plane *ipu_plane, struct fb_info *info,
+ int x, int y);
+
+int ipu_plane_get_resources(struct ipu_plane *plane);
+void ipu_plane_put_resources(struct ipu_plane *plane);
+
+int ipu_plane_irq(struct ipu_plane *plane);
+
+#endif