From patchwork Thu Nov 15 09:35:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen-Yu Tsai X-Patchwork-Id: 10684017 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3D1517F3 for ; Thu, 15 Nov 2018 09:38:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C0E372BB5E for ; Thu, 15 Nov 2018 09:38:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B48B52BB75; Thu, 15 Nov 2018 09:38:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 619042BB97 for ; Thu, 15 Nov 2018 09:38:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jGGTD8FLCuy1lxvog8O2GlVLDYgZXAzg1cbtV0GD84c=; b=XSEWYpRQSwg8Ey bdZDbC/dNFHni06w58Zwa7BgSIy3QBZwn/3/jAIBzg4DedmjXmjZjTHRiZpHHoKCLQDEptdk5LmTf eohlhrZfvSmDqy8VMCDiOOzOYNEhaZWb43/0hnOM7KgY5W3HkG3HEQhMEV1oFrV0o2mGCkdHyUTJy ydSBTuWda98r4A+ty1+iqUzMqaKa9nuiuhiWsXCklNuEytsXZP+qHLk61eV5ROSfjA7CjInYaXe16 aR7CPcLovk5izLILsdeU07qGMauJn5BPk1i92OaT+tqKcN5kbVeVKACE5C10rUHJNq3G93hbzvjW5 E3iV7aYOrGmpBIkWcveg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNE6m-0003P3-2S; Thu, 15 Nov 2018 09:38:44 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNE4n-0001R8-F7 for linux-arm-kernel@bombadil.infradead.org; Thu, 15 Nov 2018 09:36:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=8+2Ab1+q8MGl24rj8S9h8svgjA4deuFWV8H0bAIEz3E=; b=Gno+seG0qNI2JXOBNd/qWxkzWE HG0Z9ajLivAkiMn4QnA3mja2nZsWYTzatwHLQoFkX0CP1nGvMj8f9jwkp8PlZ9qzT0N9+BnucxU5R LASafztvwkR23DBTuYzk/ocynzysMEYdokVA0w81CDOowPGbchYi0UJiig66ghGM+V/WiLPSo5qyC jXrOTA8bcQeaUdlkvYZCHQNz2hQg6yaFW85f4tvpxXo+/VL5aoE/Y2GJbkJLlH04bHyGNIU9KoQjS tvlZEh+IA5UOyzANElQF1u9iWxhhppcLl6ds1y6vWwKiSoIbKWG0y/4QT0xv5RPUgv5okUC6Qig8+ McpzIXGA==; Received: from mirror2.csie.ntu.edu.tw ([140.112.30.76] helo=wens.csie.org) by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gNE4k-0000ib-L7 for linux-arm-kernel@lists.infradead.org; Thu, 15 Nov 2018 09:36:39 +0000 Received: by wens.csie.org (Postfix, from userid 1000) id C4C095FD40; Thu, 15 Nov 2018 17:36:04 +0800 (CST) From: Chen-Yu Tsai To: Marcel Holtmann , Johan Hedberg , Rob Herring , Mark Rutland , Maxime Ripard Subject: [PATCH v2 06/15] Bluetooth: hci_bcm: Simplify clk_get error handling Date: Thu, 15 Nov 2018 17:35:54 +0800 Message-Id: <20181115093603.26729-7-wens@csie.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181115093603.26729-1-wens@csie.org> References: <20181115093603.26729-1-wens@csie.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181115_043638_925457_57F1E677 X-CRM114-Status: GOOD ( 14.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-bluetooth@vger.kernel.org, Chen-Yu Tsai , Loic Poulain , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The driver currently checks the clk pointer for an error condition, as returned by clk_get, before every invocation of the clk consumer API. This is redundant if the goal is simply to ignore the errors, thereby making the clk optional. The clk consumer API already checks if the pointer is NULL or not. Simplify the code a bit by assigning NULL to the clk pointer if the error condition is one we want to ignore, which is every error except deferred probing. Signed-off-by: Chen-Yu Tsai --- drivers/bluetooth/hci_bcm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c index 800132369134..ff73ecb8215f 100644 --- a/drivers/bluetooth/hci_bcm.c +++ b/drivers/bluetooth/hci_bcm.c @@ -214,7 +214,7 @@ static int bcm_gpio_set_power(struct bcm_device *dev, bool powered) { int err; - if (powered && !IS_ERR(dev->clk) && !dev->clk_enabled) { + if (powered && !dev->clk_enabled) { err = clk_prepare_enable(dev->clk); if (err) return err; @@ -228,7 +228,7 @@ static int bcm_gpio_set_power(struct bcm_device *dev, bool powered) if (err) goto err_revert_shutdown; - if (!powered && !IS_ERR(dev->clk) && dev->clk_enabled) + if (!powered && dev->clk_enabled) clk_disable_unprepare(dev->clk); dev->clk_enabled = powered; @@ -238,7 +238,7 @@ static int bcm_gpio_set_power(struct bcm_device *dev, bool powered) err_revert_shutdown: dev->set_shutdown(dev, !powered); err_clk_disable: - if (powered && !IS_ERR(dev->clk) && !dev->clk_enabled) + if (powered && !dev->clk_enabled) clk_disable_unprepare(dev->clk); return err; } @@ -911,6 +911,10 @@ static int bcm_get_resources(struct bcm_device *dev) if (dev->clk == ERR_PTR(-EPROBE_DEFER)) return PTR_ERR(dev->clk); + /* Ignore all other errors as before */ + if (IS_ERR(dev->clk)) + dev->clk = NULL; + dev->device_wakeup = devm_gpiod_get_optional(dev->dev, "device-wakeup", GPIOD_OUT_LOW); if (IS_ERR(dev->device_wakeup))