Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17e71ba7 authored by Shubhraprakash Das's avatar Shubhraprakash Das
Browse files

msm: camera: isp: Stop burst stream on epoch of last frame



Program the burst stream's period and pattern to stop when the
last frame is reached. Presently it is being stopped 1 frame
after the last frame which causes extra power to be used. This
change stops the stream on last frame.

CRs-Fixed: 1036029
Change-Id: I74e9bc8317068089dd6643131e3be11ef3851909
Signed-off-by: default avatarShubhraprakash Das <sadas@codeaurora.org>
parent cc957303
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -619,8 +619,6 @@ static void msm_vfe40_process_reg_update(struct vfe_device *vfe_dev,
				(uint32_t)BIT(i));
			switch (i) {
			case VFE_PIX_0:
				msm_isp_save_framedrop_values(vfe_dev,
					VFE_PIX_0);
				msm_isp_notify(vfe_dev, ISP_EVENT_REG_UPDATE,
					VFE_PIX_0, ts);
				if (atomic_read(
@@ -650,6 +648,7 @@ static void msm_vfe40_process_reg_update(struct vfe_device *vfe_dev,
			}
			if (vfe_dev->axi_data.stream_update[i])
				msm_isp_axi_stream_update(vfe_dev, i);
			msm_isp_save_framedrop_values(vfe_dev, i);
			if (atomic_read(&vfe_dev->axi_data.axi_cfg_update[i])) {
				msm_isp_axi_cfg_update(vfe_dev, i);
				if (atomic_read(
+1 −2
Original line number Diff line number Diff line
@@ -449,8 +449,6 @@ static void msm_vfe44_process_reg_update(struct vfe_device *vfe_dev,
				(uint32_t)BIT(i));
			switch (i) {
			case VFE_PIX_0:
				msm_isp_save_framedrop_values(vfe_dev,
						VFE_PIX_0);
				msm_isp_notify(vfe_dev, ISP_EVENT_REG_UPDATE,
					VFE_PIX_0, ts);
				if (atomic_read(
@@ -480,6 +478,7 @@ static void msm_vfe44_process_reg_update(struct vfe_device *vfe_dev,
			}
			if (vfe_dev->axi_data.stream_update[i])
				msm_isp_axi_stream_update(vfe_dev, i);
			msm_isp_save_framedrop_values(vfe_dev, i);
			if (atomic_read(&vfe_dev->axi_data.axi_cfg_update[i])) {
				msm_isp_axi_cfg_update(vfe_dev, i);
				if (atomic_read(
+1 −2
Original line number Diff line number Diff line
@@ -386,8 +386,6 @@ static void msm_vfe46_process_reg_update(struct vfe_device *vfe_dev,

			switch (i) {
			case VFE_PIX_0:
				msm_isp_save_framedrop_values(vfe_dev,
							VFE_PIX_0);
				msm_isp_notify(vfe_dev, ISP_EVENT_REG_UPDATE,
					VFE_PIX_0, ts);
				if (atomic_read(
@@ -417,6 +415,7 @@ static void msm_vfe46_process_reg_update(struct vfe_device *vfe_dev,
			}
			if (vfe_dev->axi_data.stream_update[i])
				msm_isp_axi_stream_update(vfe_dev, i);
			msm_isp_save_framedrop_values(vfe_dev, i);
			if (atomic_read(&vfe_dev->axi_data.axi_cfg_update[i])) {
				msm_isp_axi_cfg_update(vfe_dev, i);
				if (atomic_read(
+1 −3
Original line number Diff line number Diff line
@@ -586,8 +586,6 @@ void msm_vfe47_process_reg_update(struct vfe_device *vfe_dev,
				(uint32_t)BIT(i));
			switch (i) {
			case VFE_PIX_0:
				msm_isp_save_framedrop_values(vfe_dev,
					VFE_PIX_0);
				msm_isp_notify(vfe_dev, ISP_EVENT_REG_UPDATE,
					VFE_PIX_0, ts);
				if (atomic_read(
@@ -602,7 +600,6 @@ void msm_vfe47_process_reg_update(struct vfe_device *vfe_dev,
			case VFE_RAW_1:
			case VFE_RAW_2:
				msm_isp_increment_frame_id(vfe_dev, i, ts);
				msm_isp_save_framedrop_values(vfe_dev, i);
				msm_isp_notify(vfe_dev, ISP_EVENT_SOF, i, ts);
				msm_isp_update_framedrop_reg(vfe_dev, i);
				/*
@@ -618,6 +615,7 @@ void msm_vfe47_process_reg_update(struct vfe_device *vfe_dev,
			}
			if (vfe_dev->axi_data.stream_update[i])
				msm_isp_axi_stream_update(vfe_dev, i);
			msm_isp_save_framedrop_values(vfe_dev, i);
			if (atomic_read(&vfe_dev->axi_data.axi_cfg_update[i])) {
				msm_isp_axi_cfg_update(vfe_dev, i);
				if (atomic_read(
+3 −1
Original line number Diff line number Diff line
@@ -662,7 +662,9 @@ void msm_isp_update_framedrop_reg(struct vfe_device *vfe_dev,
		spin_lock_irqsave(&stream_info->lock, flags);

		if (BURST_STREAM == stream_info->stream_type) {
			if (0 == stream_info->runtime_num_burst_capture)
			if (0 == stream_info->runtime_num_burst_capture ||
				(stream_info->runtime_num_burst_capture == 1 &&
				stream_info->activated_framedrop_period == 1))
				stream_info->current_framedrop_period =
					MSM_VFE_STREAM_STOP_PERIOD;
		}