summaryrefslogtreecommitdiff
path: root/kernel-headers/ddp_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel-headers/ddp_drv.h')
-rwxr-xr-xkernel-headers/ddp_drv.h314
1 files changed, 314 insertions, 0 deletions
diff --git a/kernel-headers/ddp_drv.h b/kernel-headers/ddp_drv.h
new file mode 100755
index 0000000..379d790
--- /dev/null
+++ b/kernel-headers/ddp_drv.h
@@ -0,0 +1,314 @@
+
+#ifndef __DDP_DRV_H__
+#define __DDP_DRV_H__
+#include <linux/ioctl.h>
+#include <sys/types.h>
+#include "ddp_hal.h"
+#include "ddp_aal.h"
+#include "ddp_gamma.h"
+#include "disp_event.h"
+
+
+typedef struct
+{
+ unsigned int reg;
+ unsigned int val;
+ unsigned int mask;
+} DISP_WRITE_REG;
+
+typedef struct
+{
+ unsigned int reg;
+ unsigned int val;
+ unsigned int mask;
+} DISP_READ_REG;
+
+#if 0
+typedef struct
+{
+ DISP_MODULE_ENUM module;
+ unsigned int timeout_ms; //timeout, unit is ms
+} disp_wait_irq_struct;
+#endif
+
+typedef struct DISP_EXEC_COMMAND
+{
+ int taskID;
+ uint32_t scenario;
+ uint32_t priority;
+ uint32_t engineFlag;
+ uint32_t *pFrameBaseSW;
+ uint32_t *pTileBaseSW;
+ uint32_t blockSize;
+} DISP_EXEC_COMMAND;
+
+typedef struct
+{
+ int layer;
+
+ unsigned long addr;
+ unsigned int fmt;
+
+ int x;
+ int y;
+ int w;
+ int h; // clip region
+ int pitch;
+} DISP_OVL_INFO;
+
+//PQ
+#define COLOR_TUNING_INDEX 19
+#define THSHP_TUNING_INDEX 12
+#define THSHP_PARAM_MAX 121 /*Everest Revision*/
+#define PARTIAL_Y_INDEX 10
+
+#define GLOBAL_SAT_SIZE 10
+#define CONTRAST_SIZE 10
+#define BRIGHTNESS_SIZE 10
+#define PARTIAL_Y_SIZE 16
+#define PQ_HUE_ADJ_PHASE_CNT 4
+#define PQ_SAT_ADJ_PHASE_CNT 4
+#define PQ_PARTIALS_CONTROL 5
+#define PURP_TONE_SIZE 3
+#define SKIN_TONE_SIZE 8 //(-6)
+#define GRASS_TONE_SIZE 6 //(-2)
+#define SKY_TONE_SIZE 3
+#define CCORR_COEF_CNT 4 /* ccorr feature */
+#define S_GAIN_BY_Y_CONTROL_CNT 5
+#define S_GAIN_BY_Y_HUE_PHASE_CNT 20
+
+enum TONE_ENUM {
+ PURP_TONE = 0,
+ SKIN_TONE = 1,
+ GRASS_TONE = 2,
+ SKY_TONE = 3
+};
+
+typedef struct {
+ unsigned int u4SHPGain; // 0 : min , 9 : max.
+ unsigned int u4SatGain; // 0 : min , 9 : max.
+ unsigned int u4PartialY; /* 0 : min , 9 : max. */
+ unsigned int u4HueAdj[PQ_HUE_ADJ_PHASE_CNT];
+ unsigned int u4SatAdj[PQ_SAT_ADJ_PHASE_CNT];
+ unsigned int u4Contrast; // 0 : min , 9 : max.
+ unsigned int u4Brightness; // 0 : min , 9 : max.
+ unsigned int u4Ccorr; /* 0 : min , 3 : max. ccorr feature */
+} DISP_PQ_PARAM;
+
+typedef struct {
+ int split_en;
+ int start_x;
+ int start_y;
+ int end_x;
+ int end_y;
+} DISP_PQ_WIN_PARAM;
+
+typedef struct {
+ int image;
+ int video;
+ int camera;
+} DISP_PQ_MAPPING_PARAM;
+
+typedef struct {
+ unsigned int en;
+ unsigned int pos_x;
+ unsigned int pos_y;
+} MDP_COLOR_CAP;
+
+typedef struct {
+ unsigned int TDS_GAIN_MID;
+ unsigned int TDS_GAIN_HIGH;
+ unsigned int TDS_COR_GAIN;
+ unsigned int TDS_COR_THR;
+ unsigned int TDS_COR_ZERO;
+ unsigned int TDS_GAIN;
+ unsigned int TDS_COR_VALUE;
+} MDP_TDSHP_REG;
+
+typedef struct{
+
+ unsigned short GLOBAL_SAT [GLOBAL_SAT_SIZE];
+ unsigned short CONTRAST [CONTRAST_SIZE];
+ unsigned short BRIGHTNESS [BRIGHTNESS_SIZE];
+ unsigned char PARTIAL_Y [PARTIAL_Y_INDEX][PARTIAL_Y_SIZE];
+ unsigned char PURP_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][PURP_TONE_SIZE];
+ unsigned char SKIN_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][SKIN_TONE_SIZE];
+ unsigned char GRASS_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][GRASS_TONE_SIZE];
+ unsigned char SKY_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][SKY_TONE_SIZE];
+ unsigned char PURP_TONE_H [COLOR_TUNING_INDEX][PURP_TONE_SIZE];
+ unsigned char SKIN_TONE_H [COLOR_TUNING_INDEX][SKIN_TONE_SIZE];
+ unsigned char GRASS_TONE_H [COLOR_TUNING_INDEX][GRASS_TONE_SIZE];
+ unsigned char SKY_TONE_H [COLOR_TUNING_INDEX][SKY_TONE_SIZE];
+ unsigned int CCORR_COEF [CCORR_COEF_CNT][3][3];
+ unsigned char S_GAIN_BY_Y [S_GAIN_BY_Y_CONTROL_CNT][S_GAIN_BY_Y_HUE_PHASE_CNT];
+ unsigned char S_GAIN_BY_Y_EN;
+ unsigned char LSP_EN;
+} DISPLAY_PQ_T;
+
+typedef struct {
+ unsigned short GLOBAL_SAT ;
+ unsigned short CONTRAST ;
+ unsigned short BRIGHTNESS ;
+ unsigned char PARTIAL_Y [PARTIAL_Y_SIZE];
+ unsigned char PURP_TONE_S [PQ_PARTIALS_CONTROL][PURP_TONE_SIZE];
+ unsigned char SKIN_TONE_S [PQ_PARTIALS_CONTROL][SKIN_TONE_SIZE];
+ unsigned char GRASS_TONE_S [PQ_PARTIALS_CONTROL][GRASS_TONE_SIZE];
+ unsigned char SKY_TONE_S [PQ_PARTIALS_CONTROL][SKY_TONE_SIZE];
+ unsigned char PURP_TONE_H [PURP_TONE_SIZE];
+ unsigned char SKIN_TONE_H [SKIN_TONE_SIZE];
+ unsigned char GRASS_TONE_H [GRASS_TONE_SIZE];
+ unsigned char SKY_TONE_H [SKY_TONE_SIZE];
+ unsigned char S_GAIN_BY_Y [S_GAIN_BY_Y_CONTROL_CNT][S_GAIN_BY_Y_HUE_PHASE_CNT];
+ unsigned char S_GAIN_BY_Y_EN;
+ unsigned char LSP_EN;
+} DISPLAY_COLOR_REG_T;
+
+typedef struct{
+
+ unsigned int entry[THSHP_TUNING_INDEX][THSHP_PARAM_MAX];
+
+} DISPLAY_TDSHP_T;
+
+typedef enum {
+ DS_en = 0,
+ iUpSlope,
+ iUpThreshold,
+ iDownSlope,
+ iDownThreshold,
+ iISO_en,
+ iISO_thr1,
+ iISO_thr0,
+ iISO_thr3,
+ iISO_thr2,
+ iISO_IIR_alpha,
+ iCorZero_clip2,
+ iCorZero_clip1,
+ iCorZero_clip0,
+ iCorThr_clip2,
+ iCorThr_clip1,
+ iCorThr_clip0,
+ iCorGain_clip2,
+ iCorGain_clip1,
+ iCorGain_clip0,
+ iGain_clip2,
+ iGain_clip1,
+ iGain_clip0,
+ PQ_DS_INDEX_MAX
+} PQ_DS_index_t;
+
+
+typedef struct {
+
+ int param[PQ_DS_INDEX_MAX];
+
+} DISP_PQ_DS_PARAM;
+
+
+// OD
+typedef struct {
+ unsigned int size;
+ unsigned int type;
+ unsigned int ret;
+ unsigned int param0;
+ unsigned int param1;
+ unsigned int param2;
+ unsigned int param3;
+} DISP_OD_CMD;
+
+typedef enum
+{
+ DISP_INTERLACE_FORMAT_NONE,
+ DISP_INTERLACE_FORMAT_TOP_FIELD,
+ DISP_INTERLACE_FORMAT_BOTTOM_FIELD
+}DISP_INTERLACE_FORMAT;
+
+#define DISP_IOCTL_MAGIC 'x'
+
+#define DISP_IOCTL_WRITE_REG _IOW (DISP_IOCTL_MAGIC, 1, DISP_WRITE_REG) // also defined in atci_pq_cmd.h
+#define DISP_IOCTL_READ_REG _IOWR (DISP_IOCTL_MAGIC, 2, DISP_READ_REG) // also defined in atci_pq_cmd.h
+//#define DISP_IOCTL_WAIT_IRQ _IOR (DISP_IOCTL_MAGIC, 3, disp_wait_irq_struct)
+#define DISP_IOCTL_DUMP_REG _IOR (DISP_IOCTL_MAGIC, 4, int)
+#define DISP_IOCTL_LOCK_THREAD _IOR (DISP_IOCTL_MAGIC, 5, int)
+#define DISP_IOCTL_UNLOCK_THREAD _IOR (DISP_IOCTL_MAGIC, 6, int)
+#define DISP_IOCTL_MARK_CMQ _IOR (DISP_IOCTL_MAGIC, 7, int)
+#define DISP_IOCTL_WAIT_CMQ _IOR (DISP_IOCTL_MAGIC, 8, int)
+#define DISP_IOCTL_SYNC_REG _IOR (DISP_IOCTL_MAGIC, 9, int)
+
+#define DISP_IOCTL_LOCK_MUTEX _IOW (DISP_IOCTL_MAGIC, 20, int)
+#define DISP_IOCTL_UNLOCK_MUTEX _IOR (DISP_IOCTL_MAGIC, 21, int)
+
+#define DISP_IOCTL_LOCK_RESOURCE _IOW (DISP_IOCTL_MAGIC, 25, int)
+#define DISP_IOCTL_UNLOCK_RESOURCE _IOR (DISP_IOCTL_MAGIC, 26, int)
+
+#define DISP_IOCTL_SET_INTR _IOR (DISP_IOCTL_MAGIC, 10, int)
+#define DISP_IOCTL_TEST_PATH _IOR (DISP_IOCTL_MAGIC, 11, int)
+
+#define DISP_IOCTL_CLOCK_ON _IOR (DISP_IOCTL_MAGIC, 12, int)
+#define DISP_IOCTL_CLOCK_OFF _IOR (DISP_IOCTL_MAGIC, 13, int)
+
+#define DISP_IOCTL_RUN_DPF _IOW (DISP_IOCTL_MAGIC, 30, int)
+#define DISP_IOCTL_CHECK_OVL _IOR (DISP_IOCTL_MAGIC, 31, int)
+#define DISP_IOCTL_GET_OVL _IOWR (DISP_IOCTL_MAGIC, 32, DISP_OVL_INFO)
+
+#define DISP_IOCTL_EXEC_COMMAND _IOW (DISP_IOCTL_MAGIC, 33, DISP_EXEC_COMMAND)
+#define DISP_IOCTL_RESOURCE_REQUIRE _IOR (DISP_IOCTL_MAGIC, 34, int)
+
+//Add for AAL control - S
+//0 : disable AAL event, 1 : enable AAL event
+#define DISP_IOCTL_AAL_EVENTCTL _IOW (DISP_IOCTL_MAGIC, 15 , int)
+//Get AAL statistics data.
+#define DISP_IOCTL_AAL_GET_HIST _IOR (DISP_IOCTL_MAGIC, 16 , DISP_AAL_HIST)
+//Update AAL setting
+#define DISP_IOCTL_AAL_SET_PARAM _IOW (DISP_IOCTL_MAGIC, 17 , DISP_AAL_PARAM)
+#define DISP_IOCTL_AAL_INIT_REG _IOW (DISP_IOCTL_MAGIC, 18 , DISP_AAL_INITREG)
+#define DISP_IOCTL_SET_GAMMALUT _IOW (DISP_IOCTL_MAGIC, 23 , DISP_GAMMA_LUT_T)
+#define DISP_IOCTL_SET_CCORR _IOW (DISP_IOCTL_MAGIC, 24 , DISP_CCORR_COEF_T)
+
+
+//Add for AAL control - E
+/*-----------------------------------------------------------------------------
+ DDP Kernel Mode API (for Kernel Trap)
+ -----------------------------------------------------------------------------*/
+//DDPK Bitblit
+//#define DISP_IOCTL_G_WAIT_REQUEST _IOR (DISP_IOCTL_MAGIC , 40 , DDPIOCTL_DdpkBitbltConfig)
+//#define DISP_IOCTL_T_INFORM_DONE _IOW (DISP_IOCTL_MAGIC , 41 , DDPIOCTL_DdpkBitbltInformDone)
+
+#define DISP_IOCTL_SET_CLKON _IOW (DISP_IOCTL_MAGIC, 50 , DISP_MODULE_ENUM)
+#define DISP_IOCTL_SET_CLKOFF _IOW (DISP_IOCTL_MAGIC, 51 , DISP_MODULE_ENUM)
+
+#define DISP_IOCTL_MUTEX_CONTROL _IOW (DISP_IOCTL_MAGIC, 55 , int) // also defined in atci_pq_cmd.h
+#define DISP_IOCTL_GET_LCMINDEX _IOR (DISP_IOCTL_MAGIC, 56 , int)
+
+// PQ setting
+#define DISP_IOCTL_SET_PQPARAM _IOW (DISP_IOCTL_MAGIC, 60 , DISP_PQ_PARAM)
+#define DISP_IOCTL_GET_PQPARAM _IOR (DISP_IOCTL_MAGIC, 61 , DISP_PQ_PARAM)
+#define DISP_IOCTL_GET_PQINDEX _IOR (DISP_IOCTL_MAGIC, 63, DISPLAY_PQ_T)
+#define DISP_IOCTL_SET_PQINDEX _IOW (DISP_IOCTL_MAGIC, 64 , DISPLAY_PQ_T)
+#define DISP_IOCTL_SET_TDSHPINDEX _IOW (DISP_IOCTL_MAGIC, 65 , DISPLAY_TDSHP_T)
+#define DISP_IOCTL_GET_TDSHPINDEX _IOR (DISP_IOCTL_MAGIC, 66 , DISPLAY_TDSHP_T)
+#define DISP_IOCTL_SET_PQ_CAM_PARAM _IOW (DISP_IOCTL_MAGIC, 67 , DISP_PQ_PARAM)
+#define DISP_IOCTL_GET_PQ_CAM_PARAM _IOR (DISP_IOCTL_MAGIC, 68 , DISP_PQ_PARAM)
+#define DISP_IOCTL_SET_PQ_GAL_PARAM _IOW (DISP_IOCTL_MAGIC, 69 , DISP_PQ_PARAM)
+#define DISP_IOCTL_GET_PQ_GAL_PARAM _IOR (DISP_IOCTL_MAGIC, 70 , DISP_PQ_PARAM)
+
+#define DISP_IOCTL_PQ_SET_BYPASS_COLOR _IOW (DISP_IOCTL_MAGIC, 71 , int)
+#define DISP_IOCTL_PQ_SET_WINDOW _IOW (DISP_IOCTL_MAGIC, 72 , DISP_PQ_WIN_PARAM)
+#define DISP_IOCTL_PQ_GET_TDSHP_FLAG _IOR (DISP_IOCTL_MAGIC, 73 , int)
+#define DISP_IOCTL_PQ_SET_TDSHP_FLAG _IOW (DISP_IOCTL_MAGIC, 74 , int)
+#define DISP_IOCTL_PQ_GET_DC_PARAM _IOR (DISP_IOCTL_MAGIC, 75, DISP_PQ_DC_PARAM)
+#define DISP_IOCTL_PQ_SET_DC_PARAM _IOW (DISP_IOCTL_MAGIC, 76, DISP_PQ_DC_PARAM)
+#define DISP_IOCTL_WRITE_SW_REG _IOW (DISP_IOCTL_MAGIC, 77, DISP_WRITE_REG) // also defined in atci_pq_cmd.h
+#define DISP_IOCTL_READ_SW_REG _IOWR (DISP_IOCTL_MAGIC, 78, DISP_READ_REG) // also defined in atci_pq_cmd.h
+#define DISP_IOCTL_SET_COLOR_REG _IOWR (DISP_IOCTL_MAGIC, 79, DISPLAY_COLOR_REG_T)
+
+// OD
+#define DISP_IOCTL_OD_CTL _IOWR (DISP_IOCTL_MAGIC, 80 , DISP_OD_CMD)
+
+// OVL
+#define DISP_IOCTL_OVL_ENABLE_CASCADE _IOW (DISP_IOCTL_MAGIC, 90 , int)
+#define DISP_IOCTL_OVL_DISABLE_CASCADE _IOW (DISP_IOCTL_MAGIC, 91 , int)
+// PQ setting
+#define DISP_IOCTL_PQ_GET_DS_PARAM _IOR (DISP_IOCTL_MAGIC, 100, DISP_PQ_DS_PARAM)
+#define DISP_IOCTL_PQ_GET_MDP_COLOR_CAP _IOR (DISP_IOCTL_MAGIC, 101, MDP_COLOR_CAP)
+#define DISP_IOCTL_PQ_GET_MDP_TDSHP_REG _IOR (DISP_IOCTL_MAGIC, 102, MDP_TDSHP_REG)
+#endif