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

Commit dc2bdbe8 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Merge remote-tracking branch 'dev/msm-4.14' into msm-4.9 04/20"

parents 4ab4e85c 311ee711
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -248,7 +248,7 @@ int cam_context_dump_pf_info(struct cam_context *ctx, unsigned long iova,
		rc = ctx->state_machine[ctx->state].pagefault_ops(ctx, iova,
			buf_info);
	} else {
		CAM_WARN(CAM_CORE, "No dump ctx in dev %d, state %d",
		CAM_INFO(CAM_CORE, "No dump ctx in dev %d, state %d",
			ctx->dev_hdl, ctx->state);
	}
	mutex_unlock(&ctx->ctx_mutex);
+5 −4
Original line number Diff line number Diff line
@@ -482,9 +482,7 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
						ctx->dev_name, ctx->ctx_id,
						req->request_id);

				cam_context_putref(ctx);

				goto put_ref;
				goto put_ctx_ref;
			}
			CAM_DBG(CAM_CTXT, "register in fence cb: %d ret = %d",
				req->in_map_entries[j].sync_id, rc);
@@ -493,7 +491,9 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
	}

	return rc;

put_ctx_ref:
	for (--j; j >= 0; j--)
		cam_context_putref(ctx);
put_ref:
	for (--i; i >= 0; i--) {
		rc = cam_sync_put_obj_ref(req->out_map_entries[i].sync_id);
@@ -1018,6 +1018,7 @@ int32_t cam_context_dump_pf_info_to_hw(struct cam_context *ctx,
		cmd_args.ctxt_to_hw_map = ctx->ctxt_to_hw_map;
		cmd_args.cmd_type = CAM_HW_MGR_CMD_DUMP_PF_INFO;
		cmd_args.u.pf_args.pf_data.packet = packet;
		cmd_args.u.pf_args.pf_data.ctx_id = ctx->ctx_id;
		cmd_args.u.pf_args.iova = iova;
		cmd_args.u.pf_args.buf_info = buf_info;
		cmd_args.u.pf_args.mem_found = mem_found;
+2 −0
Original line number Diff line number Diff line
@@ -144,9 +144,11 @@ struct cam_hw_stop_args {
 * struct cam_hw_mgr_dump_pf_data - page fault debug data
 *
 * packet:     pointer to packet
 * ctx_id:     context id
 */
struct cam_hw_mgr_dump_pf_data {
	void    *packet;
	uint32_t ctx_id;
};

/**
+1 −1
Original line number Diff line number Diff line
@@ -1598,7 +1598,7 @@ static int cam_fd_mgr_hw_prepare_update(void *hw_mgr_priv,

	/* We do not expect any patching, but just do it anyway */
	rc = cam_packet_util_process_patches(prepare->packet,
		hw_mgr->device_iommu.non_secure, -1);
		hw_mgr->device_iommu.non_secure, -1, 0);
	if (rc) {
		CAM_ERR(CAM_FD, "Patch FD packet failed, rc=%d", rc);
		return rc;
+9 −4
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@
#define HFI_MAX_POLL_TRY 5

#define HFI_MAX_PC_POLL_TRY 150
#define HFI_POLL_TRY_SLEEP 2
#define HFI_POLL_TRY_SLEEP 1

static struct hfi_info *g_hfi;
unsigned int g_icp_mmu_hdl;
@@ -73,24 +73,28 @@ void cam_hfi_queue_dump(void)
		qtbl_hdr->qtbl_num_q, qtbl_hdr->qtbl_qhdr_size);

	cmd_q_hdr = &qtbl->q_hdr[Q_CMD];
	CAM_DBG(CAM_HFI, "cmd: size = %u r_idx = %u w_idx = %u addr = %x",
	CAM_INFO(CAM_HFI, "cmd: size = %u r_idx = %u w_idx = %u addr = %x",
		cmd_q_hdr->qhdr_q_size, cmd_q_hdr->qhdr_read_idx,
		cmd_q_hdr->qhdr_write_idx, hfi_mem->cmd_q.iova);
	read_q = (uint32_t *)g_hfi->map.cmd_q.kva;
	read_ptr = (uint32_t *)(read_q + 0);
	CAM_INFO(CAM_HFI, "CMD Q %p", read_q);
	CAM_DBG(CAM_HFI, "CMD Q START");
	for (i = 0; i < ICP_CMD_Q_SIZE_IN_BYTES >> BYTE_WORD_SHIFT; i++)
		CAM_DBG(CAM_HFI, "Word: %d Data: 0x%08x ", i, read_ptr[i]);
	CAM_DBG(CAM_HFI, "CMD Q END");

	msg_q_hdr = &qtbl->q_hdr[Q_MSG];
	CAM_DBG(CAM_HFI, "msg: size = %u r_idx = %u w_idx = %u addr = %x",
	CAM_INFO(CAM_HFI, "msg: size = %u r_idx = %u w_idx = %u addr = %x",
		msg_q_hdr->qhdr_q_size, msg_q_hdr->qhdr_read_idx,
		msg_q_hdr->qhdr_write_idx, hfi_mem->msg_q.iova);
	read_q = (uint32_t *)g_hfi->map.msg_q.kva;
	read_ptr = (uint32_t *)(read_q + 0);
	CAM_INFO(CAM_HFI, "MSG Q %p", read_ptr);
	CAM_DBG(CAM_HFI, "MSG Q START");
	for (i = 0; i < ICP_MSG_Q_SIZE_IN_BYTES >> BYTE_WORD_SHIFT; i++)
		CAM_DBG(CAM_HFI, "Word: %d Data: 0x%08x ", i, read_ptr[i]);
	CAM_DBG(CAM_HFI, "MSG Q END");
}

int hfi_write_cmd(void *cmd_ptr)
@@ -526,7 +530,8 @@ void cam_hfi_disable_cpu(void __iomem *icp_base)
		 * and Host can the proceed. No interrupt is expected from FW
		 * at this time.
		 */
		msleep_interruptible(HFI_POLL_TRY_SLEEP);
		usleep_range(HFI_POLL_TRY_SLEEP * 1000,
			(HFI_POLL_TRY_SLEEP * 1000) + 1000);
		try++;
	}

Loading