aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorFancy Fang <B47543@freescale.com>2013-10-21 01:51:21 -0400
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 09:47:20 -0400
commit20f98acbcedb53e9fc71263c7bfc7b9433a7cf1c (patch)
tree35672aba7057044301e4545d9802f86b254b7e31 /include/uapi/linux
parenta0e4c447b383ee914097d73590ec14bebcae0fe6 (diff)
ENGR00284411-1 PXP: Enhance YUV, alpha blend and rotation
Support YUV formats like: I420, NV12, NV21, UYVY, YUYV, VYUY, YVYU, NV16, NV61 and YV12. Support rotation in both stages before and after alpha blending. Signed-off-by: Fancy Fang <B47543@freescale.com>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/pxp_dma.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/uapi/linux/pxp_dma.h b/include/uapi/linux/pxp_dma.h
index bc280a70c856..62096aacd1b2 100644
--- a/include/uapi/linux/pxp_dma.h
+++ b/include/uapi/linux/pxp_dma.h
@@ -25,6 +25,7 @@
25typedef unsigned long dma_addr_t; 25typedef unsigned long dma_addr_t;
26typedef unsigned char bool; 26typedef unsigned char bool;
27#endif 27#endif
28#define __u32 unsigned int
28 29
29/* PXP Pixel format definitions */ 30/* PXP Pixel format definitions */
30/* Four-character-code (FOURCC) */ 31/* Four-character-code (FOURCC) */
@@ -58,10 +59,15 @@ typedef unsigned char bool;
58/*! @{ */ 59/*! @{ */
59#define PXP_PIX_FMT_YUYV fourcc('Y', 'U', 'Y', 'V') /*!< 16 YUV 4:2:2 */ 60#define PXP_PIX_FMT_YUYV fourcc('Y', 'U', 'Y', 'V') /*!< 16 YUV 4:2:2 */
60#define PXP_PIX_FMT_UYVY fourcc('U', 'Y', 'V', 'Y') /*!< 16 YUV 4:2:2 */ 61#define PXP_PIX_FMT_UYVY fourcc('U', 'Y', 'V', 'Y') /*!< 16 YUV 4:2:2 */
62#define PXP_PIX_FMT_VYUY fourcc('V', 'Y', 'U', 'Y') /*!< 16 YVU 4:2:2 */
63#define PXP_PIX_FMT_YVYU fourcc('Y', 'V', 'Y', 'U') /*!< 16 YVU 4:2:2 */
61#define PXP_PIX_FMT_Y41P fourcc('Y', '4', '1', 'P') /*!< 12 YUV 4:1:1 */ 64#define PXP_PIX_FMT_Y41P fourcc('Y', '4', '1', 'P') /*!< 12 YUV 4:1:1 */
62#define PXP_PIX_FMT_YUV444 fourcc('Y', '4', '4', '4') /*!< 24 YUV 4:4:4 */ 65#define PXP_PIX_FMT_YUV444 fourcc('Y', '4', '4', '4') /*!< 24 YUV 4:4:4 */
63/* two planes -- one Y, one Cb + Cr interleaved */ 66/* two planes -- one Y, one Cb + Cr interleaved */
64#define PXP_PIX_FMT_NV12 fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ 67#define PXP_PIX_FMT_NV12 fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
68#define PXP_PIX_FMT_NV21 fourcc('N', 'V', '2', '1') /* 12 Y/CbCr 4:2:0 */
69#define PXP_PIX_FMT_NV16 fourcc('N', 'V', '1', '6') /* 12 Y/CbCr 4:2:2 */
70#define PXP_PIX_FMT_NV61 fourcc('N', 'V', '6', '1') /* 12 Y/CbCr 4:2:2 */
65/*! @} */ 71/*! @} */
66/*! @name YUV Planar Formats */ 72/*! @name YUV Planar Formats */
67/*! @{ */ 73/*! @{ */
@@ -121,7 +127,10 @@ struct pxp_layer_param {
121 unsigned int color_key_enable; 127 unsigned int color_key_enable;
122 unsigned int color_key; 128 unsigned int color_key;
123 bool global_alpha_enable; 129 bool global_alpha_enable;
130 /* global alpha is either override or multiply */
131 bool global_override;
124 unsigned char global_alpha; 132 unsigned char global_alpha;
133 bool alpha_invert;
125 bool local_alpha_enable; 134 bool local_alpha_enable;
126 135
127 dma_addr_t paddr; 136 dma_addr_t paddr;
@@ -133,6 +142,7 @@ struct pxp_proc_data {
133 int hflip; 142 int hflip;
134 int vflip; 143 int vflip;
135 int rotate; 144 int rotate;
145 int rot_pos;
136 int yuv; 146 int yuv;
137 147
138 /* Source rectangle (srect) defines the sub-rectangle 148 /* Source rectangle (srect) defines the sub-rectangle
@@ -155,6 +165,7 @@ struct pxp_proc_data {
155 int lut_transform; 165 int lut_transform;
156 unsigned char *lut_map; /* 256 entries */ 166 unsigned char *lut_map; /* 256 entries */
157 bool lut_map_updated; /* Map recently changed */ 167 bool lut_map_updated; /* Map recently changed */
168 bool combine_enable;
158}; 169};
159 170
160struct pxp_config_data { 171struct pxp_config_data {