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

Commit 341a3b6c authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "msm: camera: isp: Handle early PCR for all pipelines""

parents 8ece3fcd fd3ca846
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -3290,7 +3290,7 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx,
	ctx_isp->reported_req_id = 0;
	ctx_isp->substate_activated = ctx_isp->rdi_only_context ?
		CAM_ISP_CTX_ACTIVATED_APPLIED :
		(req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_APPLIED :
		(req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_EPOCH :
		CAM_ISP_CTX_ACTIVATED_SOF;

	/*
@@ -3312,8 +3312,13 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx,
	CAM_DBG(CAM_ISP, "start device success ctx %u", ctx->ctx_id);

	list_del_init(&req->list);
	list_add_tail(&req->list, &ctx->wait_req_list);

	if (req_isp->num_fence_map_out) {
		list_add_tail(&req->list, &ctx->active_req_list);
		ctx_isp->active_req_cnt++;
	} else {
		list_add_tail(&req->list, &ctx->wait_req_list);
	}
end:
	return rc;
}
+7 −3
Original line number Diff line number Diff line
@@ -1941,7 +1941,9 @@ int cam_req_mgr_process_add_req(void *priv, void *data)
	mutex_lock(&link->req.lock);
	idx = __cam_req_mgr_find_slot_for_req(link->req.in_q, add_req->req_id);
	if (idx < 0) {
		CAM_ERR(CAM_CRM, "req %lld not found in in_q", add_req->req_id);
		CAM_ERR(CAM_CRM,
			"req %lld not found in in_q for dev %s on link 0x%x",
			add_req->req_id, device->dev_info.name, link->link_hdl);
		rc = -EBADSLT;
		mutex_unlock(&link->req.lock);
		goto end;
@@ -1961,8 +1963,10 @@ int cam_req_mgr_process_add_req(void *priv, void *data)

	if (slot->state != CRM_REQ_STATE_PENDING &&
		slot->state != CRM_REQ_STATE_EMPTY) {
		CAM_WARN(CAM_CRM, "Unexpected state %d for slot %d map %x",
			slot->state, idx, slot->req_ready_map);
		CAM_WARN(CAM_CRM,
			"Unexpected state %d for slot %d map %x for dev %s on link 0x%x",
			slot->state, idx, slot->req_ready_map,
			device->dev_info.name, link->link_hdl);
	}

	slot->state = CRM_REQ_STATE_PENDING;
+6 −3
Original line number Diff line number Diff line
@@ -429,14 +429,17 @@ int cam_soc_util_set_src_clk_rate(struct cam_hw_soc_info *soc_info,
	int32_t src_clk_idx;
	struct clk *clk = NULL;
	int32_t apply_level;
	uint32_t clk_level_override = 0;

	if (!soc_info || (soc_info->src_clk_idx < 0))
		return -EINVAL;

	if (soc_info->clk_level_override && clk_rate)
		clk_rate = soc_info->clk_level_override;

	src_clk_idx = soc_info->src_clk_idx;
	clk_level_override = soc_info->clk_level_override;
	if (clk_level_override && clk_rate)
		clk_rate =
			soc_info->clk_rate[clk_level_override][src_clk_idx];

	clk = soc_info->clk[src_clk_idx];

	if (soc_info->cam_cx_ipeak_enable && clk_rate >= 0) {