summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-06-12 10:36:43 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-06-12 10:36:42 -0700
commitead1dfc47b9c5fdcd99208cc1e749b2209a62e5c (patch)
tree7a9389f08638f29db34c32a0ad01a37d49770423 /include
parentce20da02ae6f932bc4da635d7fbf34de52f84f9a (diff)
parentb97610ffa10fb31fccd1c158444b7867ab07db79 (diff)
Merge "msm : ais : diagnostic feature"
Diffstat (limited to 'include')
-rw-r--r--include/uapi/media/ais/msm_ais_isp.h32
-rw-r--r--include/uapi/media/ais/msm_ais_ispif.h8
-rw-r--r--include/uapi/media/ais/msm_ais_mgr.h73
-rw-r--r--include/uapi/media/ais/msm_ais_sensor.h10
4 files changed, 120 insertions, 3 deletions
diff --git a/include/uapi/media/ais/msm_ais_isp.h b/include/uapi/media/ais/msm_ais_isp.h
index 55bc5290ce28..2b4f0bfeb8c2 100644
--- a/include/uapi/media/ais/msm_ais_isp.h
+++ b/include/uapi/media/ais/msm_ais_isp.h
@@ -619,6 +619,33 @@ struct msm_vfe_axi_src_state {
uint32_t src_frame_id;
};
+enum msm_vfe_cmd_ext_type_t {
+ VFE_GET_BUFQ_STATE,
+};
+
+enum msm_isp_buffer_state {
+ MSM_ISP_BUFFER_STATE_UNUSED, /* not used */
+ MSM_ISP_BUFFER_STATE_INITIALIZED, /* REQBUF done */
+ MSM_ISP_BUFFER_STATE_PREPARED, /* BUF mapped */
+ MSM_ISP_BUFFER_STATE_QUEUED, /* buf queued */
+ MSM_ISP_BUFFER_STATE_DEQUEUED, /* in use in VFE */
+ MSM_ISP_BUFFER_STATE_DIVERTED, /* Sent to other hardware*/
+ MSM_ISP_BUFFER_STATE_DISPATCHED, /* Sent to HAL*/
+};
+
+struct msm_vfe_bufq_state {
+ uint32_t handle;
+ uint32_t nbufs;
+ int32_t __user *buf_state;
+};
+
+struct msm_vfe_cmd_ext {
+ enum msm_vfe_cmd_ext_type_t type;
+ union {
+ struct msm_vfe_bufq_state bufq_state;
+ } data;
+};
+
enum msm_isp_event_mask_index {
ISP_EVENT_MASK_INDEX_STATS_NOTIFY = 0,
ISP_EVENT_MASK_INDEX_ERROR = 1,
@@ -975,6 +1002,7 @@ enum msm_isp_ioctl_cmd_code {
MSM_ISP_STOP,
MSM_ISP_SET_CLK_STATUS,
+ MSM_ISP_CMD_EXT,
};
@@ -1110,4 +1138,8 @@ enum msm_isp_ioctl_cmd_code {
_IOWR('V', MSM_ISP_SET_CLK_STATUS, \
unsigned int)
+#define VIDIOC_MSM_ISP_CMD_EXT \
+ _IOWR('V', MSM_ISP_CMD_EXT, \
+ struct msm_vfe_cmd_ext)
+
#endif /* __UAPI_MSM_AIS_ISP__ */
diff --git a/include/uapi/media/ais/msm_ais_ispif.h b/include/uapi/media/ais/msm_ais_ispif.h
index b12175d787c2..a184e2983ab6 100644
--- a/include/uapi/media/ais/msm_ais_ispif.h
+++ b/include/uapi/media/ais/msm_ais_ispif.h
@@ -4,6 +4,7 @@
#include <linux/types.h>
#include <linux/ioctl.h>
#include <linux/videodev2.h>
+#include <media/ais/msm_ais_mgr.h>
#define CSID_VERSION_V20 0x02000011
#define CSID_VERSION_V22 0x02001000
@@ -141,10 +142,13 @@ enum ispif_cfg_type_t {
ISPIF_STOP,
ISPIF_ENABLE_REG_DUMP,
ISPIF_SET_VFE_INFO,
- ISPIF_CFG2
+ ISPIF_CFG2,
+ ISPIF_READ_REG_LIST_CMD,
+ ISPIF_WRITE_REG_LIST_CMD,
};
+
struct ispif_cfg_data_ext {
enum ispif_cfg_type_t cfg_type;
void __user *data;
@@ -158,10 +162,12 @@ struct ispif_cfg_data {
uint32_t csid_version; /* ISPIF_INIT */
struct msm_ispif_vfe_info vfe_info; /* ISPIF_SET_VFE_INFO */
struct msm_ispif_param_data params; /* CFG, START, STOP */
+ struct msm_camera_reg_list_cmd *reg_list;
};
};
#define ISPIF_RDI_PACK_MODE_SUPPORT 1
+#define ISPIF_RW_REG_LIST_SUPPORT
#define VIDIOC_MSM_ISPIF_CFG \
_IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data)
diff --git a/include/uapi/media/ais/msm_ais_mgr.h b/include/uapi/media/ais/msm_ais_mgr.h
index 43ae16df65f9..bfac1ac8296a 100644
--- a/include/uapi/media/ais/msm_ais_mgr.h
+++ b/include/uapi/media/ais/msm_ais_mgr.h
@@ -3,16 +3,87 @@
#include <media/ais/msm_ais.h>
+#define VREGNAME_SIZE 32
+#define CLKNAME_SIZE 32
+
+enum cam_ahb_clk_vote {
+ /* need to update the voting requests
+ * according to dtsi entries.
+ */
+ CAM_AHB_SUSPEND_VOTE = 0x0,
+ CAM_AHB_SVS_VOTE = 0x01,
+ CAM_AHB_NOMINAL_VOTE = 0x02,
+ CAM_AHB_TURBO_VOTE = 0x03,
+ CAM_AHB_DYNAMIC_VOTE = 0xFF,
+};
+
enum clk_mgr_cfg_type_t {
AIS_CLK_ENABLE,
AIS_CLK_DISABLE,
+ AIS_CLK_ENABLE_ALLCLK,
+ AIS_CLK_DISABLE_ALLCLK
+};
+
+enum ais_mgr_cfg_ext_type_t {
+ AIS_DIAG_GET_REGULATOR_INFO_LIST,
+ AIS_DIAG_GET_BUS_INFO_STATE,
+ AIS_DIAG_GET_CLK_INFO_LIST,
+ AIS_DIAG_GET_GPIO_LIST,
+ AIS_DIAG_SET_GPIO_LIST,
};
#define AIS_CLK_ENABLE AIS_CLK_ENABLE
#define AIS_CLK_DISABLE AIS_CLK_DISABLE
+
+struct msm_camera_reg_list_cmd {
+ void __user *value_list;
+ void __user *regaddr_list;
+ uint32_t reg_num;
+};
+
+struct msm_ais_diag_regulator_info_t {
+ int enable;
+ char regulatorname[VREGNAME_SIZE];
+};
+
+struct msm_ais_diag_regulator_info_list_t {
+ struct msm_ais_diag_regulator_info_t *infolist;
+ uint32_t regulator_num;
+};
+
+struct msm_ais_diag_bus_info_t {
+ enum cam_ahb_clk_vote ahb_clk_vote_state;
+ uint32_t isp_bus_vector_idx; /* 0 - init 1- ping 2 - pong */
+ uint64_t isp_ab;
+ uint64_t isp_ib;
+};
+
+struct msm_ais_diag_clk_info_t {
+ char clk_name[CLKNAME_SIZE];
+ long clk_rate;
+ uint8_t enable;
+};
+
+struct msm_ais_diag_clk_list_t {
+ void __user *clk_info;
+ uint32_t clk_num;
+};
+
+struct msm_ais_diag_gpio_list_t {
+ uint32_t __user *gpio_idx_list;
+ int32_t __user *gpio_val_list;
+ uint32_t gpio_num;
+};
+
struct clk_mgr_cfg_data_ext {
- enum clk_mgr_cfg_type_t cfg_type;
+ enum ais_mgr_cfg_ext_type_t cfg_type;
+ union {
+ struct msm_ais_diag_regulator_info_list_t vreg_infolist;
+ struct msm_ais_diag_bus_info_t bus_info;
+ struct msm_ais_diag_clk_list_t clk_infolist;
+ struct msm_ais_diag_gpio_list_t gpio_list;
+ } data;
};
struct clk_mgr_cfg_data {
diff --git a/include/uapi/media/ais/msm_ais_sensor.h b/include/uapi/media/ais/msm_ais_sensor.h
index ca9bcf96bcb0..633f3f227174 100644
--- a/include/uapi/media/ais/msm_ais_sensor.h
+++ b/include/uapi/media/ais/msm_ais_sensor.h
@@ -3,7 +3,7 @@
#include <linux/v4l2-mediabus.h>
#include <media/ais/msm_ais_sensor_sdk.h>
-
+#include <media/ais/msm_ais_mgr.h>
#include <linux/types.h>
#include <linux/i2c.h>
@@ -152,6 +152,8 @@ enum csid_cfg_type_t {
CSID_START,
CSID_STOP,
CSID_RELEASE,
+ CSID_READ_REG_LIST_CMD,
+ CSID_WRITE_REG_LIST_CMD,
};
enum csiphy_cfg_type_t {
@@ -160,6 +162,8 @@ enum csiphy_cfg_type_t {
CSIPHY_START,
CSIPHY_STOP,
CSIPHY_RELEASE,
+ CSIPHY_READ_REG_LIST_CMD,
+ CSIPHY_WRITE_REG_LIST_CMD,
};
enum camera_vreg_type {
@@ -291,6 +295,7 @@ struct csid_cfg_data {
struct msm_camera_csid_params *csid_params;
struct msm_camera_csid_testmode_parms *csid_testmode_params;
uint32_t csid_cidmask;
+ struct msm_camera_reg_list_cmd *csid_reg_list_cmd;
} cfg;
};
@@ -299,6 +304,7 @@ struct csiphy_cfg_data {
union {
struct msm_camera_csiphy_params *csiphy_params;
struct msm_camera_csi_lane_params *csi_lane_params;
+ struct msm_camera_reg_list_cmd *csiphy_reg_list_cmd;
} cfg;
};
@@ -613,6 +619,8 @@ struct sensor_init_cfg_data {
} cfg;
};
+#define CSI_RW_REG_LIST_SUPPORT
+
#define VIDIOC_MSM_SENSOR_CFG \
_IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)