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

Commit 7dec09d8 authored by Vaibhav Agrawal's avatar Vaibhav Agrawal Committed by Nitin LNU
Browse files

firmware: qcom: Remove garbage characters from qsee log



Send proper buffer size to fix the garbage characters
appearing on qsee logs.

Test: 1. Basic Bootup with all subsystems out of
         reset on secboot device
      2. SSR on secboot device (Modem, ADSP, CDSP)
      3. All flags set in APDP except JTAG
      4. All flags set to 0 in APDP
      5. Only offline dump flag set in APDP
      6. Only NS dump flag set in APDP
      7. Only Enable Logs flag set in APDP

Change-Id: Ia472b6d0478399e4df81803151c4bd757266ad7d
Signed-off-by: default avatarVaibhav Agrawal <vagrawa@codeaurora.org>
parent 81a28468
Loading
Loading
Loading
Loading
+28 −38
Original line number Diff line number Diff line
@@ -944,29 +944,26 @@ static int _disp_encrpted_log_stats(struct encrypted_log_info *enc_log_info,

static int _disp_tz_log_stats(size_t count)
{
	if (!tzdbg.is_enlarged_buf) {
	static struct tzdbg_log_pos_v2_t log_start_v2 = {0};
	static struct tzdbg_log_pos_t log_start = {0};
	struct tzdbg_log_v2_t *log_v2_ptr;
	struct tzdbg_log_t *log_ptr;

		log_ptr = (struct tzdbg_log_t *)(
				(unsigned char *)tzdbg.diag_buf +
	log_ptr = (struct tzdbg_log_t *)((unsigned char *)tzdbg.diag_buf +
		   tzdbg.diag_buf->ring_off -
		   offsetof(struct tzdbg_log_t, log_buf));

	log_v2_ptr = (struct tzdbg_log_v2_t *)((unsigned char *)tzdbg.diag_buf +
		      tzdbg.diag_buf->ring_off -
		      offsetof(struct tzdbg_log_v2_t, log_buf));

	if (!tzdbg.is_enlarged_buf)
		return _disp_log_stats(log_ptr, &log_start,
				tzdbg.diag_buf->ring_len, count, TZDBG_LOG);
	} else {
		static struct tzdbg_log_pos_v2_t log_start_v2 = {0};
		struct tzdbg_log_v2_t *log_v2_ptr;

		log_v2_ptr = (struct tzdbg_log_v2_t *)(
				(unsigned char *)tzdbg.diag_buf +
				tzdbg.diag_buf->ring_off -
				offsetof(struct tzdbg_log_v2_t, log_buf));
	return _disp_log_stats_v2(log_v2_ptr, &log_start_v2,
			tzdbg.diag_buf->ring_len, count, TZDBG_LOG);
}
}

static int _disp_hyp_log_stats(size_t count)
{
@@ -984,20 +981,18 @@ static int _disp_hyp_log_stats(size_t count)

static int _disp_qsee_log_stats(size_t count)
{
	if (!tzdbg.is_enlarged_buf) {
	static struct tzdbg_log_pos_t log_start = {0};
	static struct tzdbg_log_pos_v2_t log_start_v2 = {0};

	if (!tzdbg.is_enlarged_buf)
		return _disp_log_stats(g_qsee_log, &log_start,
			QSEE_LOG_BUF_SIZE - sizeof(struct tzdbg_log_pos_t),
			count, TZDBG_QSEE_LOG);
	} else {
		static struct tzdbg_log_pos_v2_t log_start_v2 = {0};

	return _disp_log_stats_v2(g_qsee_log_v2, &log_start_v2,
			QSEE_LOG_BUF_SIZE - sizeof(struct tzdbg_log_pos_v2_t),
		QSEE_LOG_BUF_SIZE_V2 - sizeof(struct tzdbg_log_pos_v2_t),
		count, TZDBG_QSEE_LOG);
}
}

static int _disp_hyp_general_stats(size_t count)
{
@@ -1379,13 +1374,6 @@ static int tzdbgfs_init(struct platform_device *pdev)
static void tzdbgfs_exit(struct platform_device *pdev)
{
	struct dentry *dent_dir;

	if (g_qsee_log) {
		qtee_shmbridge_deregister(qseelog_shmbridge_handle);
		dma_free_coherent(&pdev->dev, QSEE_LOG_BUF_SIZE,
					 (void *)g_qsee_log, coh_pmem);
	}
	kzfree(tzdbg.disp_buf);
	dent_dir = platform_get_drvdata(pdev);
	debugfs_remove_recursive(dent_dir);
}
@@ -1627,11 +1615,13 @@ static int tz_log_probe(struct platform_device *pdev)

static int tz_log_remove(struct platform_device *pdev)
{
	tzdbg_free_encrypted_log_buf(pdev);
	kzfree(tzdbg.diag_buf);
	kzfree(tzdbg.hyp_diag_buf);
	tzdbgfs_exit(pdev);

	dma_free_coherent(&pdev->dev, display_buf_size,
			  (void *)tzdbg.disp_buf, disp_buf_paddr);
	tzdbg_free_encrypted_log_buf(pdev);
	tzdbg_free_qsee_log_buf(pdev);
	if (!tzdbg.is_encrypted_log_enabled)
		kfree(tzdbg.diag_buf);
	return 0;
}