summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGuoniu.Zhou <guoniu.zhou@nxp.com>2017-05-02 10:59:38 +0800
committerAnson Huang <Anson.Huang@nxp.com>2017-06-09 22:20:04 +0800
commit0b83637af7efe0409b39865587c5b625e9600bfe (patch)
tree5bd4b53ec2975a93c0ef038f7a3a0eeaee848b65 /include
parente7ee2041de89d3c80b96737c1903ffedd2742466 (diff)
MLK-14771 dma: pxp-v3: add new added 2D features support
The V3 version PXP has added below new 2D features: 1. Input fetch/store blocks to accept different formats input/output. 2. Add Rotation1 block to do rotation before alpha blending. 3. Add Composite1 block to accept source from input fetch. 4. AS and PS have increased supported pixel formats. Signed-off-by: Fancy Fang <chen.fang@nxp.com> Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com> (cherry picked from commit 4daef24b19890ca65135c48fc24018f64761444f)
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/pxp_dma.h34
1 files changed, 31 insertions, 3 deletions
diff --git a/include/uapi/linux/pxp_dma.h b/include/uapi/linux/pxp_dma.h
index cd96359fd679..6a6a12a37972 100644
--- a/include/uapi/linux/pxp_dma.h
+++ b/include/uapi/linux/pxp_dma.h
@@ -122,6 +122,10 @@ typedef unsigned char bool;
#define PXP_IOC_FILL_DATA _IOWR(PXP_IOC_MAGIC, 7, struct pxp_mem_desc)
+#define ALPHA_MODE_ROP 0x1
+#define ALPHA_MODE_LEGACY 0x2
+#define ALPHA_MODE_PORTER_DUFF 0x3
+
/* Order significant! */
enum pxp_channel_status {
PXP_CHANNEL_FREE,
@@ -180,6 +184,29 @@ struct rect {
int height;
};
+#define ALPHA_MODE_STRAIGHT 0x0
+#define ALPHA_MODE_INVERSED 0x1
+
+#define GLOBAL_ALPHA_MODE_ON 0x0
+#define GLOBAL_ALPHA_MODE_OFF 0x1
+#define GLOBAL_ALPHA_MODE_SCALE 0x2
+
+#define FACTOR_MODE_ONE 0x0
+#define FACTOR_MODE_ZERO 0x1
+#define FACTOR_MODE_STRAIGHT 0x2
+#define FACTOR_MODE_INVERSED 0x3
+
+#define COLOR_MODE_STRAIGHT 0x0
+#define COLOR_MODE_MULTIPLY 0x1
+
+struct pxp_alpha {
+ unsigned int alpha_mode;
+ unsigned int global_alpha_mode;
+ unsigned int global_alpha_value;
+ unsigned int factor_mode;
+ unsigned int color_mode;
+};
+
struct pxp_layer_param {
unsigned short left;
unsigned short top;
@@ -204,6 +231,8 @@ struct pxp_layer_param {
bool local_alpha_enable;
int comp_mask;
+ struct pxp_alpha alpha;
+
dma_addr_t paddr;
};
@@ -224,9 +253,7 @@ struct pxp_proc_data {
int rotate;
int rot_pos;
int yuv;
-
- /* to support YUYV and YVYU formats */
- bool need_yuv_swap;
+ unsigned int alpha_mode;
/* Source rectangle (srect) defines the sub-rectangle
* within S0 to undergo processing.
@@ -240,6 +267,7 @@ struct pxp_proc_data {
/* Current S0 configuration */
unsigned int bgcolor;
+ unsigned char fill_en;
/* Output overlay support */
int overlay_state;