diff options
author | Patrick Tjin <pattjin@google.com> | 2015-04-02 10:15:34 -0700 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2015-04-02 10:15:34 -0700 |
commit | b562c238e74c679409fca91c01de03b91a104c30 (patch) | |
tree | e5fec9181fef7af1bdb109f0f542414a3de4638a /original-kernel-headers | |
parent | 8318afe915d8e46faf25d047f5dd987d30cc0175 (diff) | |
download | msm8994-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.h | 29 | ||||
-rw-r--r-- | original-kernel-headers/linux/msm_dsps.h | 16 | ||||
-rw-r--r-- | original-kernel-headers/media/msm_cam_sensor.h | 13 | ||||
-rw-r--r-- | original-kernel-headers/media/msmb_camera.h | 13 | ||||
-rw-r--r-- | original-kernel-headers/media/msmb_generic_buf_mgr.h | 35 | ||||
-rw-r--r-- | original-kernel-headers/media/msmb_isp.h | 21 | ||||
-rw-r--r-- | original-kernel-headers/media/msmb_pproc.h | 46 | ||||
-rw-r--r-- | original-kernel-headers/video/msm_hdmi_modes.h | 8 |
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; |