diff options
| author | Fancy Fang <B47543@freescale.com> | 2013-10-21 01:51:21 -0400 |
|---|---|---|
| committer | Nitin Garg <nitin.garg@freescale.com> | 2014-04-16 09:47:20 -0400 |
| commit | 20f98acbcedb53e9fc71263c7bfc7b9433a7cf1c (patch) | |
| tree | 35672aba7057044301e4545d9802f86b254b7e31 /include/uapi/linux | |
| parent | a0e4c447b383ee914097d73590ec14bebcae0fe6 (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.h | 11 |
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 @@ | |||
| 25 | typedef unsigned long dma_addr_t; | 25 | typedef unsigned long dma_addr_t; |
| 26 | typedef unsigned char bool; | 26 | typedef 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 | ||
| 160 | struct pxp_config_data { | 171 | struct pxp_config_data { |
