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

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

msm: kgsl: Fix recovery in case of fenced write failures



Fenced write failures are fatal i.e. they cannot be recovered from
because the fence is left in drop mode. So force set the fence to
allow mode during recovery.

Change-Id: Ib8cad3e9a4f0ef1b424df270540f424d63ff75e3
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
parent 879f7556
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1031,6 +1031,7 @@
#define A6XX_GPU_GMU_AO_GPU_CX_BUSY_MASK	0x23B0E
#define A6XX_GMU_AO_AHB_FENCE_CTRL		0x23B10
#define A6XX_GMU_AHB_FENCE_STATUS		0x23B13
#define A6XX_GMU_AHB_FENCE_STATUS_CLR           0x23B14
#define A6XX_GMU_RBBM_INT_UNMASKED_STATUS	0x23B15
#define A6XX_GMU_AO_SPARE_CNTL			0x23B16

+7 −0
Original line number Diff line number Diff line
@@ -1223,6 +1223,13 @@ static int a6xx_gmu_suspend(struct kgsl_device *device)
	/* Check no outstanding RPMh voting */
	a6xx_complete_rpmh_votes(device);

	/* Clear the WRITEDROPPED fields and set fence to allow mode */
	gmu_core_regwrite(device, A6XX_GMU_AHB_FENCE_STATUS_CLR, 0x7);
	gmu_core_regwrite(device, A6XX_GMU_AO_AHB_FENCE_CTRL, 0);

	/* Make sure above writes are committed before we proceed to recovery */
	wmb();

	/*
	 * This is based on the assumption that GMU is the only one controlling
	 * the GX HS. This code path is the only client voting for GX through