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 08658381C4 for ; Thu, 14 May 2026 05:20:17 +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=1778736018; cv=none; b=f5bs04IIncnt1HBOKqhev3JXqQZvdKG7N5zcLWWhba7Odkb0F8p1OMlWSjRfNdBT24vvjAUzIiq1Qcwb5vq3ebYrOXgjVXS0C2I4TN/m1FPTjBgcozuH3mKlssL5huqoWSe2C8j0kboXd8WL2n1AihP/5yil1UzGGIL9IiFaFlA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778736018; c=relaxed/simple; bh=j/Dcf3cr10WNlqXagMVSyG/b1h6GRlGt6zupXfq0pww=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uNsg2cE+nEWTN1xmnbYih8Wu7GJXzYskaBNCaTimFMCafOXmEsmEPLEfci9x+L4wyqA3aV4SNv6VIYYq53q5f1NxH5pdKWZbyB/Fvpg2mlUF5hOU8dELCAhDfFmZ2RgdsBd0hPLjhBVdG1L/uylbLKlgaR2jAuKghxegXq2kNPI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uyW5Uwnb; 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="uyW5Uwnb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13D00C2BCB7; Thu, 14 May 2026 05:20:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778736017; bh=j/Dcf3cr10WNlqXagMVSyG/b1h6GRlGt6zupXfq0pww=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uyW5UwnbQJXfCUHJzvdsEBPh8s3b220GU9ubUwwlc69x7GGQquW6SD5e7hmQrM/m0 BrMcPi7rwknXrQ2Lrk/SlHdWaDgNoAZXwUS4eJ0qggTWELaijuybkQRgt6PUMEpIoF loyEv/Tx6Y0Ehonlo9pyNS8m5SqDh9Zy473O4NkLTQnepnKLxXJKP/k+/pNMqFHB/8 GSMgTM4mIOchds8iUX98RF3/tvJWiTggqJBxm6FeSOIgfz5kLqjjtvRRfFg6xWyoz2 fTqkaxfARP73ze6evbq2jc6Vnrrxriqh4xdb8t6khV1MXtrar7Q08qwHfZtunoQrnh JPq2gf0hT9JIQ== From: Sasha Levin To: stable@vger.kernel.org Cc: Pei Xiao , Kunihiko Hayashi , Mark Brown , Sasha Levin Subject: [PATCH 6.12.y 1/2] spi: uniphier: Simplify clock handling with devm_clk_get_enabled() Date: Thu, 14 May 2026 01:20:14 -0400 Message-ID: <20260514052015.40231-1-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <2026051213-turbofan-perkiness-3703@gregkh> References: <2026051213-turbofan-perkiness-3703@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 07b155980e712..d35fe376a21f4 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); @@ -717,7 +713,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; @@ -767,9 +763,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; @@ -778,14 +771,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