diff options
author | Loren Huang <b02279@freescale.com> | 2014-08-20 22:40:47 +0800 |
---|---|---|
committer | Loren Huang <b02279@freescale.com> | 2014-08-27 12:11:18 +0800 |
commit | e5a930dcf471b7aa0d4aa2c5c98c64167d2f1fe6 (patch) | |
tree | 09476d398ebce91001d5042b4f19c7c777be870c | |
parent | 16acbfa2f52993075faf881c79018b1459a3fd6f (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.c | 11 |
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 |