msm: kgsl: Update idle check for new GMU firmware

The new GMU firmware uses the same value to represent
the SPTPRAC PC and IFPC idle levels. If we are doing
IFPC, GX must be off for IFPC to be complete.
Update our idle check to take these criteria into account.
We must also check for idle before finishing adreno_stop().
Factor out this check and add it there as well.

CRs-Fixed: 2085877
Change-Id: Idd252aa4c91c640406907424dff39e2f9b6f5b6c
Signed-off-by: Kyle Piefer <kpiefer@codeaurora.org>
diff --git a/drivers/gpu/msm/adreno.h b/drivers/gpu/msm/adreno.h
index 5f5c74e..4f6637b2 100644
--- a/drivers/gpu/msm/adreno.h
+++ b/drivers/gpu/msm/adreno.h
@@ -887,6 +887,7 @@
 	int (*rpmh_gpu_pwrctrl)(struct adreno_device *, unsigned int ops,
 				unsigned int arg1, unsigned int arg2);
 	bool (*hw_isidle)(struct adreno_device *);
+	int (*wait_for_lowest_idle)(struct adreno_device *);
 	int (*wait_for_gmu_idle)(struct adreno_device *);
 	const char *(*iommu_fault_block)(struct adreno_device *adreno_dev,
 				unsigned int fsynr1);