summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoren Huang <b02279@freescale.com>2014-08-20 22:40:47 +0800
committerLoren Huang <b02279@freescale.com>2014-08-27 12:11:18 +0800
commite5a930dcf471b7aa0d4aa2c5c98c64167d2f1fe6 (patch)
tree09476d398ebce91001d5042b4f19c7c777be870c
parent16acbfa2f52993075faf881c79018b1459a3fd6f (diff)
ENGR00322672 [#1244] avoid system freeze when dump GPU state without valid clock & power
GPU recovery is disabled by default, GPU kernel driver will dump hardware status, but if GPU clock & power is truned off, system will get frozen unexpectedly. this fix is to avoid system freeze by detecting clock & power state. Date: Jul 14, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 05fd7bf5615a9ccde4af97ff7dcae3e7e2c9a86a) (cherry picked from commit 7c094ccb55e4a70ada5d7c2df8b6d3816956333a)
-rw-r--r--drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
index 541975b93e08..9cc7f0ea31d8 100644
--- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
@@ -6559,6 +6559,17 @@ gckHARDWARE_DumpGPUState(
dmaAddress1 = dmaAddress2 =
dmaLow = dmaHigh = 0;
+ gckOS_Delay(gcvNULL, gcdPOWEROFF_TIMEOUT);
+
+ if (Hardware->chipPowerState != gcvPOWER_ON
+ && Hardware->chipPowerState != gcvPOWER_IDLE
+ )
+ {
+ gcmkPRINT("[galcore]: Can't dump when GPU is power off or clock off.");
+ gcmkFOOTER_NO();
+ return gcvSTATUS_OK;
+ }
+
/* Verify whether DMA is running. */
gcmkONERROR(_VerifyDMA(
os, core, &dmaAddress1, &dmaAddress2, &dmaState1, &dmaState2