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

Commit f1d47bfd authored by Fernando Pacheco's avatar Fernando Pacheco
Browse files

msm: camera: icp: Rename debugfs entries to be proc hw agnostic



Drop references to A5 within the debugfs entries so that they
may be reused with other processors.

CRs-Fixed: 2722486
Change-Id: I2680a98dd3d38906e616712da3d6e2835ebb9a85
Signed-off-by: default avatarFernando Pacheco <fpacheco@codeaurora.org>
parent 1bd8f23d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -112,10 +112,10 @@ void hfi_send_system_cmd(uint32_t type, uint64_t data, uint32_t size);
void cam_hfi_deinit(void);
/**
 * hfi_set_debug_level() - set debug level
 * @a5_dbg_type: 1 for debug_q & 2 for qdss
 * @icp_dbg_type: 1 for debug_q & 2 for qdss
 * @lvl: FW debug message level
 */
int hfi_set_debug_level(u64 a5_dbg_type, uint32_t lvl);
int hfi_set_debug_level(u64 icp_dbg_type, uint32_t lvl);

/**
 * hfi_set_fw_dump_level() - set firmware dump level
+2 −2
Original line number Diff line number Diff line
@@ -382,7 +382,7 @@ int hfi_enable_ipe_bps_pc(bool enable, uint32_t core_info)
	return 0;
}

int hfi_set_debug_level(u64 a5_dbg_type, uint32_t lvl)
int hfi_set_debug_level(u64 icp_dbg_type, uint32_t lvl)
{
	uint8_t *prop;
	struct hfi_cmd_prop *dbg_prop;
@@ -413,7 +413,7 @@ int hfi_set_debug_level(u64 a5_dbg_type, uint32_t lvl)
	dbg_prop->num_prop = 1;
	dbg_prop->prop_data[0] = HFI_PROP_SYS_DEBUG_CFG;
	dbg_prop->prop_data[1] = lvl;
	dbg_prop->prop_data[2] = a5_dbg_type;
	dbg_prop->prop_data[2] = icp_dbg_type;
	hfi_write_cmd(prop);

	kfree(prop);
+40 −40
Original line number Diff line number Diff line
@@ -1836,53 +1836,53 @@ DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_default_clk,
	cam_icp_get_dbg_default_clk,
	cam_icp_set_dbg_default_clk, "%16llu");

static int cam_icp_set_a5_dbg_lvl(void *data, u64 val)
static int cam_icp_set_icp_dbg_lvl(void *data, u64 val)
{
	icp_hw_mgr.a5_dbg_lvl = val;
	icp_hw_mgr.icp_dbg_lvl = val;
	return 0;
}

static int cam_icp_get_a5_dbg_lvl(void *data, u64 *val)
static int cam_icp_get_icp_dbg_lvl(void *data, u64 *val)
{
	*val = icp_hw_mgr.a5_dbg_lvl;
	*val = icp_hw_mgr.icp_dbg_lvl;
	return 0;
}

DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_fs, cam_icp_get_a5_dbg_lvl,
	cam_icp_set_a5_dbg_lvl, "%08llu");
DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_fs, cam_icp_get_icp_dbg_lvl,
	cam_icp_set_icp_dbg_lvl, "%08llu");

static int cam_icp_set_a5_dbg_type(void *data, u64 val)
static int cam_icp_set_icp_dbg_type(void *data, u64 val)
{
	if (val <= NUM_HFI_DEBUG_MODE)
		icp_hw_mgr.a5_debug_type = val;
		icp_hw_mgr.icp_debug_type = val;
	return 0;
}

static int cam_icp_get_a5_dbg_type(void *data, u64 *val)
static int cam_icp_get_icp_dbg_type(void *data, u64 *val)
{
	*val = icp_hw_mgr.a5_debug_type;
	*val = icp_hw_mgr.icp_debug_type;
	return 0;
}


DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_type_fs, cam_icp_get_a5_dbg_type,
	cam_icp_set_a5_dbg_type, "%08llu");
DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_type_fs, cam_icp_get_icp_dbg_type,
	cam_icp_set_icp_dbg_type, "%08llu");

static int cam_icp_set_a5_fw_dump_lvl(void *data, u64 val)
static int cam_icp_set_icp_fw_dump_lvl(void *data, u64 val)
{
	if (val < NUM_HFI_DUMP_LVL)
		icp_hw_mgr.a5_fw_dump_lvl = val;
		icp_hw_mgr.icp_fw_dump_lvl = val;
	return 0;
}

static int cam_icp_get_a5_fw_dump_lvl(void *data, u64 *val)
static int cam_icp_get_icp_fw_dump_lvl(void *data, u64 *val)
{
	*val = icp_hw_mgr.a5_fw_dump_lvl;
	*val = icp_hw_mgr.icp_fw_dump_lvl;
	return 0;
}

DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_fw_dump, cam_icp_get_a5_fw_dump_lvl,
	cam_icp_set_a5_fw_dump_lvl, "%08llu");
DEFINE_SIMPLE_ATTRIBUTE(cam_icp_debug_fw_dump, cam_icp_get_icp_fw_dump_lvl,
	cam_icp_set_icp_fw_dump_lvl, "%08llu");

static int cam_icp_hw_mgr_create_debugfs_entry(void)
{
@@ -1907,16 +1907,16 @@ static int cam_icp_hw_mgr_create_debugfs_entry(void)
	dbgfileptr = debugfs_create_file("icp_debug_clk", 0644,
		icp_hw_mgr.dentry, NULL, &cam_icp_debug_default_clk);

	dbgfileptr = debugfs_create_bool("a5_jtag_debug", 0644,
		icp_hw_mgr.dentry, &icp_hw_mgr.a5_jtag_debug);
	dbgfileptr = debugfs_create_bool("icp_jtag_debug", 0644,
		icp_hw_mgr.dentry, &icp_hw_mgr.icp_jtag_debug);

	dbgfileptr = debugfs_create_file("a5_debug_type", 0644,
	dbgfileptr = debugfs_create_file("icp_debug_type", 0644,
		icp_hw_mgr.dentry, NULL, &cam_icp_debug_type_fs);

	dbgfileptr = debugfs_create_file("a5_debug_lvl", 0644,
	dbgfileptr = debugfs_create_file("icp_debug_lvl", 0644,
		icp_hw_mgr.dentry, NULL, &cam_icp_debug_fs);

	dbgfileptr = debugfs_create_file("a5_fw_dump_lvl", 0644,
	dbgfileptr = debugfs_create_file("icp_fw_dump_lvl", 0644,
		icp_hw_mgr.dentry, NULL, &cam_icp_debug_fw_dump);
	if (IS_ERR(dbgfileptr)) {
		if (PTR_ERR(dbgfileptr) == -ENODEV)
@@ -1926,7 +1926,7 @@ static int cam_icp_hw_mgr_create_debugfs_entry(void)
	}
end:
	/* Set default hang dump lvl */
	icp_hw_mgr.a5_fw_dump_lvl = HFI_FW_DUMP_ON_FAILURE;
	icp_hw_mgr.icp_fw_dump_lvl = HFI_FW_DUMP_ON_FAILURE;
	return rc;
}

