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

Commit d4bd2eb8 authored by Ravikishore Pampana's avatar Ravikishore Pampana
Browse files

msm: camera: isp: Stop ife hw mgr tasklet after ife resource stop



Ife HW manager tasklet need to stop after the ife mux and ife out
resource stop. If tasklet stopped first, then there is possibility
that vfe core irq event payload get leaked. This eventually leads
irq payload not available in multiple camera runs and cause camera
preview fail.

Change the bus process command and set clock rate log to debug log
as logs are coming for every run.

Change-Id: If6c23fc69c5fdb5549a08da7906ec681d794c1cc
Signed-off-by: default avatarRavikishore Pampana <rpampana@codeaurora.org>
parent 9c2abd25
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1809,7 +1809,6 @@ static int cam_ife_mgr_stop_hw(void *hw_mgr_priv, void *stop_hw_args)
	if (cam_cdm_stream_off(ctx->cdm_handle))
		CAM_ERR(CAM_ISP, "CDM stream off failed %d",
			ctx->cdm_handle);
	cam_tasklet_stop(ctx->common.tasklet_info);

	CAM_DBG(CAM_ISP, "Going to stop IFE Mux");

@@ -1831,6 +1830,8 @@ static int cam_ife_mgr_stop_hw(void *hw_mgr_priv, void *stop_hw_args)
		}
	}

	cam_tasklet_stop(ctx->common.tasklet_info);

	/*
	 * If Context does not have PIX resources and has only RDI resource
	 * then take the first base index.
+1 −1
Original line number Diff line number Diff line
@@ -2849,7 +2849,7 @@ static int cam_vfe_bus_process_cmd(
	case CAM_ISP_HW_CMD_STOP_BUS_ERR_IRQ:
		bus_priv = (struct cam_vfe_bus_ver2_priv  *) priv;
		if (bus_priv->error_irq_handle) {
			CAM_INFO(CAM_ISP, "Mask off bus error irq handler");
			CAM_DBG(CAM_ISP, "Mask off bus error irq handler");
			rc = cam_irq_controller_unsubscribe_irq(
				bus_priv->common_data.bus_irq_controller,
				bus_priv->error_irq_handle);
+1 −1
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ static int cam_vfe_top_clock_update(
	}

	if (hw_info->hw_state != CAM_HW_STATE_POWER_UP) {
		CAM_ERR_RATE_LIMIT(CAM_ISP,
		CAM_DBG(CAM_ISP,
			"VFE:%d Not ready to set clocks yet :%d",
			res->hw_intf->hw_idx,
			hw_info->hw_state);