summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os/linux
diff options
context:
space:
mode:
authorMarius Vlad <marius-cristian.vlad@nxp.com>2018-08-18 12:15:32 +0300
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:33:29 +0800
commit48d3651ba38dcd93069acdb45fbbc04d74086962 (patch)
tree8ae0529e11aaf349d1b5b11c8111bf51180e67a8 /drivers/mxc/gpu-viv/hal/os/linux
parentafdb5d263763aa9b13b5e986bdc5ce2ea9d16308 (diff)
MGS-4147 [#imx-1117] Don't try to de-register OPP entries when we don't have them in the first place
Commit 7103962dbc8362d1ea76fd7 would return success even though we don't have a OPP array (i.e., i.MX6). This patch completes that in de-register part. Signed-off-by: Marius Vlad <marius-cristian.vlad@nxp.com>
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/os/linux')
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
index 66dac1cefc85..62624d69b4a4 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
@@ -431,20 +431,20 @@ static ssize_t gpu_govern_show(struct device_driver *dev, char *buf)
struct imx_priv *priv = &imxPriv;
int i;
ssize_t len;
- int nr_modes;
+ int max_modes;
unsigned long core_freq;
unsigned long shader_freq;
if (priv->imx_gpu_govern.num_modes == GOVERN_COUNT)
- nr_modes = priv->imx_gpu_govern.num_modes - 1;
+ max_modes = priv->imx_gpu_govern.num_modes - 1;
else
- nr_modes = priv->imx_gpu_govern.num_modes;
+ max_modes = priv->imx_gpu_govern.num_modes;
len = sprintf(buf, "GPU support %d modes\n", priv->imx_gpu_govern.num_modes);
- for (i = priv->imx_gpu_govern.current_mode; i <= nr_modes; i++)
+ for (i = priv->imx_gpu_govern.current_mode; i <= max_modes; i++)
{
core_freq = priv->imx_gpu_govern.core_clk_freq[i];
shader_freq = priv->imx_gpu_govern.shader_clk_freq[i];
@@ -634,14 +634,18 @@ int remove_gpu_opp_table(void)
struct imx_priv *priv = &imxPriv;
struct device* dev = priv->imx_gpu_govern.dev;
int i = 0;
- int nr_modes;
+ int max_modes;
if (priv->imx_gpu_govern.num_modes == GOVERN_COUNT)
- nr_modes = priv->imx_gpu_govern.num_modes - 1;
+ max_modes = priv->imx_gpu_govern.num_modes - 1;
else
- nr_modes = priv->imx_gpu_govern.num_modes;
+ max_modes = priv->imx_gpu_govern.num_modes;
- for (i = priv->imx_gpu_govern.current_mode; i <= nr_modes; i++)
+ /* if we don't have any modes available we don't have OPP */
+ if (max_modes == 0)
+ return 0;
+
+ for (i = priv->imx_gpu_govern.current_mode; i <= max_modes; i++)
{
unsigned long core_freq;