Merge "msm: camera: Fix for initial framedrop during burst mode"
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp.h b/drivers/media/platform/msm/camera_v2/isp/msm_isp.h
index c34da73..460e530 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp.h
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp.h
@@ -237,6 +237,7 @@
uint32_t framedrop_pattern;
uint32_t init_frame_drop;
uint32_t burst_frame_count;/*number of sof before burst stop*/
+ uint32_t num_burst_capture;/*number of frame to capture*/
uint8_t auto_trigger_stop;
uint8_t framedrop_update;
};
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
index 699fc62..7647c82 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
@@ -471,6 +471,8 @@
if (stream_cfg_cmd->burst_count > 0) {
stream_info->stream_type = BURST_STREAM;
+ stream_info->num_burst_capture =
+ stream_cfg_cmd->burst_count;
stream_info->burst_frame_count =
stream_cfg_cmd->init_frame_drop +
(stream_cfg_cmd->burst_count - 1) *
@@ -478,6 +480,7 @@
} else {
stream_info->stream_type = CONTINUOUS_STREAM;
stream_info->burst_frame_count = 0;
+ stream_info->num_burst_capture = 0;
}
}
@@ -658,7 +661,7 @@
struct timeval *tv)
{
int i, rc = -1;
- struct msm_isp_buffer *buf;
+ struct msm_isp_buffer *buf = NULL;
struct msm_isp_event_data buf_event;
uint32_t pingpong_bit = 0;
uint32_t bufq_handle = stream_info->bufq_handle;
@@ -669,7 +672,7 @@
vfe_dev->buf_mgr, bufq_handle, &buf);
if (rc < 0) {
if (stream_info->stream_type == BURST_STREAM &&
- stream_info->burst_frame_count <= 1) {
+ stream_info->num_burst_capture <= 1) {
rc = 0;
if (pingpong_bit)
buf = stream_info->buf[0];