I've noticed that the GPU3D clock speed on my imx6 device gets scaled to 1/64 clock speed when it overheats to a particular temperature. It calls gckHARDWARE_SetFscaleValue.
Is there an easy way from the command line or a C program for me to set the GPU3D clock speed myself?
James
Hi James
scaling functionality is described in Chapter 24 Dynamic Bus Frequency Driver
attached Linux Manual and one can look at its codes for using in custom application.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks Igor,
You pointed me to a chapter on scaling bus frequencies. The GPU is not a bus is it?
The drive code that I think is relevant to me is in Chapter 25 (Thermal Driver).
IN gckPLATFORM Platform
struct platform_device *pdevice = Platform->device;
gckGALDEVICE galDevice = platform_get_drvdata(pdevice);
if (galDevice) {
if (galDevice->kernels[gcvCORE_MAJOR]) {
gckHARDWARE hardware = galDevice->kernels[gcvCORE_MAJOR]->hardware;
if (hardware) {
gckHARDWARE_SetFscaleValue(hardware, minFscale);
}
}
}
Hi James
one can look at description of GPU driver in Chapter 13 and GPU Tools:
IDE - Debug, Compile and Build Tools (15)
IMX6_L4.1.15_2.0.0_GPU_TOOL
https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applicatio...
Also NXP has special service: Professional Services for helping with developing custom drivers.
NXP Professional Services|NXP
Best regards
igor