1 From 2df4dba8faa9a781a5a1c6c09d646d2b692c9a0c Mon Sep 17 00:00:00 2001
2 From: Loren Huang <b02279@freescale.com>
3 Date: Tue, 4 Jun 2013 15:08:15 +0800
4 Subject: [PATCH 2/6] ENGR00265465 gpu:Add global value for minimum 3D clock
7 Add global value gpu3DMinClock so that minimum 3D clock can be change by user.
8 When gpu min clock is too low, it may cause IPU starvation issue in certain case.
9 Use echo x > /sys/module/galcore/parameters/gpu3DMinClock to change it.
11 Cherry-pick from 3.0.35 branch.
13 Upstream-Status: Backport [3.5.7-1.0.0]
15 Signed-off-by: Loren Huang <b02279@freescale.com>
18 drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | 6 +++++-
19 drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c | 3 +++
20 2 files changed, 8 insertions(+), 1 deletion(-)
22 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
23 index 3829999..ebd36fe 100644
24 --- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
25 +++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
26 @@ -36,6 +36,7 @@ typedef struct _gcsiDEBUG_REGISTERS
30 +extern int gpu3DMinClock;
31 /******************************************************************************\
32 ********************************* Support Code *********************************
33 \******************************************************************************/
34 @@ -4630,7 +4631,10 @@ gckHARDWARE_GetFscaleValue(
37 *FscaleValue = Hardware->powerOnFscaleVal;
38 - *MinFscaleValue = 1;
39 + if ((gpu3DMinClock > 0) && (gpu3DMinClock <= 64) && (Hardware->core == gcvCORE_MAJOR))
40 + *MinFscaleValue = gpu3DMinClock;
42 + *MinFscaleValue = 1;
46 diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
47 index 2ed3d0e..64cace1 100644
48 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
49 +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
50 @@ -146,6 +146,9 @@ module_param(logFileSize,uint, 0644);
51 static int showArgs = 0;
52 module_param(showArgs, int, 0644);
54 +int gpu3DMinClock = 0;
55 +module_param(gpu3DMinClock, int, 0644);
57 #if ENABLE_GPU_CLOCK_BY_DRIVER
58 unsigned long coreClock = 156000000;
59 module_param(coreClock, ulong, 0644);