From patchwork Wed Apr 28 01:29:10 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: omar ramirez X-Patchwork-Id: 95545 X-Patchwork-Delegate: omar.ramirez@ti.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o3S1OYMi007720 for ; Wed, 28 Apr 2010 01:24:34 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753205Ab0D1BY3 (ORCPT ); Tue, 27 Apr 2010 21:24:29 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:44922 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750883Ab0D1BY2 (ORCPT ); Tue, 27 Apr 2010 21:24:28 -0400 Received: from dlep33.itg.ti.com ([157.170.170.112]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id o3S1OQCF011511 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 27 Apr 2010 20:24:26 -0500 Received: from legion.dal.design.ti.com (localhost [127.0.0.1]) by dlep33.itg.ti.com (8.13.7/8.13.7) with ESMTP id o3S1OPrj025875; Tue, 27 Apr 2010 20:24:25 -0500 (CDT) Received: from Matrix (matrix.am.dhcp.ti.com [128.247.75.166]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id o3S1OPZ04386; Tue, 27 Apr 2010 20:24:25 -0500 (CDT) Received: by Matrix (Postfix, from userid 1003) id 3812C1663CC; Tue, 27 Apr 2010 20:29:28 -0500 (CDT) From: Omar Ramirez Luna To: linux-omap Cc: Ameya Palande , Hiroshi Doyu , Felipe Contreras , Nishanth Menon , Omar Ramirez Luna Subject: [PATCH v2] DSPBRIDGE: fail if clk handle is NULL Date: Tue, 27 Apr 2010 20:29:10 -0500 Message-Id: <1272418167-12630-3-git-send-email-omar.ramirez@ti.com> X-Mailer: git-send-email 1.5.4.3 In-Reply-To: <1272418167-12630-2-git-send-email-omar.ramirez@ti.com> References: <1272418167-12630-1-git-send-email-omar.ramirez@ti.com> <1272418167-12630-2-git-send-email-omar.ramirez@ti.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Wed, 28 Apr 2010 01:24:34 +0000 (UTC) diff --git a/drivers/dsp/bridge/services/clk.c b/drivers/dsp/bridge/services/clk.c index fb2ca81..1089e72 100644 --- a/drivers/dsp/bridge/services/clk.c +++ b/drivers/dsp/bridge/services/clk.c @@ -130,7 +130,7 @@ bool services_clk_init(void) pr_err("%s: failed to get clk handle %s, dev id = %d\n", __func__, services_clks[i].clk_name, services_clks[i].id); - /* should we fail here?? */ + return false; } services_clks[i].clk_handle = clk_handle; i++; @@ -153,17 +153,11 @@ dsp_status services_clk_enable(IN enum services_clk_id clk_id) DBC_REQUIRE(clk_id < SERVICESCLK_NOT_DEFINED); clk_handle = services_clks[clk_id].clk_handle; - if (clk_handle) { - if (clk_enable(clk_handle)) { - pr_err("services_clk_enable: failed to Enable CLK %s, " - "CLK dev id = %d\n", - services_clks[clk_id].clk_name, - services_clks[clk_id].id); - status = -EPERM; - } - } else { - pr_err("%s: failed to get CLK %s, CLK dev id = %d\n", __func__, - services_clks[clk_id].clk_name, services_clks[clk_id].id); + if (clk_enable(clk_handle)) { + pr_err("services_clk_enable: failed to Enable CLK %s, " + "CLK dev id = %d\n", + services_clks[clk_id].clk_name, + services_clks[clk_id].id); status = -EPERM; } /* The SSI module need to configured not to have the Forced idle for @@ -193,13 +187,11 @@ dsp_status clk_set32k_hz(IN enum services_clk_id clk_id) DBC_REQUIRE(clk_id < SERVICESCLK_NOT_DEFINED); clk_handle = services_clks[clk_id].clk_handle; - if (clk_handle) { - if (!(clk_set_parent(clk_handle, clk_parent) == 0x0)) { - pr_err("%s: failed for %s, dev id = %d\n", __func__, - services_clks[clk_id].clk_name, - services_clks[clk_id].id); - status = -EPERM; - } + if (!(clk_set_parent(clk_handle, clk_parent) == 0x0)) { + pr_err("%s: failed for %s, dev id = %d\n", __func__, + services_clks[clk_id].clk_name, + services_clks[clk_id].id); + status = -EPERM; } return status; } @@ -231,15 +223,8 @@ dsp_status services_clk_disable(IN enum services_clk_id clk_id) if (clk_id == SERVICESCLK_SSI_ICK) ssi_clk_prepare(false); - if (clk_handle) { - clk_disable(clk_handle); - } else { - pr_err("services_clk_disable: failed to get CLK %s," - "CLK dev id = %d\n", - services_clks[clk_id].clk_name, - services_clks[clk_id].id); - status = -EPERM; - } + clk_disable(clk_handle); + return status; } @@ -260,38 +245,25 @@ dsp_status services_clk_get_rate(IN enum services_clk_id clk_id, u32 *speedKhz) *speedKhz = 0x0; clk_handle = services_clks[clk_id].clk_handle; - if (clk_handle) { - clk_speed_hz = clk_get_rate(clk_handle); - *speedKhz = clk_speed_hz / 1000; - dev_dbg(bridge, "%s: clk_speed_hz = %d, speedinKhz = %d\n", + clk_speed_hz = clk_get_rate(clk_handle); + *speedKhz = clk_speed_hz / 1000; + dev_dbg(bridge, "%s: clk_speed_hz = %d, speedinKhz = %d\n", __func__, clk_speed_hz, *speedKhz); - } else { - pr_err("%s: failed to get %s, dev Id = %d\n", __func__, - services_clks[clk_id].clk_name, - services_clks[clk_id].id); - status = -EPERM; - } + return status; } s32 clk_get_use_cnt(IN enum services_clk_id clk_id) { - dsp_status status = DSP_SOK; struct clk *clk_handle; s32 use_count = -1; DBC_REQUIRE(clk_id < SERVICESCLK_NOT_DEFINED); clk_handle = services_clks[clk_id].clk_handle; - if (clk_handle) { - /* FIXME: usecount shouldn't be used */ - use_count = clk_handle->usecount; - } else { - pr_err("%s: failed to get %s, dev Id = %d\n", __func__, - services_clks[clk_id].clk_name, - services_clks[clk_id].id); - status = -EPERM; - } + /* FIXME: usecount shouldn't be used */ + use_count = clk_handle->usecount; + return use_count; }