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

Commit ab8263ba authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Dump both GMU and GPU state for GMU faults"

parents 1f782235 af1062c9
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -3847,7 +3847,6 @@ static const struct kgsl_functable adreno_functable = {
	.device_private_create = adreno_device_private_create,
	.device_private_destroy = adreno_device_private_destroy,
	/* Optional functions */
	.snapshot_gmu = adreno_snapshot_gmu,
	.drawctxt_create = adreno_drawctxt_create,
	.drawctxt_detach = adreno_drawctxt_detach,
	.drawctxt_destroy = adreno_drawctxt_destroy,
+0 −5
Original line number Diff line number Diff line
@@ -953,8 +953,6 @@ struct adreno_gpudev {
	/* GPU specific function hooks */
	void (*irq_trace)(struct adreno_device *, unsigned int status);
	void (*snapshot)(struct adreno_device *, struct kgsl_snapshot *);
	void (*snapshot_debugbus)(struct adreno_device *adreno_dev,
			struct kgsl_snapshot *snapshot);
	void (*platform_setup)(struct adreno_device *);
	void (*init)(struct adreno_device *);
	void (*remove)(struct adreno_device *);
@@ -1126,9 +1124,6 @@ void adreno_snapshot(struct kgsl_device *device,
		struct kgsl_snapshot *snapshot,
		struct kgsl_context *context);

void adreno_snapshot_gmu(struct kgsl_device *device,
		struct kgsl_snapshot *snapshot);

int adreno_reset(struct kgsl_device *device, int fault);

void adreno_fault_skipcmd_detached(struct adreno_device *adreno_dev,
+0 −1
Original line number Diff line number Diff line
@@ -2940,7 +2940,6 @@ struct adreno_gpudev adreno_a6xx_gpudev = {
	.reg_offsets = &a6xx_reg_offsets,
	.start = a6xx_start,
	.snapshot = a6xx_snapshot,
	.snapshot_debugbus = a6xx_snapshot_debugbus,
	.irq = &a6xx_irq,
	.snapshot_data = &a6xx_snapshot_data,
	.irq_trace = trace_kgsl_a5xx_irq_status,
+0 −2
Original line number Diff line number Diff line
@@ -191,8 +191,6 @@ void a6xx_preemption_context_destroy(struct kgsl_context *context);

void a6xx_snapshot(struct adreno_device *adreno_dev,
		struct kgsl_snapshot *snapshot);
void a6xx_snapshot_debugbus(struct adreno_device *adreno_dev,
		struct kgsl_snapshot *snapshot);
void a6xx_crashdump_init(struct adreno_device *adreno_dev);
int a6xx_gmu_sptprac_enable(struct adreno_device *adreno_dev);
void a6xx_gmu_sptprac_disable(struct adreno_device *adreno_dev);
+10 −1
Original line number Diff line number Diff line
@@ -1285,7 +1285,7 @@ static size_t a6xx_snapshot_cx_dbgc_debugbus_block(struct kgsl_device *device,
}

/* a6xx_snapshot_debugbus() - Capture debug bus data */
void a6xx_snapshot_debugbus(struct adreno_device *adreno_dev,
static void a6xx_snapshot_debugbus(struct adreno_device *adreno_dev,
		struct kgsl_snapshot *snapshot)
{
	int i;
@@ -1501,6 +1501,15 @@ void a6xx_snapshot(struct adreno_device *adreno_dev,
	if (GMU_DEV_OP_VALID(gmu_dev_ops, snapshot))
		gmu_dev_ops->snapshot(adreno_dev, snapshot);

	/*
	 * Dump debugbus data here to capture it for both
	 * GMU and GPU snapshot. Debugbus data can be accessed
	 * even if the gx headswitch or sptprac is off. If gx
	 * headswitch is off, data for gx blocks will show as
	 * 0x5c00bd00.
	 */
	a6xx_snapshot_debugbus(adreno_dev, snapshot);

	sptprac_on = gpudev->sptprac_is_on(adreno_dev);

	if (GMU_DEV_OP_VALID(gmu_dev_ops, gx_is_on))
Loading