diff options
author | Marius Vlad <marius-cristian.vlad@nxp.com> | 2018-08-18 12:15:32 +0300 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:33:29 +0800 |
commit | 48d3651ba38dcd93069acdb45fbbc04d74086962 (patch) | |
tree | 8ae0529e11aaf349d1b5b11c8111bf51180e67a8 /drivers/mxc/gpu-viv/hal/os/linux | |
parent | afdb5d263763aa9b13b5e986bdc5ce2ea9d16308 (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.c | 20 |
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; |