summaryrefslogtreecommitdiff
path: root/original-kernel-headers
diff options
context:
space:
mode:
authorPatrick Tjin <pattjin@google.com>2015-04-02 10:15:34 -0700
committerPatrick Tjin <pattjin@google.com>2015-04-02 10:15:34 -0700
commitb562c238e74c679409fca91c01de03b91a104c30 (patch)
treee5fec9181fef7af1bdb109f0f542414a3de4638a /original-kernel-headers
parent8318afe915d8e46faf25d047f5dd987d30cc0175 (diff)
downloadmsm8994-b562c238e74c679409fca91c01de03b91a104c30.tar.gz
msm8994: update kernel headers
LA.BF64.1.2.1_rb2.6 Change-Id: I6c7f8d1159dabf2721e7cbe1525ca38c6148aab0 Signed-off-by: Patrick Tjin <pattjin@google.com>
Diffstat (limited to 'original-kernel-headers')
-rw-r--r--original-kernel-headers/linux/msm-core-interface.h29
-rw-r--r--original-kernel-headers/linux/msm_dsps.h16
-rw-r--r--original-kernel-headers/media/msm_cam_sensor.h13
-rw-r--r--original-kernel-headers/media/msmb_camera.h13
-rw-r--r--original-kernel-headers/media/msmb_generic_buf_mgr.h35
-rw-r--r--original-kernel-headers/media/msmb_isp.h21
-rw-r--r--original-kernel-headers/media/msmb_pproc.h46
-rw-r--r--original-kernel-headers/video/msm_hdmi_modes.h8
8 files changed, 175 insertions, 6 deletions
diff --git a/original-kernel-headers/linux/msm-core-interface.h b/original-kernel-headers/linux/msm-core-interface.h
new file mode 100644
index 0000000..6c0dae4
--- /dev/null
+++ b/original-kernel-headers/linux/msm-core-interface.h
@@ -0,0 +1,29 @@
+#ifndef __MSM_CORE_LIB_H__
+#define __MSM_CORE_LIB_H__
+
+#include <linux/ioctl.h>
+
+#define TEMP_DATA_POINTS 13
+#define MAX_NUM_FREQ 200
+
+enum msm_core_ioctl_params {
+ MSM_CORE_LEAKAGE,
+ MSM_CORE_VOLTAGE,
+};
+
+#define MSM_CORE_MAGIC 0x9D
+
+struct sched_params {
+ uint32_t cpumask;
+ uint32_t cluster;
+ uint32_t power[TEMP_DATA_POINTS][MAX_NUM_FREQ];
+ uint32_t voltage[MAX_NUM_FREQ];
+ uint32_t freq[MAX_NUM_FREQ];
+};
+
+
+#define EA_LEAKAGE _IOWR(MSM_CORE_MAGIC, MSM_CORE_LEAKAGE,\
+ struct sched_params)
+#define EA_VOLT _IOWR(MSM_CORE_MAGIC, MSM_CORE_VOLTAGE,\
+ struct sched_params)
+#endif
diff --git a/original-kernel-headers/linux/msm_dsps.h b/original-kernel-headers/linux/msm_dsps.h
new file mode 100644
index 0000000..a21927d
--- /dev/null
+++ b/original-kernel-headers/linux/msm_dsps.h
@@ -0,0 +1,16 @@
+#ifndef _UAPI_DSPS_H_
+#define _UAPI_DSPS_H_
+
+#include <linux/ioctl.h>
+
+#define DSPS_IOCTL_MAGIC 'd'
+
+#define DSPS_IOCTL_ON _IO(DSPS_IOCTL_MAGIC, 1)
+#define DSPS_IOCTL_OFF _IO(DSPS_IOCTL_MAGIC, 2)
+
+#define DSPS_IOCTL_READ_SLOW_TIMER _IOR(DSPS_IOCTL_MAGIC, 3, unsigned int*)
+#define DSPS_IOCTL_READ_FAST_TIMER _IOR(DSPS_IOCTL_MAGIC, 4, unsigned int*)
+
+#define DSPS_IOCTL_RESET _IO(DSPS_IOCTL_MAGIC, 5)
+
+#endif /* _UAPI_DSPS_H_ */
diff --git a/original-kernel-headers/media/msm_cam_sensor.h b/original-kernel-headers/media/msm_cam_sensor.h
index 6cf6e47..4a3636e 100644
--- a/original-kernel-headers/media/msm_cam_sensor.h
+++ b/original-kernel-headers/media/msm_cam_sensor.h
@@ -5,6 +5,7 @@
#include <sys/types.h>
#endif
+#include <linux/v4l2-mediabus.h>
#include <media/msm_camsensor_sdk.h>
#include <linux/types.h>
@@ -37,6 +38,16 @@
#define MAX_AF_ITERATIONS 3
#define MAX_NUMBER_OF_STEPS 47
+#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */
+#define MSM_V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4')
+ /* 14 BGBG.. GRGR.. */
+#define MSM_V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4')
+ /* 14 GBGB.. RGRG.. */
+#define MSM_V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4')
+ /* 14 GRGR.. BGBG.. */
+#define MSM_V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4')
+ /* 14 RGRG.. GBGB.. */
+
enum flash_type {
LED_FLASH = 1,
STROBE_FLASH,
@@ -558,6 +569,7 @@ struct msm_camera_led_cfg_t {
struct msm_flash_init_info_t {
enum msm_flash_driver_type flash_driver_type;
+ uint32_t slave_addr;
struct msm_sensor_power_setting_array *power_setting_array;
struct msm_camera_i2c_reg_setting_array *settings;
};
@@ -729,6 +741,7 @@ struct msm_ois_cfg_data32 {
struct msm_flash_init_info_t32 {
enum msm_flash_driver_type flash_driver_type;
+ uint32_t slave_addr;
compat_uptr_t power_setting_array;
compat_uptr_t settings;
};
diff --git a/original-kernel-headers/media/msmb_camera.h b/original-kernel-headers/media/msmb_camera.h
index d053589..0ce83be 100644
--- a/original-kernel-headers/media/msmb_camera.h
+++ b/original-kernel-headers/media/msmb_camera.h
@@ -61,9 +61,13 @@
/* The below macro is defined to put an upper limit on maximum
* number of buffer requested per stream. In case of extremely
* large value for number of buffer due to data structure corruption
- * we return error to avoid integer overflow. This value may be
+ * we return error to avoid integer overflow. Group processing
+ * can have max of 9 groups of 8 bufs each. This value may be
* configured in future*/
-#define MSM_CAMERA_MAX_STREAM_BUF 40
+#define MSM_CAMERA_MAX_STREAM_BUF 72
+
+/* Max batch size of processing */
+#define MSM_CAMERA_MAX_USER_BUFF_CNT 16
/* featur base */
#define MSM_CAMERA_FEATURE_BASE 0x00010000
@@ -196,4 +200,9 @@ struct msm_camera_smmu_attach_type {
enum smmu_attach_mode attach;
};
+struct msm_camera_user_buf_cont_t {
+ unsigned int buf_cnt;
+ unsigned int buf_idx[MSM_CAMERA_MAX_USER_BUFF_CNT];
+};
+
#endif /* __LINUX_MSMB_CAMERA_H */
diff --git a/original-kernel-headers/media/msmb_generic_buf_mgr.h b/original-kernel-headers/media/msmb_generic_buf_mgr.h
index a5823e6..8645e95 100644
--- a/original-kernel-headers/media/msmb_generic_buf_mgr.h
+++ b/original-kernel-headers/media/msmb_generic_buf_mgr.h
@@ -1,6 +1,20 @@
#ifndef __UAPI_MEDIA_MSMB_BUF_MNGR_H__
#define __UAPI_MEDIA_MSMB_BUF_MNGR_H__
+#include <media/msmb_camera.h>
+
+enum msm_camera_buf_mngr_cmd {
+ MSM_CAMERA_BUF_MNGR_CONT_MAP,
+ MSM_CAMERA_BUF_MNGR_CONT_UNMAP,
+ MSM_CAMERA_BUF_MNGR_CONT_MAX,
+};
+
+enum msm_camera_buf_mngr_buf_type {
+ MSM_CAMERA_BUF_MNGR_BUF_PLANAR,
+ MSM_CAMERA_BUF_MNGR_BUF_USER,
+ MSM_CAMERA_BUF_MNGR_BUF_INVALID,
+};
+
struct msm_buf_mngr_info {
uint32_t session_id;
uint32_t stream_id;
@@ -8,6 +22,16 @@ struct msm_buf_mngr_info {
struct timeval timestamp;
uint32_t index;
uint32_t reserved;
+ enum msm_camera_buf_mngr_buf_type type;
+ struct msm_camera_user_buf_cont_t user_buf;
+};
+
+struct msm_buf_mngr_main_cont_info {
+ uint32_t session_id;
+ uint32_t stream_id;
+ enum msm_camera_buf_mngr_cmd cmd;
+ uint32_t cnt;
+ int32_t cont_fd;
};
struct v4l2_subdev *msm_buf_mngr_get_subdev(void);
@@ -21,11 +45,15 @@ struct v4l2_subdev *msm_buf_mngr_get_subdev(void);
#define VIDIOC_MSM_BUF_MNGR_BUF_DONE \
_IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info)
+#define VIDIOC_MSM_BUF_MNGR_CONT_CMD \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 36, struct msm_buf_mngr_main_cont_info)
+
#define VIDIOC_MSM_BUF_MNGR_INIT \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 36, struct msm_buf_mngr_info)
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 37, struct msm_buf_mngr_info)
#define VIDIOC_MSM_BUF_MNGR_DEINIT \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 37, struct msm_buf_mngr_info)
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 38, struct msm_buf_mngr_info)
+
#ifdef CONFIG_COMPAT
struct msm_buf_mngr_info32_t {
@@ -35,6 +63,8 @@ struct msm_buf_mngr_info32_t {
struct compat_timeval timestamp;
uint32_t index;
uint32_t reserved;
+ enum msm_camera_buf_mngr_buf_type type;
+ struct msm_camera_user_buf_cont_t user_buf;
};
#define VIDIOC_MSM_BUF_MNGR_GET_BUF32 \
@@ -45,6 +75,7 @@ struct msm_buf_mngr_info32_t {
#define VIDIOC_MSM_BUF_MNGR_BUF_DONE32 \
_IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info32_t)
+
#endif
#endif
diff --git a/original-kernel-headers/media/msmb_isp.h b/original-kernel-headers/media/msmb_isp.h
index 61eed72..22a7645 100644
--- a/original-kernel-headers/media/msmb_isp.h
+++ b/original-kernel-headers/media/msmb_isp.h
@@ -103,6 +103,7 @@ enum msm_isp_stats_type {
MSM_ISP_STATS_BF_SCALE, /* Bayer Focus scale */
MSM_ISP_STATS_HDR_BE, /* HDR Bayer Exposure */
MSM_ISP_STATS_HDR_BHIST, /* HDR Bayer Hist */
+ MSM_ISP_STATS_AEC_BG, /* AEC BG */
MSM_ISP_STATS_MAX /* MAX */
};
@@ -152,6 +153,18 @@ struct msm_vfe_fetch_engine_cfg {
uint32_t buf_stride;
};
+/*
+ * Camif output general configuration
+ */
+struct msm_vfe_camif_subsample_cfg {
+ uint32_t irq_subsample_period;
+ uint32_t irq_subsample_pattern;
+ uint32_t sof_counter_step;
+};
+
+/*
+ * Camif frame and window configuration
+ */
struct msm_vfe_camif_cfg {
uint32_t lines_per_frame;
uint32_t pixels_per_line;
@@ -162,6 +175,7 @@ struct msm_vfe_camif_cfg {
uint32_t epoch_line0;
uint32_t epoch_line1;
enum msm_vfe_camif_input camif_input;
+ struct msm_vfe_camif_subsample_cfg subsample_cfg;
};
struct msm_vfe_testgen_cfg {
@@ -471,7 +485,8 @@ enum msm_isp_event_idx {
ISP_CAMIF_ERROR = 8,
ISP_BUF_DONE = 9,
ISP_FE_RD_DONE = 10,
- ISP_EVENT_MAX = 11
+ ISP_IOMMU_P_FAULT = 11,
+ ISP_EVENT_MAX = 12
};
#define ISP_EVENT_OFFSET 8
@@ -496,6 +511,7 @@ enum msm_isp_event_idx {
#define ISP_EVENT_STATS_NOTIFY (ISP_STATS_EVENT_BASE)
#define ISP_EVENT_COMP_STATS_NOTIFY (ISP_EVENT_STATS_NOTIFY + MSM_ISP_STATS_MAX)
#define ISP_EVENT_FE_READ_DONE (ISP_EVENT_BASE + ISP_FE_RD_DONE)
+#define ISP_EVENT_IOMMU_P_FAULT (ISP_EVENT_BASE + ISP_IOMMU_P_FAULT)
#define ISP_EVENT_STREAM_UPDATE_DONE (ISP_STREAM_EVENT_BASE)
/* The msm_v4l2_event_data structure should match the
@@ -634,4 +650,7 @@ struct msm_isp_event_data {
#define VIDIOC_MSM_ISP_FETCH_ENG_START \
_IOWR('V', BASE_VIDIOC_PRIVATE+20, struct msm_vfe_fetch_eng_start)
+#define VIDIOC_MSM_ISP_DEQUEUE_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+21, struct msm_isp_qbuf_info)
+
#endif /* __MSMB_ISP__ */
diff --git a/original-kernel-headers/media/msmb_pproc.h b/original-kernel-headers/media/msmb_pproc.h
index 4a575bb..ac80cb3 100644
--- a/original-kernel-headers/media/msmb_pproc.h
+++ b/original-kernel-headers/media/msmb_pproc.h
@@ -13,11 +13,13 @@
/* Should be same as VIDEO_MAX_PLANES in videodev2.h */
#define MAX_PLANES VIDEO_MAX_PLANES
+/* PARTIAL_FRAME_STRIPE_COUNT must be even */
+#define PARTIAL_FRAME_STRIPE_COUNT 4
#define MAX_NUM_CPP_STRIPS 8
#define MSM_CPP_MAX_NUM_PLANES 3
#define MSM_CPP_MIN_FRAME_LENGTH 13
-#define MSM_CPP_MAX_FRAME_LENGTH 2048
+#define MSM_CPP_MAX_FRAME_LENGTH 4096
#define MSM_CPP_MAX_FW_NAME_LEN 32
#define MAX_FREQ_TBL 10
@@ -192,11 +194,32 @@ struct msm_cpp_frame_info_t {
int32_t *status;
int32_t duplicate_output;
uint32_t duplicate_identity;
+ uint32_t feature_mask;
uint8_t we_disable;
struct msm_cpp_buffer_info_t input_buffer_info;
struct msm_cpp_buffer_info_t output_buffer_info[2];
struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2];
uint32_t reserved;
+ uint8_t partial_frame_indicator;
+ /* the followings are used only for partial_frame type
+ * and is only used for offline frame processing and
+ * only if payload big enough and need to be split into partial_frame
+ * if first_payload, kernel acquires output buffer
+ * first payload must have the last stripe
+ * buffer addresses from 0 to last_stripe_index are updated.
+ * kernel updates payload with msg_len and stripe_info
+ * kernel sends top level, plane level, then only stripes
+ * starting with first_stripe_index and
+ * ends with last_stripe_index
+ * kernel then sends trailing flag at frame done,
+ * if last payload, kernel queues the output buffer to HAL
+ */
+ uint8_t first_payload;
+ uint8_t last_payload;
+ uint32_t first_stripe_index;
+ uint32_t last_stripe_index;
+ uint32_t stripe_info_offset;
+ uint32_t stripe_info;
};
struct msm_cpp_pop_stream_info_t {
@@ -365,11 +388,32 @@ struct msm_cpp_frame_info32_t {
compat_int_t status;
int32_t duplicate_output;
uint32_t duplicate_identity;
+ uint32_t feature_mask;
uint8_t we_disable;
struct msm_cpp_buffer_info_t input_buffer_info;
struct msm_cpp_buffer_info_t output_buffer_info[2];
struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2];
uint32_t reserved;
+ uint8_t partial_frame_indicator;
+ /* the followings are used only for partial_frame type
+ * and is only used for offline frame processing and
+ * only if payload big enough and need to be split into partial_frame
+ * if first_payload, kernel acquires output buffer
+ * first payload must have the last stripe
+ * buffer addresses from 0 to last_stripe_index are updated.
+ * kernel updates payload with msg_len and stripe_info
+ * kernel sends top level, plane level, then only stripes
+ * starting with first_stripe_index and
+ * ends with last_stripe_index
+ * kernel then sends trailing flag at frame done,
+ * if last payload, kernel queues the output buffer to HAL
+ */
+ uint8_t first_payload;
+ uint8_t last_payload;
+ uint32_t first_stripe_index;
+ uint32_t last_stripe_index;
+ uint32_t stripe_info_offset;
+ uint32_t stripe_info;
};
struct msm_cpp_clock_settings32_t {
diff --git a/original-kernel-headers/video/msm_hdmi_modes.h b/original-kernel-headers/video/msm_hdmi_modes.h
index d443f00..44ed62c 100644
--- a/original-kernel-headers/video/msm_hdmi_modes.h
+++ b/original-kernel-headers/video/msm_hdmi_modes.h
@@ -11,6 +11,14 @@ enum aspect_ratio {
HDMI_RES_AR_MAX,
};
+enum msm_hdmi_s3d_mode {
+ HDMI_S3D_NONE,
+ HDMI_S3D_SIDE_BY_SIDE,
+ HDMI_S3D_TOP_AND_BOTTOM,
+ HDMI_S3D_FRAME_PACKING,
+ HDMI_S3D_MAX,
+};
+
struct msm_hdmi_mode_timing_info {
uint32_t video_format;
uint32_t active_h;