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

Commit c96ad959 authored by Kyle Piefer's avatar Kyle Piefer
Browse files

msm: kgsl: Update idle checks to match GMU FW 0.6



GMU FW 0.6 changed some behavior during prepare for slumber
that affects checking for idle. Update the KMD to work with
this.

CRs-Fixed: 2017390
Change-Id: I1ffc820f5531e978c9221f1d345a3ed860e5bd59
Signed-off-by: default avatarKyle Piefer <kpiefer@codeaurora.org>
parent c6d522c5
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1030,7 +1030,8 @@ static int a6xx_notify_slumber(struct kgsl_device *device)
		kgsl_gmu_regread(device, A6XX_GMU_RPMH_POWER_STATE, &state);
		if (state != GPU_HW_SLUMBER) {
			dev_err(&gmu->pdev->dev,
					"Failed to prepare for slumber\n");
					"Failed to prepare for slumber: 0x%x\n",
					state);
			ret = -EINVAL;
		}
	}
@@ -1303,9 +1304,6 @@ static int a6xx_wait_for_gmu_idle(struct adreno_device *adreno_dev)
	struct kgsl_device *device = KGSL_DEVICE(adreno_dev);
	struct gmu_device *gmu = &device->gmu;

	/* TODO: Remove this register write when firmware is updated */
	kgsl_gmu_regwrite(device, A6XX_GMU_CM3_FW_BUSY, 0);

	if (timed_poll_check(device, A6XX_GPU_GMU_AO_GPU_CX_BUSY_STATUS,
			0, GMU_START_TIMEOUT, CXGXCPUBUSYIGNAHB)) {
		dev_err(&gmu->pdev->dev, "GMU is not idling\n");
+1 −1
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ enum gpu_idle_level {
	GPU_HW_NAP = 0x4,
	GPU_HW_MIN_VOLT = 0x5,
	GPU_HW_MIN_DDR = 0x6,
	GPU_HW_SLUMBER = 0x7
	GPU_HW_SLUMBER = 0xF
};

/**