From: Javier Viguera Date: Tue, 10 Nov 2015 17:45:37 +0100 Subject: [PATCH] mxc: gpu: use recommended values for minimum GPU frequency divisor Freescale recommends the following default minimum GPU frequency divisors depending on the CPU family: - 3 for Dual/Quad - 8 for DualLite/Solo Adapted for the external Vivante GPU driver from commit a790ad3 in linux git repository. Signed-off-by: Javier Viguera --- .../src/hal/os/linux/kernel/gc_hal_kernel_driver.c | 14 +++++++++++++- .../src/platform/freescale/gc_hal_kernel_platform_imx6.c | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/hal/os/linux/kernel/gc_hal_kernel_driver.c b/src/hal/os/linux/kernel/gc_hal_kernel_driver.c index 816aae0..15a8753 100644 --- a/src/hal/os/linux/kernel/gc_hal_kernel_driver.c +++ b/src/hal/os/linux/kernel/gc_hal_kernel_driver.c @@ -54,6 +54,7 @@ #include +#include #include #include @@ -199,7 +200,7 @@ static uint type = 0; module_param(type, uint, 0664); MODULE_PARM_DESC(type, "0 - Char Driver (Default), 1 - Misc Driver"); -static int gpu3DMinClock = 1; +static int gpu3DMinClock = 0; static int contiguousRequested = 0; @@ -959,6 +960,17 @@ static int __devinit gpu_probe(struct platform_device *pdev) _UpdateModuleParam(&moduleParam); } + /* If undefined, set Freescale recommended value. Else use the min freq. */ + if (gpu3DMinClock == 0) { + if (of_machine_is_compatible("fsl,imx6dl")) + gpu3DMinClock = 8; + else if (of_machine_is_compatible("fsl,imx6q") || + of_machine_is_compatible("fsl,imx6qp")) + gpu3DMinClock = 3; + else + gpu3DMinClock = 1; + } + ret = drv_init(); if (!ret) diff --git a/src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6.c b/src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6.c index 89706ec..65a54e2 100644 --- a/src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6.c +++ b/src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6.c @@ -123,7 +123,7 @@ extern int unregister_thermal_notifier(struct notifier_block *nb); #define gcdFSL_CONTIGUOUS_SIZE (4 << 20) #endif -static int initgpu3DMinClock = 1; +static int initgpu3DMinClock = 0; module_param(initgpu3DMinClock, int, 0644); struct platform_device *pdevice;