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

Commit d84815d9 authored by Harshdeep Dhatt's avatar Harshdeep Dhatt
Browse files

msm: kgsl: Check snapshot status after snapshot



A660 gpu has a new register to track whether any interface
signals changed during snapshot capture.

Change-Id: I24ecc9e98c9c2a745518e95419d5b4cf13fe634c
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
parent e688535a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */

#ifndef _A6XX_REG_H
@@ -394,6 +394,7 @@

#define A6XX_RBBM_ISDB_CNT                       0x533
#define A6XX_RBBM_NC_MODE_CNTL                   0X534
#define A6XX_RBBM_SNAPSHOT_STATUS                0x535

#define A6XX_RBBM_SECVID_TRUST_CNTL              0xF400
#define A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO     0xF800
+16 −0
Original line number Diff line number Diff line
@@ -1830,6 +1830,10 @@ void a6xx_snapshot(struct adreno_device *adreno_dev,
	if (!gmu_core_dev_gx_is_on(device))
		return;

	/* Assert the isStatic bit before triggering snapshot */
	if (adreno_is_a660(adreno_dev))
		kgsl_regwrite(device, A6XX_RBBM_SNAPSHOT_STATUS, 0x1);

	/* Dump the registers which get affected by crash dumper trigger */
	kgsl_snapshot_add_section(device, KGSL_SNAPSHOT_SECTION_REGS,
		snapshot, a6xx_snapshot_pre_crashdump_regs, NULL);
@@ -1898,6 +1902,18 @@ void a6xx_snapshot(struct adreno_device *adreno_dev,
		a6xx_snapshot_dbgahb_regs(device, snapshot);
	}

	if (adreno_is_a660(adreno_dev)) {
		u32 val;

		kgsl_regread(device, A6XX_RBBM_SNAPSHOT_STATUS, &val);

		if (!val)
			dev_err(device->dev,
				"Interface signals may have changed during snapshot\n");

		kgsl_regwrite(device, A6XX_RBBM_SNAPSHOT_STATUS, 0x0);
	}

	/* Preemption record */
	if (adreno_is_preemption_enabled(adreno_dev)) {
		FOR_EACH_RINGBUFFER(adreno_dev, rb, i) {