From d18306d725e35e6431e04745d97c3a61c0d1280d Mon Sep 17 00:00:00 2001 From: Igor Nabirushkin Date: Sun, 15 Feb 2015 01:08:11 +0400 Subject: [PATCH] misc: tegra-profiler: fix return value check Tegra System Profiler: device is frozen when using clk events. Fix return value check. Bug 1611412 Change-Id: Ic9da6f02b222aaf0b3e5e84156103be39a28168b Signed-off-by: Igor Nabirushkin Reviewed-on: http://git-master/r/708066 (cherry picked from commit d7f72918dd2c210fd991e61414da3b5f95916f25) Reviewed-on: http://git-master/r/747748 GVS: Gerrit_Virtual_Submit Reviewed-by: Andrey Trachenko Reviewed-by: Winnie Hsu --- drivers/misc/tegra-profiler/power_clk.c | 22 +++++++++++----------- drivers/misc/tegra-profiler/version.h | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/misc/tegra-profiler/power_clk.c b/drivers/misc/tegra-profiler/power_clk.c index aaa5e5de777..c3b5aa3596c 100644 --- a/drivers/misc/tegra-profiler/power_clk.c +++ b/drivers/misc/tegra-profiler/power_clk.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -92,7 +93,7 @@ static void read_source(struct power_clk_source *s) case QUADD_POWER_CLK_GPU: /* update gpu frequency */ s->clkp = clk_get_sys("3d", NULL); - if (s->clkp) { + if (!IS_ERR_OR_NULL(s->clkp)) { s->data[0].value = clk_get_rate(s->clkp) / 1000; clk_put(s->clkp); @@ -102,7 +103,7 @@ static void read_source(struct power_clk_source *s) case QUADD_POWER_CLK_EMC: /* update emc frequency */ s->clkp = clk_get_sys("cpu", "emc"); - if (s->clkp) { + if (!IS_ERR_OR_NULL(s->clkp)) { s->data[0].value = clk_get_rate(s->clkp) / 1000; clk_put(s->clkp); @@ -332,38 +333,40 @@ int quadd_power_clk_start(void) /* setup gpu frequency */ s = &power_ctx.gpu; s->clkp = clk_get_sys("3d", NULL); - if (s->clkp) { + if (!IS_ERR_OR_NULL(s->clkp)) { #ifdef CONFIG_COMMON_CLK status = clk_notifier_register(s->clkp, s->nb); if (status < 0) { pr_err("error: could not setup gpu freq\n"); + clk_put(s->clkp); return status; } - clk_put(s->clkp); #endif + clk_put(s->clkp); reset_data(s); atomic_set(&s->active, 1); } else { - pr_err("error: could not setup gpu freq\n"); + pr_warn("warning: could not setup gpu freq\n"); atomic_set(&s->active, 0); } /* setup emc frequency */ s = &power_ctx.emc; s->clkp = clk_get_sys("cpu", "emc"); - if (s->clkp) { + if (!IS_ERR_OR_NULL(s->clkp)) { #ifdef CONFIG_COMMON_CLK status = clk_notifier_register(s->clkp, s->nb); if (status < 0) { pr_err("error: could not setup emc freq\n"); + clk_put(s->clkp); return status; } - clk_put(s->clkp); #endif + clk_put(s->clkp); reset_data(s); atomic_set(&s->active, 1); } else { - pr_err("error: could not setup emc freq\n"); + pr_warn("warning: could not setup emc freq\n"); atomic_set(&s->active, 0); } @@ -424,8 +427,6 @@ void quadd_power_clk_stop(void) int quadd_power_clk_init(struct quadd_ctx *quadd_ctx) { - pr_info("power_clk: init\n"); - init_source(&power_ctx.cpu, cpu_notifier_call, nr_cpu_ids, QUADD_POWER_CLK_CPU); init_source(&power_ctx.gpu, gpu_notifier_call, 1, QUADD_POWER_CLK_GPU); @@ -438,6 +439,5 @@ int quadd_power_clk_init(struct quadd_ctx *quadd_ctx) void quadd_power_clk_deinit(void) { - pr_info("power_clk: deinit\n"); quadd_power_clk_stop(); } diff --git a/drivers/misc/tegra-profiler/version.h b/drivers/misc/tegra-profiler/version.h index 2211061c9f6..2281ec87dbb 100644 --- a/drivers/misc/tegra-profiler/version.h +++ b/drivers/misc/tegra-profiler/version.h @@ -18,7 +18,7 @@ #ifndef __QUADD_VERSION_H #define __QUADD_VERSION_H -#define QUADD_MODULE_VERSION "1.90" +#define QUADD_MODULE_VERSION "1.91" #define QUADD_MODULE_BRANCH "Dev" #endif /* __QUADD_VERSION_H */ -- 2.39.2