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

Commit 49e7ba00 authored by Camera Software Integration's avatar Camera Software Integration Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: cdm: Clear IRQ before reading userdata" into camera-kernel.lnx.1.0

parents 0a09d21e c7424099
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -665,6 +665,12 @@ irqreturn_t cam_hw_cdm_irq(int irq_num, void *data)
			kfree(payload);
			return IRQ_HANDLED;
		}
		if (cam_cdm_write_hw_reg(cdm_hw, CDM_IRQ_CLEAR,
			payload->irq_status))
			CAM_ERR(CAM_CDM, "Failed to Write CDM HW IRQ Clear");
		if (cam_cdm_write_hw_reg(cdm_hw, CDM_IRQ_CLEAR_CMD, 0x01))
			CAM_ERR(CAM_CDM, "Failed to Write CDM HW IRQ cmd");

		if (payload->irq_status &
			CAM_CDM_IRQ_STATUS_INFO_INLINE_IRQ_MASK) {
			if (cam_cdm_read_hw_reg(cdm_hw, CDM_IRQ_USR_DATA,
@@ -677,11 +683,6 @@ irqreturn_t cam_hw_cdm_irq(int irq_num, void *data)
		payload->hw = cdm_hw;
		INIT_WORK((struct work_struct *)&payload->work,
			cam_hw_cdm_work);
		if (cam_cdm_write_hw_reg(cdm_hw, CDM_IRQ_CLEAR,
			payload->irq_status))
			CAM_ERR(CAM_CDM, "Failed to Write CDM HW IRQ Clear");
		if (cam_cdm_write_hw_reg(cdm_hw, CDM_IRQ_CLEAR_CMD, 0x01))
			CAM_ERR(CAM_CDM, "Failed to Write CDM HW IRQ cmd");
		work_status = queue_work(cdm_core->work_queue, &payload->work);
		if (work_status == false) {
			CAM_ERR(CAM_CDM, "Failed to queue work for irq=0x%x",
+14 −1
Original line number Diff line number Diff line
@@ -3750,7 +3750,20 @@ static int cam_ife_mgr_stop_hw(void *hw_mgr_priv, void *stop_hw_args)

	cam_ife_mgr_pause_hw(ctx);

	wait_for_completion(&ctx->config_done_complete);
	rc = wait_for_completion_timeout(
		&ctx->config_done_complete,
		msecs_to_jiffies(300));
	if (rc <= 0) {
		CAM_WARN(CAM_ISP,
			"config done completion timeout for last applied req_id=%llu rc=%d ctx_index %d",
			ctx->applied_req_id, rc, ctx->ctx_index);
		rc = -ETIMEDOUT;
	} else {
		CAM_DBG(CAM_ISP,
			"config done Success for req_id=%llu ctx_index %d",
			ctx->applied_req_id, ctx->ctx_index);
		rc = 0;
	}

	if (stop_isp->stop_only)
		goto end;