@@ -2480,7 +2480,7 @@ static int cam_icp_mgr_process_fatal_error(
			BUG();
		}
		rc = cam_icp_mgr_trigger_recovery(hw_mgr);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
	}

	return rc;
@@ -2635,7 +2635,7 @@ static int32_t cam_icp_mgr_process_msg(void *priv, void *data)
		}
	}

	cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
	cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);

	if ((task_data->irq_status & A5_WDT_0) ||
		(task_data->irq_status & A5_WDT_1)) {
@@ -3059,8 +3059,8 @@ static int cam_icp_mgr_proc_resume(struct cam_icp_hw_mgr *hw_mgr)

	return icp_dev_intf->hw_ops.process_cmd(icp_dev_intf->hw_priv,
						CAM_ICP_CMD_POWER_RESUME,
						&hw_mgr->a5_jtag_debug,
						sizeof(hw_mgr->a5_jtag_debug));
						&hw_mgr->icp_jtag_debug,
						sizeof(hw_mgr->icp_jtag_debug));
}

static void cam_icp_mgr_proc_suspend(struct cam_icp_hw_mgr *hw_mgr)
@@ -3323,7 +3323,7 @@ static int cam_icp_mgr_abort_handle(
			CAM_ERR(CAM_ICP,
				"FW timeout/err in abort handle command ctx: %u",
				ctx_data->ctx_id);
			cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
			cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
			cam_hfi_queue_dump();
		}
	}
@@ -3379,7 +3379,7 @@ static int cam_icp_mgr_destroy_handle(
		rc = -ETIMEDOUT;
		CAM_ERR(CAM_ICP, "FW response timeout: %d for %u",
			rc, ctx_data->ctx_id);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
		cam_hfi_queue_dump();
	}
	kfree(destroy_cmd);
