Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / camera_pipe_mgr_imp.h
1 //-----------------------------------------------------------------------------
2 #ifndef CAMERA_PIPE_MGR_IMP_H
3 #define CAMERA_PIPE_MGR_IMP_H
4 //-----------------------------------------------------------------------------
5 typedef unsigned long long MUINT64;
6 typedef long long MINT64;
7 typedef unsigned long MUINT32;
8 typedef long MINT32;
9 typedef unsigned char MUINT8;
10 typedef char MINT8;
11 typedef bool MBOOL;
12 #define MTRUE true
13 #define MFALSE false
14 //-----------------------------------------------------------------------------
15 #define LOG_TAG "CamPipeMgr"
16 #define LOG_MSG(fmt, arg...) xlog_printk(ANDROID_LOG_VERBOSE, LOG_TAG, "[%s]" fmt "\r\n", __FUNCTION__, ##arg)
17 #define LOG_WRN(fmt, arg...) xlog_printk(ANDROID_LOG_VERBOSE, LOG_TAG, "[%s]WRN(%5d):" fmt "\r\n", __FUNCTION__, __LINE__, ##arg)
18 #define LOG_ERR(fmt, arg...) xlog_printk(ANDROID_LOG_ERROR, LOG_TAG, "[%s]ERR(%5d):" fmt "\r\n", __FUNCTION__, __LINE__, ##arg)
19 #define LOG_DMP(fmt, arg...) xlog_printk(ANDROID_LOG_ERROR, LOG_TAG, "" fmt, ##arg)
20 //-----------------------------------------------------------------------------
21 #define CAM_PIPE_MGR_DEV_NUM (1)
22 #define CAM_PIPE_MGR_DEV_MINOR_NUM (1)
23 #define CAM_PIPE_MGR_DEV_NO_MINOR (0)
24 #define CAM_PIPE_MGR_JIFFIES_MAX (0xFFFFFFFF)
25 #define CAM_PIPE_MGR_PROC_NAME "Default"
26 #define CAM_PIPE_MGR_SCEN_HW_AMOUNT (7)
27 #define CAM_PIPE_MGR_TIMEOUT_MAX (10*1000)
28 //-----------------------------------------------------------------------------
29 #define CAM_PIPE_MGR_PIPE_NAME_LEN (10)
30 #define CAM_PIPE_MGR_PIPE_NAME_CAM_IO "CamIO"
31 #define CAM_PIPE_MGR_PIPE_NAME_POST_PROC "PostProc"
32 #define CAM_PIPE_MGR_PIPE_NAME_XDP_CAM "CamXDP"
33 //-----------------------------------------------------------------------------
34 typedef enum
35 {
36 CAM_PIPE_MGR_PIPE_CAM_IO,
37 CAM_PIPE_MGR_PIPE_POST_PROC,
38 CAM_PIPE_MGR_PIPE_XDP_CAM,
39 CAM_PIPE_MGR_PIPE_AMOUNT
40 }CAM_PIPE_MGR_PIPE_ENUM;
41 //
42 typedef enum
43 {
44 CAM_PIPE_MGR_STATUS_OK,
45 CAM_PIPE_MGR_STATUS_FAIL,
46 CAM_PIPE_MGR_STATUS_TIMEOUT,
47 CAM_PIPE_MGR_STATUS_UNKNOW
48 }CAM_PIPE_MGR_STATUS_ENUM;
49 //
50 #define CAM_PIPE_MGR_LOCK_TABLE_NONE ( 0)
51 #define CAM_PIPE_MGR_LOCK_TABLE_IC ( (1<<CAM_PIPE_MGR_PIPE_CAM_IO)| \
52 (1<<CAM_PIPE_MGR_PIPE_POST_PROC))
53 #define CAM_PIPE_MGR_LOCK_TABLE_VR ( (1<<CAM_PIPE_MGR_PIPE_CAM_IO)| \
54 (1<<CAM_PIPE_MGR_PIPE_XDP_CAM))
55 #define CAM_PIPE_MGR_LOCK_TABLE_ZSD ( (1<<CAM_PIPE_MGR_PIPE_CAM_IO)| \
56 (1<<CAM_PIPE_MGR_PIPE_XDP_CAM))
57 #define CAM_PIPE_MGR_LOCK_TABLE_IP ( (1<<CAM_PIPE_MGR_PIPE_POST_PROC))
58 #define CAM_PIPE_MGR_LOCK_TABLE_N3D ( (1<<CAM_PIPE_MGR_PIPE_CAM_IO)| \
59 (1<<CAM_PIPE_MGR_PIPE_POST_PROC))
60 #define CAM_PIPE_MGR_LOCK_TABLE_VSS ( (1<<CAM_PIPE_MGR_PIPE_CAM_IO)| \
61 (1<<CAM_PIPE_MGR_PIPE_POST_PROC))
62 //-----------------------------------------------------------------------------
63 typedef struct
64 {
65 pid_t Pid;
66 pid_t Tgid;
67 char ProcName[TASK_COMM_LEN];
68 MUINT32 PipeMask;
69 MUINT32 TimeS;
70 MUINT32 TimeUS;
71 }CAM_PIPE_MGR_PROC_STRUCT;
72 //
73 typedef struct
74 {
75 pid_t Pid;
76 pid_t Tgid;
77 char ProcName[TASK_COMM_LEN];
78 MUINT32 TimeS;
79 MUINT32 TimeUS;
80 }CAM_PIPE_MGR_PIPE_STRUCT;
81 //
82 typedef struct
83 {
84 MUINT32 PipeMask;
85 spinlock_t SpinLock;
86 dev_t DevNo;
87 struct cdev* pCharDrv;
88 struct class* pClass;
89 wait_queue_head_t WaitQueueHead;
90 CAM_PIPE_MGR_MODE_STRUCT Mode;
91 CAM_PIPE_MGR_PIPE_STRUCT PipeInfo[CAM_PIPE_MGR_PIPE_AMOUNT];
92 char PipeName[CAM_PIPE_MGR_PIPE_AMOUNT][CAM_PIPE_MGR_PIPE_NAME_LEN];
93 MUINT32 PipeLockTable[CAM_PIPE_MGR_SCEN_HW_AMOUNT];
94 MUINT32 LogMask;
95 }CAM_PIPE_MGR_STRUCT;
96 //-----------------------------------------------------------------------------
97 #endif
98 //-----------------------------------------------------------------------------
99