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];