From patchwork Fri Sep 6 07:06:39 2024
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Huan Yang
X-Patchwork-Id: 13793498
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 600E1CE7AB8
for ;
Fri, 6 Sep 2024 07:20:41 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help
:List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type:
Content-Transfer-Encoding:Message-ID:Date:Subject:Cc:To:From:Reply-To:
Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
bh=WX/51u266mKj0LoSdOlTNhnqP4a2UU3yNggL/C+HHwg=; b=g47o4Ni9cOIFnsM0B23XzYaxOj
y+kRUEIQp1qcismPW+VFDltZJnKlcjUFqHEoBV8E72n46pLxIwqxctXCltkFaP45/3m8JnedIImRz
zdzvh9kpN6DzHDAo57O0MovntyFEKKQ3bP+4jT4PW6iaGvLodSBt6S551F4SpV1rMfLI91qA33mPM
lXGRxGDdz/xiIPKYN8bT+2P5PZaD+G0ykKBJPOL8YRBNX+RwLS3UdA7fRNmXtcLMXXokXkYgk089g
f2otUaAfdFpvOFcg8qtJ6OPCsKmeKk6+QOYFWlETlSzj+ZUO0cobrgRAY6Ngs1qlkGmEEpq0T/QqF
qXu2RR8A==;
Received: from localhost ([::1] helo=bombadil.infradead.org)
by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux))
id 1smTGh-0000000B3kT-3dNl;
Fri, 06 Sep 2024 07:20:31 +0000
Received: from mail-psaapc01on20620.outbound.protection.outlook.com
([2a01:111:f400:feae::620]
helo=APC01-PSA-obe.outbound.protection.outlook.com)
by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux))
id 1smT3l-0000000B173-0vev
for linux-arm-kernel@lists.infradead.org;
Fri, 06 Sep 2024 07:07:10 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
b=rY90ilKgzgrmkkte7owGvWMs/pX3jLByR0quvWX6V6ap57tY1km3bO7tphxBO29DRGUNUE8t13gV1PqGsO0DvLIaqT7FgPROT+3YwMrdjJ0tfDP4lUlEEbxC3VN6QjLBUnl8gbWMpctRfhZ/mfbyHfLZJOYZxkzXZw9U7PLsWx7gG173sRDhsuqLfyQQZGkAPPy4gpy/YPDSFcOBChYizU5OVUd6Dk2U7E+DRVVCzwqA90AUANcVC+buQqQR3lFxWSxjGMVZV+OJqFDvMC//m3Vr9Kfy6KOEsE1raY+gQmNSmg11prGodslFCsYtLmMTXlW0lZkYN6FZQNBS1El79g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector10001;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=WX/51u266mKj0LoSdOlTNhnqP4a2UU3yNggL/C+HHwg=;
b=XjzzxzEHweQjjDG9/W/R80q3T1rjUSn6u9Bj5Qmx6PG+WEoDJQIEbkRPBvrBZjY4OyMZITN15arFtPJN/1S83ZT9Yon2Ev+Sd4B4JFwJNtX72L5UWSHXlYZF69oPwce3+iQ/JxlUGZfK6oGb+Af4wyx+AD4pYNc0CHrzk/TCgfVS7OZwf/stkMIQJvuwOQKY/DVFNuuUnWxM6BG8XcLyumpX5IEAz5s1C5IsDmgMbOtC1rCQEk0vXs0zif9KLRsFH5aQvepnsooCwFMFfMh6r+izVnSioIVm9eZ7e5Phr6M4rill5tqLhdjnc6v2ujYcXMRirKQYzqeJzD+gaE7qQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com;
dkim=pass header.d=vivo.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=WX/51u266mKj0LoSdOlTNhnqP4a2UU3yNggL/C+HHwg=;
b=ACmq6nCo3LZocjXCXXqw0+PawZSqYrJ2yhzEhA3gH9vsUfx6gFt7pk/5n8ePzFh0xW5NstMyGwMUe0CSojLyseszWF2gIoGoDRw3syuM+MZyDtQRtXcTLb+gLEIibKldJzSFGC7nQJbD7ALT2A78CtObYJCCUFNChKxC6J1SMLIYTTS59WjT/bLJSeMs2MVq2ATyXfNJNFWzYwWLE1JiUKY5ycGxK9LxxgDPeMVHTOzmB16N92ejIGoYHLxuDdxZO+IhB4dCGoxJ/5OEaRP2edl3+x2t4pZuPIWeS8uCAHxMN0zzStFpINjCxCPGtSL9ruRyeNvNDSluyw98r28quA==
Authentication-Results: dkim=none (message not signed)
header.d=none;dmarc=none action=none header.from=vivo.com;
Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10)
by TYZPR06MB5298.apcprd06.prod.outlook.com (2603:1096:400:1f5::7) with
Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.28; Fri, 6 Sep
2024 07:06:53 +0000
Received: from PUZPR06MB5676.apcprd06.prod.outlook.com
([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com
([fe80::a00b:f422:ac44:636f%6]) with mapi id 15.20.7939.017; Fri, 6 Sep 2024
07:06:53 +0000
From: Huan Yang
To: Liam Girdwood ,
Mark Brown ,
Jaroslav Kysela ,
Takashi Iwai ,
Michal Simek ,
Huan Yang ,
linux-sound@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: opensource.kernel@vivo.com
Subject: [PATCH] soc: xilinx: Use devm_clk_get_enabled() helpers
Date: Fri, 6 Sep 2024 15:06:39 +0800
Message-ID: <20240906070641.2466518-1-link@vivo.com>
X-Mailer: git-send-email 2.45.2
X-ClientProxiedBy: SI1PR02CA0058.apcprd02.prod.outlook.com
(2603:1096:4:1f5::9) To PUZPR06MB5676.apcprd06.prod.outlook.com
(2603:1096:301:f8::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|TYZPR06MB5298:EE_
X-MS-Office365-Filtering-Correlation-Id: b850c356-8b6b-403b-65ef-08dcce427c81
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
BCL:0;ARA:13230040|1800799024|52116014|366016|376014|38350700014;
X-Microsoft-Antispam-Message-Info:
0MpAUafs1fKG1PMJOoSPim9gxqEoTwEn0b3JrlHMKvnz76f9DuFsaHshLFob/aYJmrkm00kAuy0c7tlRcxSYj96lU8J8Qf296wCWp8X9l9wOo8zR4zWQTs8Gf5mQdp+MRcNh1ITOnuWZgEjUgT+24QLU0Ihll3BMfzFrqhy0FRRCU73eqKB9BJOQ8jXKr6vX3f+zfi3PZ8YwNotLVK6gYCsEhGcUw9nmQv0CUZeYZpZsFDBF4kSKg7Qq1KwZi5GGXtNe2nhCbIOQHxKXL+mcImt4ht4lBRR7pEXfY+Jjl9OG2hh7DPCTiGnCTnueYoS+TfZ++eXZMaZj4R+eSYBrsnWqtSvgvRrDw6Js8V97MZBiJWBAtBCgffT7SLIN5NzefN+peYcnYV1AV0plxk5fd/dXpWBKPw7q+dWLYvKzzJqfEHDqhTdkvZpL7G1fYUS8dOlqVGIJ1Bl4h+m5eBY7XuLHWMFFbyqWH6N9+ZEji4+LuMg+Ntm3H/styKZ9zPMCvJMq6zreDfcamdhXjrd7V+rFIh37u7MZo1kdTinCHb1btgr8QOLV4zoCqjneVTFA5BTLU7AxUER+PYvLK9PAhKa/WIM1TWm2vfgFZzrY4K7rJOlORPb1DuunHHm4iSZK4IvzaveG/MhYTvbucMfg5tY9UF+KAoPwhWAj4w9Kh6qt405+zvprDND4b9Zvtf7Ge6C3KOzB/AEelF2DJqUhtvH+WZy0EHp5MzHDE9Q2k0ib4bstRuL5SKutL+wkv712Wh+xmofCSKbTVVwKDWTPBjvhxMYfDeEThJetMboq3nRGenlldqB20K3hDjbA5WVl4NjfkcsuZy4qy8jMwOHKVea+Gyxv1QNjD73Ri260bGxqFH8BW0x8OKra4SzoY9VCTSny3EhnA5cEmYJzcf4UQG2WMBWlptpGg6JUxaRQ0pAG9E7dn16er1MZ+i60PYSzzNh2okAakpLVvFE3AvNlHEG1mx39H2iQoALk/S6ZSC4haVJQHJwW1SteDKFa3BvRCetEr4ngu3niYPdjPDdtdko5kaqC4JOkMr9VKeDOk40sjDFz7tb0NE5MQGXkwLdxeHB/yQ3uWo7mWpyrrOdxgAXt1e8d3J0Zm3wjrAEtUNldSkPLFcgAaMkt74LMcPbBGXLGy3RQWJTSW/+y6cU8vxxJ05P0Duhusikett9r69qO8vBGol64jg7/Yd7UwaHNR4dGtXwqQWjoyAn/AhG6s1hIGqrs4fRayoyT8bo072MjO/+OvLg4VBmLf3nZ2mDVIcjaoJEs1hF0UiM+t+tWMo+b7mnHuJQMEjHCK+CHTjWdlTkVnfJIirZAn3pjb+cIU+8LmEr84WKNXxgf5qyzeIRaA8NGy3h01a4YHB/932Yr7opljoETh6RhvYuZJAe0agYgmbjzqmB1gF9OArjwDA==
X-Forefront-Antispam-Report:
CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(376014)(38350700014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
o5NUBngFs0dTh3SRkACYeNPe1eb2yCmonJzWXtT1VqCyGu7qd6Kdu6Wk3KntFu/I0z2epJkbPQ2qOnh8k0pwZ37V2jw8i5KyOpJuA4J9g7HCdME9+NrozPG+7ZXIOWpSBAytzPuNl04aJw7R2b1W/Nwz34iK2SG6lXfBkx2KOzsXVji8rYi9mEMkukd8DaKU2xXMjXArkpuvWHgL71X/QHTYWl6l813P7LxitIVSczniFvGU8uimIh7kdd+BgcbuyFTlYeo06fK8cWUM2EWkxHWtlHL9LmI6StTE9pKsgMsJUvn5FDVddAPKoFdHy7HrJMF6RX3o0fS9PH4ytEwTLXcp4po2XE85dGjd+SfeON+LIgFsSSHLMnwwZDojdiAd0laIVINoOrAOAJ5JjKiGHjZ1vezEQpw12jUZH3N9e3XNgpnCgQdXMNI1Rka8wRZghMqlmRhiD89D2teOOp32uLp6A6JVDIoThF6sxLSpUpOJS+sJycBATQhaExFmQt+J7taXpqTyQemXyMvMO4wkNsrAeGFCCwnZTUMd7Am3LVGmP5ZwDqnHzV3J/aJVPSY+gOWU+JJkF+LpAs+FyzMIc2HbCAnNd07BATLXStvIbIX9eHyGDZvmvohiUF3AMZig9/C4i4WDHgY4xJvBT0C+8LvPdEjjGkjmctRXM8C2FjgWgsUMWfCyMha1FMy9PsFwnMs9KYCKeC+yfJB1RWnLO6ToFmmGg0oPOcsgoHrEV4epU59h0PkOu2G1WF/oeUwuWl/Sf6usZQdiBJACpozXWjriZWILHK6BXK/iH/fIbn8Jphl8GVTAg2WvEijFxhMyV9GjI2lPZ4WLumEGo3SsSNNPba4aw/AdlvVIwmRBtqKkE/ljaTwRMkNUrg5VoxphzoMr04v1AQZwhLYCC7amBOEYyQghdpo3W/t1siH2HcnKKh0ypDaTrFoGzwX71bEsbc3HONAG83fa25KTtPzxURepJFFTyQdNIE5K2QaLTaNAvFF03KtvdcvV2/iL88q2xoZbXBZhSPN/Qn2X426Zg30W7+esm//0jma0/tiMyDuPL6ugzYuKVXqhXRxJ9ocXTv5y5tJ9f+/l1tIrTFSzvglxvnikBGYGaMz5caw37fq1IAx06T7fg4wUnsfcg5wfbxJyf9YpR5agCTgxZ9dU32tyQQ2YfBN79OZEl4lS+50d8IQ+rVgBsP5QttvM0PAwVVpb9CFX+f9vdo51d4nslFvpzAb5BlficLQQF/RnqbAhQaVmtsB8kgpVIgZRx8kCgCQCBNa1OcZutYk4Qw8VbjwhDJUPmiSN2n2ZcO1O18LVBKWNpdYQqYUmV6P2ysPmqzvejmqPDVBO0Tn890Lv66anD4hnxTVz6iQ4WZV1L2t9Ca0vyS4NyR12orBt6VsEUISrnYCvl7l8uj0yCL7w7XgOv+K979pLb68xAq4Rt9pPclFHZRm6rBfh7+UFMlxFqHdlisBIaVX5+PEtwK2yrxwHkyNlSZTbbs+lsGVkPxTA38tvcrngPptRYZXJFWMlHD6HvmowCMOfmxXJ7TjmK7lFlqR8jKm/FlGAbd68CgMAX6JEc6kV/GUfX8Dt7JIV
X-OriginatorOrg: vivo.com
X-MS-Exchange-CrossTenant-Network-Message-Id:
b850c356-8b6b-403b-65ef-08dcce427c81
X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2024 07:06:53.4169
(UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName:
M76ShvazGf/D9ruftM1szu8U5YdIlGOvMTQY8YknRK17LCPdvxgM+eExG1ccPnm7ZqJB6pa8nh26zvZbXsgs8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB5298
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
X-CRM114-CacheID: sfid-20240906_000709_274291_EBBDED39
X-CRM114-Status: GOOD ( 17.20 )
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:
,
Sender: "linux-arm-kernel"
Errors-To:
linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
The devm_clk_get_enabled() helpers:
- call devm_clk_get()
- call clk_prepare_enable() and register what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the calls to clk_disable_unprepare().
Due to clk only used in probe, not in suspend\resume, clk pointer can
remove from spdif_dev_data, this can save a little memory.
Signed-off-by: Huan Yang
---
sound/soc/xilinx/xlnx_spdif.c | 44 +++++++++++------------------------
1 file changed, 14 insertions(+), 30 deletions(-)
base-commit: ad40aff1edffeccc412cde93894196dca7bc739e
diff --git a/sound/soc/xilinx/xlnx_spdif.c b/sound/soc/xilinx/xlnx_spdif.c
index d52d5fc7b5b8..1ac4bb4b76e8 100644
--- a/sound/soc/xilinx/xlnx_spdif.c
+++ b/sound/soc/xilinx/xlnx_spdif.c
@@ -48,7 +48,6 @@ struct spdif_dev_data {
u32 aclk;
bool rx_chsts_updated;
void __iomem *base;
- struct clk *axi_clk;
wait_queue_head_t chsts_q;
};
@@ -240,49 +239,44 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
int ret;
struct snd_soc_dai_driver *dai_drv;
struct spdif_dev_data *ctx;
-
struct device *dev = &pdev->dev;
struct device_node *node = dev->of_node;
+ struct clk *clk;
ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
if (!ctx)
return -ENOMEM;
- ctx->axi_clk = devm_clk_get(dev, "s_axi_aclk");
- if (IS_ERR(ctx->axi_clk)) {
- ret = PTR_ERR(ctx->axi_clk);
+ clk = devm_clk_get_enabled(dev, "s_axi_aclk");
+ if (IS_ERR(clk)) {
+ ret = PTR_ERR(clk);
dev_err(dev, "failed to get s_axi_aclk(%d)\n", ret);
return ret;
}
- ret = clk_prepare_enable(ctx->axi_clk);
- if (ret) {
- dev_err(dev, "failed to enable s_axi_aclk(%d)\n", ret);
- return ret;
- }
ctx->base = devm_platform_ioremap_resource(pdev, 0);
- if (IS_ERR(ctx->base)) {
- ret = PTR_ERR(ctx->base);
- goto clk_err;
- }
+ if (IS_ERR(ctx->base))
+ return PTR_ERR(ctx->base);
+
ret = of_property_read_u32(node, "xlnx,spdif-mode", &ctx->mode);
if (ret < 0) {
dev_err(dev, "cannot get SPDIF mode\n");
- goto clk_err;
+ return ret;
}
+
if (ctx->mode) {
dai_drv = &xlnx_spdif_tx_dai;
} else {
ret = platform_get_irq(pdev, 0);
if (ret < 0)
- goto clk_err;
+ return ret;
+
ret = devm_request_irq(dev, ret,
xlnx_spdifrx_irq_handler,
0, "XLNX_SPDIF_RX", ctx);
if (ret) {
dev_err(dev, "spdif rx irq request failed\n");
- ret = -ENODEV;
- goto clk_err;
+ return -ENODEV;
}
init_waitqueue_head(&ctx->chsts_q);
@@ -292,7 +286,7 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
ret = of_property_read_u32(node, "xlnx,aud_clk_i", &ctx->aclk);
if (ret < 0) {
dev_err(dev, "cannot get aud_clk_i value\n");
- goto clk_err;
+ return ret;
}
dev_set_drvdata(dev, ctx);
@@ -301,31 +295,21 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
dai_drv, 1);
if (ret) {
dev_err(dev, "SPDIF component registration failed\n");
- goto clk_err;
+ return ret;
}
writel(XSPDIF_SOFT_RESET_VALUE, ctx->base + XSPDIF_SOFT_RESET_REG);
dev_info(dev, "%s DAI registered\n", dai_drv->name);
-clk_err:
- clk_disable_unprepare(ctx->axi_clk);
return ret;
}
-static void xlnx_spdif_remove(struct platform_device *pdev)
-{
- struct spdif_dev_data *ctx = dev_get_drvdata(&pdev->dev);
-
- clk_disable_unprepare(ctx->axi_clk);
-}
-
static struct platform_driver xlnx_spdif_driver = {
.driver = {
.name = "xlnx-spdif",
.of_match_table = xlnx_spdif_of_match,
},
.probe = xlnx_spdif_probe,
- .remove_new = xlnx_spdif_remove,
};
module_platform_driver(xlnx_spdif_driver);