From mboxrd@z Thu Jan 1 00:00:00 1970 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 9AC4CC07548 for ; Wed, 15 Nov 2023 07:34: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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:MIME-Version:Message-ID:Date :Subject:In-Reply-To:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=60/K61qOHvAVIfyo/YvTAHZOTAjTejUowpOK54qfymg=; b=wqag7vgOlC/o9N +P3gqhiQREqJdcTDNhC4dkn2zXQWmZzGWVuJbFdcQDThMw5h6OMaLc/RClUrPX/3ifpIVCzxx1mqa axZCXyzicNHQkYSpsPD2d5rZxhXEZOJMiZbc+jkgSqqwG4B3iWch09TYMqGogxKv43a+CULE3g0Ss E4ljh0pSkruV9EzBjgaVXHPrOXN7eDHYuk1oHXl0GN0HdL4VeGIM1QCbh2UNKXPASciINkamj19Jj lv2b8O6cF9nH2bTlJtuiTuWyXJQ8MHSqJQ8RfgJJlssIq92tJxNe16LPL3ZIGDMep4NWHZp7n3XP1 ctKkf9uUQCOPJyncggFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3AOz-000A8I-1k; Wed, 15 Nov 2023 07:33:33 +0000 Received: from mailout4.samsung.com ([203.254.224.34]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r3AOv-000A5i-09 for linux-arm-kernel@lists.infradead.org; Wed, 15 Nov 2023 07:33:31 +0000 Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20231115073311epoutp049e1bc98c8928b6c4ca11c96c536d6417~Xu4s_ZCFQ0807808078epoutp04U for ; Wed, 15 Nov 2023 07:33:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20231115073311epoutp049e1bc98c8928b6c4ca11c96c536d6417~Xu4s_ZCFQ0807808078epoutp04U DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1700033591; bh=WaeOfoNTbfhSobyw3fHef25B5qOSM0ie2Tlm8/7W3FA=; h=From:To:Cc:In-Reply-To:Subject:Date:References:From; b=qWVzVo2fq5JeNWTYMDRT7qFQ3g3J8xsuo5UCcIkFbuj0HzBVmNFPX3t3hZwB+AAJt kllr4igbyZim6+mXjMPZ14jKIeJnHqcsYN42Ydww/sQU7UbY/TSoZIYvUFiMGYux0m K9N/7vuK4OayQmP8B5pYdFf5szJbTiwOFIldHgVs= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20231115073310epcas5p3c4fe7c3d699636bc9624c0dc62c695d5~Xu4sioTCH2420624206epcas5p3U; Wed, 15 Nov 2023 07:33:10 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.179]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4SVZdc5jQKz4x9Q7; Wed, 15 Nov 2023 07:33:08 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 03.36.08567.43474556; Wed, 15 Nov 2023 16:33:08 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20231115063748epcas5p4fe34caf919fc11d8f22e4cf8cd34f543~XuIWiCYsX0656906569epcas5p4A; Wed, 15 Nov 2023 06:37:48 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20231115063748epsmtrp116632c61935100634a84817343149e82~XuIWhRhmg1243112431epsmtrp1T; Wed, 15 Nov 2023 06:37:48 +0000 (GMT) X-AuditID: b6c32a44-617fd70000002177-14-65547434c348 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F1.28.08755.C3764556; Wed, 15 Nov 2023 15:37:48 +0900 (KST) Received: from FDSFTE462 (unknown [107.122.81.248]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20231115063746epsmtip25dc2e9b186050cabb5c13a51eabd0048~XuIUmmknM0739707397epsmtip2Q; Wed, 15 Nov 2023 06:37:46 +0000 (GMT) From: "Shradha Todi" To: "'Alim Akhtar'" , , , , , , Cc: , , , , In-Reply-To: <029a01da1334$dc1016c0$94304440$@samsung.com> Subject: RE: [PATCH] PCI: exynos: Adapt to clk_bulk_* APIs Date: Wed, 15 Nov 2023 12:07:44 +0530 Message-ID: <000a01da178e$3f3e18c0$bdba4a40$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQFlrvPEaqAl+ZjspMpXVx4MiN0lSgK7wbyrAgqzZeuxPYqDUA== Content-Language: en-in X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrAJsWRmVeSWpSXmKPExsWy7bCmhq5JSUiqwbcOHYsH87axWSxpyrBY 8WUmu8Xe11vZLRp6frNabHp8jdXi8q45bBZn5x1ns5hxfh+TRcufFhaLRVu/sFv837OD3YHH Y+esu+weCzaVemxa1cnmcefaHjaPJ1emM3lsXlLv0bdlFaPH501yARxR2TYZqYkpqUUKqXnJ +SmZeem2St7B8c7xpmYGhrqGlhbmSgp5ibmptkouPgG6bpk5QLcqKZQl5pQChQISi4uV9O1s ivJLS1IVMvKLS2yVUgtScgpMCvSKE3OLS/PS9fJSS6wMDQyMTIEKE7IzFhyeylhwXqti3e64 Bsb9Sl2MnBwSAiYSi/sWs3QxcnEICexmlDi36RwbhPOJUWLuvb9QzjdGiVUfXzDCtNxeeQGq ZS+jxKT+NijnBaNER3c3M0gVm4COxJMrf5hBEiIC+xglTi19xwSSYBZYwygxuTuqi5GDg1PA SuL4ayOQsDCQ+X3pBFYQm0VAVeLa9sMsIDavgKXE+5t/mSBsQYmTM5+wQIzRlli28DUzxEUK Ej+fLgPrFRFwknj1dD0bRI24xNGfPWA3SAic4JBYcvIXE0SDi8SHpkVQzcISr45vYYewpSRe 9rdB2ekSKzfPgKrJkfi2eQlUr73EgStzWEDuZxbQlFi/Sx8iLCsx9dQ6qBf5JHp/P4Eq55XY MQ/GVpb48ncPC4QtKTHv2GXWCYxKs5C8NgvJa7OQvDALYdsCRpZVjJKpBcW56anJpgWGeanl 8AhPzs/dxAhOylouOxhvzP+nd4iRiYPxEKMEB7OSCK+5XEiqEG9KYmVValF+fFFpTmrxIUZT YHhPZJYSTc4H5oW8knhDE0sDEzMzMxNLYzNDJXHe161zU4QE0hNLUrNTUwtSi2D6mDg4pRqY Xs77tXRrqfT0STOfC5yd5+dZ46snuOaKrfZkxr6AJz4hLxxzGyos5JhLY110tnO5rMxv8NK3 XGN2U2qqn42u7EI/b1evKRxTexaEVGxP/ZF6t6J3b4w3q8rWG72mW18s/HdBZ8HhhBdJB0R6 Mp99mNL+ILwpkeXEBNeZF6dc3NwY8DvBQsOg1Mb8boGgyetZMQ94MtaIOq8Wdt/s4fK6eVEL p0qqokWLtNiDc67m9/95TVCIEH1vsFhL76najQ37tN571Ppt5BXW5nwy88WlMwZKc2IP3qq2 C/vhMofv0mtHO54KW9VN4us/8ikc/L/0jPmJivTwBcs+m/OFftSU2iZj2LpG/Un8DXmp3bZK LMUZiYZazEXFiQA9ILKZUwQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRmVeSWpSXmKPExsWy7bCSvK5NekiqwZaHQhYP5m1js1jSlGGx 4stMdou9r7eyWzT0/Ga12PT4GqvF5V1z2CzOzjvOZjHj/D4mi5Y/LSwWi7Z+Ybf4v2cHuwOP x85Zd9k9Fmwq9di0qpPN4861PWweT65MZ/LYvKTeo2/LKkaPz5vkAjiiuGxSUnMyy1KL9O0S uDLOHkwq6NSsePSyjaWB8a9CFyMnh4SAicTtlRdYuhi5OIQEdjNKTPy2mB0iISnx+eI6Jghb WGLlv+fsEEXPGCU2vf/LCJJgE9CReHLlDzNIQkTgGKPE1vsLWEASzAIbGCW2HciD6NjJKLFl aRNQBwcHp4CVxPHXRiA1wkDm96UTWEFsFgFViWvbD4P18gpYSry/+ZcJwhaUODnzCdRMbYne h62MMPayha+ZIa5TkPj5dBnYHBEBJ4lXT9ezQdSISxz92cM8gVF4FpJRs5CMmoVk1CwkLQsY WVYxSqYWFOem5xYbFhjmpZbrFSfmFpfmpesl5+duYgRHppbmDsbtqz7oHWJk4mA8xCjBwawk wmsuF5IqxJuSWFmVWpQfX1Sak1p8iFGag0VJnFf8RW+KkEB6YklqdmpqQWoRTJaJg1OqgelA S/uxS+2HLzTOWh7Et46jSfSnqcitZD8RNgVjWQFbKafTfbdrGdffaEwsOGXz3Ur5/Z22+p99 1v27uxrTumTv/QxUCP+9JPdizQH9dewf7B+3+b2M6buidYD91Y2+Lzp2Sb6le5Y+eP6PKXmB +sq/lyMPsEXMcbURYDjG/uRI2qnM6Wypf3z0z2170Z2uuspKsMJAxmaDlRN/RbWR2bdNu7i6 t0m0dU3cWLsho1vlyVmDoyVXjS5OEjBY2MC457rdXbsvQiZxj56xsKtwpASmXIh5IzTbuWzO hJpHzpINd/xzrXd8OXSswvTSRyXvuXbFDXF3NydPMfsntnG9hZfm2iaV+wXMK5rrvTazKbEU ZyQaajEXFScCAGdMFJk7AwAA X-CMS-MailID: 20231115063748epcas5p4fe34caf919fc11d8f22e4cf8cd34f543 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20231009062222epcas5p36768b75c13c7c79965b5863521361a64 References: <20231009062216.6729-1-shradha.t@samsung.com> <029a01da1334$dc1016c0$94304440$@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231114_233329_465872_9E8D23AC X-CRM114-Status: GOOD ( 28.95 ) 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org > -----Original Message----- > From: Alim Akhtar [mailto:alim.akhtar@samsung.com] > Sent: 09 November 2023 23:18 > To: 'Shradha Todi' ; jingoohan1@gmail.com; > lpieralisi@kernel.org; kw@linux.com; robh@kernel.org; > bhelgaas@google.com; krzysztof.kozlowski@linaro.org > Cc: linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux- > samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org; > pankaj.dubey@samsung.com > Subject: RE: [PATCH] PCI: exynos: Adapt to clk_bulk_* APIs > > Hi Shradha > > > -----Original Message----- > > From: Shradha Todi > > Sent: Monday, October 9, 2023 11:52 AM > > To: jingoohan1@gmail.com; lpieralisi@kernel.org; kw@linux.com; > > robh@kernel.org; bhelgaas@google.com; krzysztof.kozlowski@linaro.org; > > alim.akhtar@samsung.com > > Cc: linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > > linux- samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org; > > pankaj.dubey@samsung.com; Shradha Todi > > Subject: [PATCH] PCI: exynos: Adapt to clk_bulk_* APIs > > > > There is no need to hardcode the clock info in the driver as driver > > can rely on the devicetree to supply the clocks required for the > > functioning of the peripheral. Get rid of the static clock info and > > obtain the platform supplied clocks. The total number of clocks > > supplied is obtained using the > > devm_clk_bulk_get_all() API and used for the rest of the clk_bulk_* APIs. > > > > Signed-off-by: Shradha Todi > > --- > > drivers/pci/controller/dwc/pci-exynos.c | 46 > > ++++++------------------- > > 1 file changed, 11 insertions(+), 35 deletions(-) > > > > diff --git a/drivers/pci/controller/dwc/pci-exynos.c > > b/drivers/pci/controller/dwc/pci-exynos.c > > index 9e42cfcd99cc..023cf41fccd7 100644 > > --- a/drivers/pci/controller/dwc/pci-exynos.c > > +++ b/drivers/pci/controller/dwc/pci-exynos.c > > @@ -54,8 +54,8 @@ > > struct exynos_pcie { > > struct dw_pcie pci; > > void __iomem *elbi_base; > > - struct clk *clk; > > - struct clk *bus_clk; > > + struct clk_bulk_data *clks; > > + int clk_cnt; > > struct phy *phy; > > struct regulator_bulk_data supplies[2]; > > }; > > @@ -65,30 +65,18 @@ static int exynos_pcie_init_clk_resources(struct > > exynos_pcie *ep) > > struct device *dev = ep->pci.dev; > > int ret; > > > > - ret = clk_prepare_enable(ep->clk); > > - if (ret) { > > - dev_err(dev, "cannot enable pcie rc clock"); > > + ret = devm_clk_bulk_get_all(dev, &ep->clks); > > + if (ret < 0) > You can checking only for -ve value, what if devm_clk_bulk_get_all() return > 0? > Thanks for the review! Return value of 0 means there were no clocks to get but it does not indicate failure. It can mean that the device does not need any clock handling in the driver. " clk_bulk_prepare_enable" takes care of num_clks being 0 and returns success anyway. I have seen other drivers handling in a similar way. > > return ret; > > - } > > > > - ret = clk_prepare_enable(ep->bus_clk); > > - if (ret) { > > - dev_err(dev, "cannot enable pcie bus clock"); > > - goto err_bus_clk; > > - } > > + ep->clk_cnt = ret; > > > > - return 0; > > - > > -err_bus_clk: > > - clk_disable_unprepare(ep->clk); > > - > > - return ret; > > + return clk_bulk_prepare_enable(ep->clk_cnt, ep->clks); > > } > > > > static void exynos_pcie_deinit_clk_resources(struct exynos_pcie *ep) { > > - clk_disable_unprepare(ep->bus_clk); > > - clk_disable_unprepare(ep->clk); > > + clk_bulk_disable_unprepare(ep->clk_cnt, ep->clks); > > } > > > > static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg) > > @@ - > > 332,17 +320,9 @@ static int exynos_pcie_probe(struct platform_device > > *pdev) > > if (IS_ERR(ep->elbi_base)) > > return PTR_ERR(ep->elbi_base); > > > > - ep->clk = devm_clk_get(dev, "pcie"); > > - if (IS_ERR(ep->clk)) { > > - dev_err(dev, "Failed to get pcie rc clock\n"); > > - return PTR_ERR(ep->clk); > > - } > > - > > - ep->bus_clk = devm_clk_get(dev, "pcie_bus"); > > - if (IS_ERR(ep->bus_clk)) { > > - dev_err(dev, "Failed to get pcie bus clock\n"); > > - return PTR_ERR(ep->bus_clk); > > - } > > + ret = exynos_pcie_init_clk_resources(ep); > > + if (ret < 0) > > + return ret; > > > > ep->supplies[0].supply = "vdd18"; > > ep->supplies[1].supply = "vdd10"; > > @@ -351,10 +331,6 @@ static int exynos_pcie_probe(struct > > platform_device > > *pdev) > > if (ret) > > return ret; > > > > - ret = exynos_pcie_init_clk_resources(ep); > > - if (ret) > > - return ret; > > - > > ret = regulator_bulk_enable(ARRAY_SIZE(ep->supplies), ep- > > >supplies); > > if (ret) > > return ret; > > @@ -369,8 +345,8 @@ static int exynos_pcie_probe(struct > > platform_device > > *pdev) > > > > fail_probe: > > phy_exit(ep->phy); > > - exynos_pcie_deinit_clk_resources(ep); > > regulator_bulk_disable(ARRAY_SIZE(ep->supplies), ep->supplies); > > + exynos_pcie_deinit_clk_resources(ep); > > > > return ret; > > } > > -- > > 2.17.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel