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-20 22:51:55 +0800
commitae8710fcddbbdfa6dcc6821e51ad58e81e45b492 (patch)
treea3777c62c6aa677ba09e4e94aabc0b21d724f936
parent77bb9f1558664adaff7c5f1f8927b182101cb190 (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