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

Commit e9f6f9b1 authored by Deepak Kumar's avatar Deepak Kumar
Browse files

msm: kgsl: Remove wait for VBIF/GBIF reset ack during soft reset



For A6XX gpu's, soft reset is done using A6XX_RBBM_SW_RESET_CMD
but this reset doesn't reflect GBIF/VBIF reset status in
A6XX_RBBM_VBIF_GX_RESET_STATUS. Remove wait for VBIF/GBIF reset
ack after triggering soft reset to avoid soft reset failures.

Change-Id: Id33f9c67860f6564fee62fa997ca767f2ec88b6b
Signed-off-by: default avatarDeepak Kumar <dkumar@codeaurora.org>
parent c456d422
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -1405,8 +1405,6 @@ static int a6xx_soft_reset(struct adreno_device *adreno_dev)
{
	struct kgsl_device *device = KGSL_DEVICE(adreno_dev);
	unsigned int reg;
	unsigned long time;
	bool vbif_acked = false;

	/*
	 * For the soft reset case with GMU enabled this part is done
@@ -1425,21 +1423,6 @@ static int a6xx_soft_reset(struct adreno_device *adreno_dev)
	adreno_readreg(adreno_dev, ADRENO_REG_RBBM_SW_RESET_CMD, &reg);
	adreno_writereg(adreno_dev, ADRENO_REG_RBBM_SW_RESET_CMD, 0);

	/* Wait for the VBIF reset ack to complete */
	time = jiffies + msecs_to_jiffies(VBIF_RESET_ACK_TIMEOUT);

	do {
		kgsl_regread(device, A6XX_RBBM_VBIF_GX_RESET_STATUS, &reg);
		if ((reg & VBIF_RESET_ACK_MASK) == VBIF_RESET_ACK_MASK) {
			vbif_acked = true;
			break;
		}
		cpu_relax();
	} while (!time_after(jiffies, time));

	if (!vbif_acked)
		return -ETIMEDOUT;

	/* Clear GBIF client halt and CX arbiter halt */
	adreno_deassert_gbif_halt(adreno_dev);