From patchwork Fri Aug 11 13:03:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Hunter X-Patchwork-Id: 13350869 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4832AC0015E for ; Fri, 11 Aug 2023 13:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; 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=BZaireCNV5sfVQ3dduEqQY9UiJw0kmfKdXI26rOPrBY=; b=qmNn6PDblOmMF9 X9ZkBfCuqUK+hm89tY6WnsqQVZI91NW+QI4KLjnC244/onGlrBopkXLX8ETkOi8hA1bWDbPOQnBci SOFIUSwfdgaXIJcMaU1iux3H8z25jZXnFO9kgzYFf1o4dH4Rv0eyQOi03K1temnoiUUbfLe0iqAm5 RNLE7giZmzZlbd0hznUEvi8u1MurNEiYW/tpzzUJCcTqmzxk4UnbZkR/cg7hpVtWyGHEWfvbJS8vU 1WBQ2b8q/KHpPxLqvixgD+P5FV41JEUl05iWO5c8ART1EYHKp12ikwhAr/S6PogHFh6o2AwwaG0ac Qg8PQ2L3sv6/AGF3A9Og==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qURon-00AfLE-21; Fri, 11 Aug 2023 13:04:41 +0000 Received: from mgamail.intel.com ([134.134.136.20]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qURok-00AfJz-2W for linux-arm-kernel@lists.infradead.org; Fri, 11 Aug 2023 13:04:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691759078; x=1723295078; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NJ+oDcj0/HsM4ftQsJN9ghcnz+v/hRDm+Rt5+H5fL6M=; b=iIukfdIGoeG5mLpmiKtjAtOA9tAfz1nSeDJJHL3s+rSSsmf7+kgpJ2Rg p1Y8EpOsR8tn45KSVYRfUUrLQU2Zm2BRpo22yDOEauAImN+S+uMN4S1t6 NI7urF2Q4fQwRmNUBg6m+jECWGuktfikYk1RVRYiWYX2MEPdU8v1jSqKX y8ft6K8wzXWgOd+32CPaoCEsfIBU8VyRQBw1sEs6IiWyjA/wAhk9HItnu 3azIGOalW6LbAZv4hx4rupAYHrmbYYx7T6DFInbudMi480q+xhwuOkGhk kPplqzA0U68M3nlonGhPrS6DqMnRy5hyuUYBBfbkzxnMWerYK7rEEJzmD w==; X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="361811754" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="361811754" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2023 06:04:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10798"; a="709535211" X-IronPort-AV: E=Sophos;i="6.01,165,1684825200"; d="scan'208";a="709535211" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO ahunter-VirtualBox.home\044ger.corp.intel.com) ([10.252.51.13]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2023 06:04:29 -0700 From: Adrian Hunter To: Ulf Hansson , Andy Shevchenko , =?utf-8?q?Uwe_Kleine-K?= =?utf-8?q?=C3=B6nig?= , Yangtao Li Subject: [PATCH 03/16] mmc: sdhci-brcmstb: Use sdhci_pltfm_remove() Date: Fri, 11 Aug 2023 16:03:38 +0300 Message-Id: <20230811130351.7038-4-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230811130351.7038-1-adrian.hunter@intel.com> References: <20230811130351.7038-1-adrian.hunter@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230811_060438_863060_83AC3543 X-CRM114-Status: GOOD ( 17.32 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexandre Belloni , Kunihiko Hayashi , Al Cooper , Li Zetao , Brad Larson , Swati Agarwal , linux-kernel@vger.kernel.org, Sai Krishna Potthuri , Jiapeng Chong , Florian Fainelli , Steen Hegelund , Brian Norris , Broadcom internal kernel review list , linux-arm-kernel@lists.infradead.org, Ye Xingchen , Patrice Chotard , Kamal Dasu , Doug Brown , Daniel Machon , Ray Jui , Eugen Hristev , Jassi Brar , Christophe JAILLET , Georgii Kruglov , Michal Simek , Lars Povlsen , Andy Tang , Scott Branden , linux-mmc@vger.kernel.org, UNGLinuxDriver@microchip.com, Claudiu Beznea Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use sdhci_pltfm_remove() instead of sdhci_pltfm_unregister() so that devm_clk_get_optional_enabled() can be used for pltfm_host->clk. This has the side effect that the order of operations on the error path and remove path is not the same as it was before, but should be safe nevertheless. Signed-off-by: Adrian Hunter --- drivers/mmc/host/sdhci-brcmstb.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/sdhci-brcmstb.c b/drivers/mmc/host/sdhci-brcmstb.c index a2b6d8f2eeb6..c23251bb95f3 100644 --- a/drivers/mmc/host/sdhci-brcmstb.c +++ b/drivers/mmc/host/sdhci-brcmstb.c @@ -264,23 +264,17 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "Probe found match for %s\n", match->compatible); - clk = devm_clk_get_optional(&pdev->dev, NULL); + clk = devm_clk_get_optional_enabled(&pdev->dev, NULL); if (IS_ERR(clk)) return dev_err_probe(&pdev->dev, PTR_ERR(clk), - "Failed to get clock from Device Tree\n"); - - res = clk_prepare_enable(clk); - if (res) - return res; + "Failed to get and enable clock from Device Tree\n"); memset(&brcmstb_pdata, 0, sizeof(brcmstb_pdata)); brcmstb_pdata.ops = match_priv->ops; host = sdhci_pltfm_init(pdev, &brcmstb_pdata, sizeof(struct sdhci_brcmstb_priv)); - if (IS_ERR(host)) { - res = PTR_ERR(host); - goto err_clk; - } + if (IS_ERR(host)) + return PTR_ERR(host); pltfm_host = sdhci_priv(host); priv = sdhci_pltfm_priv(pltfm_host); @@ -369,9 +363,7 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev) err: sdhci_pltfm_free(pdev); -err_clk: clk_disable_unprepare(base_clk); - clk_disable_unprepare(clk); return res; } @@ -430,7 +422,7 @@ static struct platform_driver sdhci_brcmstb_driver = { .of_match_table = of_match_ptr(sdhci_brcm_of_match), }, .probe = sdhci_brcmstb_probe, - .remove_new = sdhci_pltfm_unregister, + .remove_new = sdhci_pltfm_remove, .shutdown = sdhci_brcmstb_shutdown, };