currently GPU core clock frequency scaling is enabled,
the scaled clock cannot change GPU shader frequency.
enable shader frequency scaling with below setting:
fscaleSh_clkSh = clkSh[7 :1 ];
fscaleShLoad_clkSh = clkSh [0 ];
enableAutoSh_clkSh = clkSh[16 ];
disableAuto_clkSh = clkSh[17 ];
trick: write 0x10C to set new frequency scaling,
reset 0x10C to lock-up it before next change.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core,
0x00000,
clock));
+#if gcdENABLE_FSCALE_VAL_ADJUST
+ if (State == gcvPOWER_ON)
+ {
+ gcmkVERIFY_OK(
+ gckOS_ReadRegisterEx(Hardware->os,
+ Hardware->core,
+ 0x0010C,
+ &clock));
+
+ /* fscaleSh_clkSh = clkSh[7 :1 ];
+ fscaleShLoad_clkSh = clkSh [0 ];
+ enableAutoSh_clkSh = clkSh[16 ];
+ disableAuto_clkSh = clkSh[17 ];
+ */
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os,
+ Hardware->core,
+ 0x0010C,
+ (clock & ~0xFE) | (Hardware->powerOnFscaleVal << 1) | 0x20001
+ ));
+
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os,
+ Hardware->core,
+ 0x0010C,
+ clock));
+ }
+#endif
}
return gcvSTATUS_OK;