From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 384AA38F621 for ; Thu, 14 May 2026 04:36:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778733394; cv=none; b=Lz17Cztmb+9Z4J9N/wKmcerhLUScM6A3c6OcKXSbq8YHxAeZrdEP2dXZvDwdGEr7s9JvlHehvzQb+/x7BU/dlRdqOY/EJpH4PLCibsu3/SrXXaSeKxIpBuJXNk0nn72207qlVqn3Uol17n7KZZrlq7OVXOQ+9zUfcZ1H5bCQd6M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778733394; c=relaxed/simple; bh=zZ4wAlsezhsgi6rPSjBD6AjHcJa4oEqeqWqwzYSk51w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mQjnxvKr03lcFqtBOnGc2oQ7Mmp9RahmHiCZAKOjmyjrf+EfGP/T8gLNth1iJg8UN9iXa2VC3wzvSsWy6Ri6w4dUmo2fDc3T1ciT78hf9HIdOAq4HBdg4JLRYSVl+G0j31zg33McPt0MdyJGEiqkqKOZQ7BB8gqYfKv+CEgZDJ0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mNX7Y2MI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mNX7Y2MI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80CEDC2BCB7; Thu, 14 May 2026 04:36:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778733394; bh=zZ4wAlsezhsgi6rPSjBD6AjHcJa4oEqeqWqwzYSk51w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mNX7Y2MI8Fy5VTmw1JG4/VLUzDkVgXiF4bnb8EKd2tMGXZlTVbbXhHRBmLRwA0kOQ pvWGv/YvoDoRCTDtejwpmSmMlW526qoLfMxbbyrb+9Y2fIm8dMrzFr7Oehw9Q/fHQ+ ceMVk1Wl+FGWxZmznvAsDL3BFhvlYzDypkX/PHPlmHzd9jKxVfVXot9xydKdaMMLXm f7DTvhv1v2u+6SnzFb3nmm1W3Pd17Jr6s3iTlfDTwdTpIskGeZvdjDXeBHkMfWBgHC ssZseO8vKCd+UUJ1UEtG0PDMunQHuI5Xojkn9M4Mt7Hpwd/mNceZP8fLr7lc2TJjZI lP4SOk3s516Lg== From: Sasha Levin To: stable@vger.kernel.org Cc: Pei Xiao , Kunihiko Hayashi , Mark Brown , Sasha Levin Subject: [PATCH 7.0.y 1/2] spi: uniphier: Simplify clock handling with devm_clk_get_enabled() Date: Thu, 14 May 2026 00:36:30 -0400 Message-ID: <20260514043631.10946-1-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <2026051212-foam-sharpness-9164@gregkh> References: <2026051212-foam-sharpness-9164@gregkh> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Pei Xiao [ Upstream commit fdca270f8f87cae2eb5b619234b9dd11a863ce6b ] Replace devm_clk_get() followed by clk_prepare_enable() with devm_clk_get_enabled() for the clock. This removes the need for explicit clock enable and disable calls, as the managed API automatically handles clock disabling on device removal or probe failure. Remove the now-unnecessary clk_disable_unprepare() calls from the probe error path and the remove callback. Adjust error labels accordingly. Signed-off-by: Pei Xiao Reviewed-by: Kunihiko Hayashi Link: https://patch.msgid.link/b2deeefd4ef1a4bce71116aabfcb7e81400f6d37.1775546948.git.xiaopei01@kylinos.cn Signed-off-by: Mark Brown Stable-dep-of: 0245435f7772 ("spi: uniphier: fix controller deregistration") Signed-off-by: Sasha Levin --- drivers/spi/spi-uniphier.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/spi/spi-uniphier.c b/drivers/spi/spi-uniphier.c index 9e1d364a61981..1b815ee2ed1b6 100644 --- a/drivers/spi/spi-uniphier.c +++ b/drivers/spi/spi-uniphier.c @@ -666,28 +666,24 @@ static int uniphier_spi_probe(struct platform_device *pdev) } priv->base_dma_addr = res->start; - priv->clk = devm_clk_get(&pdev->dev, NULL); + priv->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(priv->clk)) { dev_err(&pdev->dev, "failed to get clock\n"); ret = PTR_ERR(priv->clk); goto out_host_put; } - ret = clk_prepare_enable(priv->clk); - if (ret) - goto out_host_put; - irq = platform_get_irq(pdev, 0); if (irq < 0) { ret = irq; - goto out_disable_clk; + goto out_host_put; } ret = devm_request_irq(&pdev->dev, irq, uniphier_spi_handler, 0, "uniphier-spi", priv); if (ret) { dev_err(&pdev->dev, "failed to request IRQ\n"); - goto out_disable_clk; + goto out_host_put; } init_completion(&priv->xfer_done); @@ -716,7 +712,7 @@ static int uniphier_spi_probe(struct platform_device *pdev) if (IS_ERR_OR_NULL(host->dma_tx)) { if (PTR_ERR(host->dma_tx) == -EPROBE_DEFER) { ret = -EPROBE_DEFER; - goto out_disable_clk; + goto out_host_put; } host->dma_tx = NULL; dma_tx_burst = INT_MAX; @@ -766,9 +762,6 @@ static int uniphier_spi_probe(struct platform_device *pdev) host->dma_tx = NULL; } -out_disable_clk: - clk_disable_unprepare(priv->clk); - out_host_put: spi_controller_put(host); return ret; @@ -777,14 +770,11 @@ static int uniphier_spi_probe(struct platform_device *pdev) static void uniphier_spi_remove(struct platform_device *pdev) { struct spi_controller *host = platform_get_drvdata(pdev); - struct uniphier_spi_priv *priv = spi_controller_get_devdata(host); if (host->dma_tx) dma_release_channel(host->dma_tx); if (host->dma_rx) dma_release_channel(host->dma_rx); - - clk_disable_unprepare(priv->clk); } static const struct of_device_id uniphier_spi_match[] = { -- 2.53.0