@@ -3705,7 +3705,7 @@ static int cam_icp_mgr_send_fw_init(struct cam_icp_hw_mgr *hw_mgr)
	if (!rem_jiffies) {
		rc = -ETIMEDOUT;
		CAM_ERR(CAM_ICP, "FW response timed out %d", rc);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
		cam_hfi_queue_dump();
	}
	CAM_DBG(CAM_ICP, "Done Waiting for INIT DONE Message");
@@ -3961,7 +3961,7 @@ static int cam_icp_mgr_send_config_io(struct cam_icp_hw_ctx_data *ctx_data,
	if (!rem_jiffies) {
		rc = -ETIMEDOUT;
		CAM_ERR(CAM_ICP, "FW response timed out %d", rc);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
		cam_hfi_queue_dump();
	}

@@ -5130,7 +5130,7 @@ static int cam_icp_mgr_enqueue_abort(
			CAM_ERR(CAM_ICP,
				"FW timeout/err in abort handle command ctx: %u",
				ctx_data->ctx_id);
			cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
			cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
			cam_hfi_queue_dump();
			return rc;
		}
@@ -5408,7 +5408,7 @@ static int cam_icp_mgr_create_handle(uint32_t dev_type,
	if (!rem_jiffies) {
		rc = -ETIMEDOUT;
		CAM_ERR(CAM_ICP, "FW response timed out %d", rc);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
		cam_hfi_queue_dump();
	}

@@ -5455,7 +5455,7 @@ static int cam_icp_mgr_send_ping(struct cam_icp_hw_ctx_data *ctx_data)
	if (!rem_jiffies) {
		rc = -ETIMEDOUT;
		CAM_ERR(CAM_ICP, "FW response timed out %d", rc);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
		cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
		cam_hfi_queue_dump();
	}

@@ -5622,11 +5622,11 @@ static int cam_icp_mgr_acquire_hw(void *hw_mgr_priv, void *acquire_hw_args)
		if (rc)
			goto get_io_buf_failed;

		if (icp_hw_mgr.a5_debug_type)
			hfi_set_debug_level(icp_hw_mgr.a5_debug_type,
				icp_hw_mgr.a5_dbg_lvl);
		if (icp_hw_mgr.icp_debug_type)
			hfi_set_debug_level(icp_hw_mgr.icp_debug_type,
				icp_hw_mgr.icp_dbg_lvl);

		hfi_set_fw_dump_level(icp_hw_mgr.a5_fw_dump_lvl);
		hfi_set_fw_dump_level(icp_hw_mgr.icp_fw_dump_lvl);

		rc = cam_icp_send_ubwc_cfg(hw_mgr);
		if (rc)
@@ -5745,7 +5745,7 @@ static int cam_icp_mgr_acquire_hw(void *hw_mgr_priv, void *acquire_hw_args)
	hw_mgr->ctx_data[ctx_id].icp_dev_acquire_info = NULL;
acquire_info_failed:
	cam_icp_mgr_put_ctx(ctx_data);
	cam_icp_mgr_process_dbg_buf(icp_hw_mgr.a5_dbg_lvl);
	cam_icp_mgr_process_dbg_buf(icp_hw_mgr.icp_dbg_lvl);
	mutex_unlock(&ctx_data->ctx_mutex);
	mutex_unlock(&hw_mgr->hw_mgr_mutex);
	return rc;
+4 −5
Original line number Diff line number Diff line
@@ -381,17 +381,16 @@ struct cam_icp_hw_mgr {
	uint32_t ipe_ctxt_cnt;
	uint32_t bps_ctxt_cnt;
	struct dentry *dentry;
	bool a5_debug;
	bool icp_pc_flag;
	bool ipe_bps_pc_flag;
	uint64_t icp_debug_clk;
	uint64_t icp_default_clk;
	struct cam_icp_clk_info clk_info[ICP_CLK_HW_MAX];
	bool secure_mode;
	bool a5_jtag_debug;
	u64 a5_debug_type;
	u64 a5_dbg_lvl;
	u64 a5_fw_dump_lvl;
	bool icp_jtag_debug;
	u64 icp_debug_type;
	u64 icp_dbg_lvl;
	u64 icp_fw_dump_lvl;
	bool ipe0_enable;
	bool ipe1_enable;
	bool bps_enable;