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

Commit 311ebe6b authored by Karthik Anantha Ram's avatar Karthik Anantha Ram Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: Fix to address clock voting through debugfs



Change addresses clock voting through debugfs and also improves
error logging.

Change-Id: I5fc944c2519131e71af8131556319a9f643d8dbd
Signed-off-by: default avatarKarthik Anantha Ram <kartanan@codeaurora.org>
parent 99520319
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1886,7 +1886,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;
@@ -1906,8 +1908,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
@@ -436,14 +436,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) {