Commit 60bad509 authored by Loren HUANG's avatar Loren HUANG Committed by Terry Lv

ENGR00221197-2 Update gpu driver to check Soc temperature

-Update gpu driver to check the SoC temperature, if the thermal_hot flag
is set by thermal driver. GPU3D clock will be slown down to the minimum
 value, the clock will be recovery when the flag is cleared by thermal driver.
-This patch depends on ENGR00220848, without it, kernel build can't pass.
Signed-off-by: default avatarLoren HUANG <>
Acked-by: Lily Zhang
parent fab781fe
......@@ -30,6 +30,9 @@
extern int thermal_hot;
********************************* Support Code *********************************
......@@ -1080,6 +1083,24 @@ gckCOMMAND_Commit(
/* Extract the gckHARDWARE and gckEVENT objects. */
hardware = Command->kernel->hardware;
if(hardware->core == gcvCORE_MAJOR){
static gctUINT orgFscale,minFscale,maxFscale;
static gctBOOL bAlreadyTooHot = gcvFALSE;
if((thermal_hot > 0) && (!bAlreadyTooHot)) {
gckHARDWARE_GetFscaleValue(hardware,&orgFscale,&minFscale, &maxFscale);
gckHARDWARE_SetFscaleValue(hardware, minFscale);
bAlreadyTooHot = gcvTRUE;
gckOS_Print("System is too hot. GPU3D will work at %d/64 clock.\n", minFscale);
} else if((!(thermal_hot > 0)) && bAlreadyTooHot) {
gckHARDWARE_SetFscaleValue(hardware, orgFscale);
gckOS_Print("Hot alarm is canceled. GPU3D clock will return to %d/64\n", orgFscale);
bAlreadyTooHot = gcvFALSE;
/* Check wehther we need to copy the structures or not. */
gcmkONERROR(gckOS_QueryNeedCopy(Command->os, ProcessID, &needCopy));
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment