From patchwork Tue Feb 13 13:27:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shradha Todi X-Patchwork-Id: 13555162 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (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 D538357330 for ; Tue, 13 Feb 2024 14:19:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707833983; cv=none; b=QfpPo5sR1tnLoOJS7HcvnJ20fguoxU9hM1LPOSqaxlS2wjrBOAHYVN90uouTuWW23GoMzLnkE0dB+b3OYkk/9zcLHmTXUojSfiVcC+7e5JvFfl5F7RdJUemawpN4ciHN9/Aoku+GyjJQUUkE3p/1P+J5q1zwrNORk29+vvh237o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707833983; c=relaxed/simple; bh=zbzPPSabaMhS5zlq5Te5dWZ0Y9LqScaRObnVnALmG+M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:Content-Type: References; b=qWfRClg0xLLuCb0pO+paDYYa/IxwcMrTce+rEmnlLnuwi/YnDI8yF67bkbQuqJX9rQgq7cRVZ/OjBKH7ss2e1xiiNbibG9D+B+9530oQDkIASpVEj+zZLGrDQNGhrRLe0si7Z3AkBN5STWBx8vfjx8+9llnrPNvbfqIF9FLwA8g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=QYy0ycTT; arc=none smtp.client-ip=203.254.224.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="QYy0ycTT" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20240213141939epoutp01f90aebe837a38e0641a5bb4942072637~zcfSd2jFI2496324963epoutp01e for ; Tue, 13 Feb 2024 14:19:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240213141939epoutp01f90aebe837a38e0641a5bb4942072637~zcfSd2jFI2496324963epoutp01e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1707833979; bh=3zGQ1oxr7yCITgN88Ri0vXnCSaCy2H7gBnROLiuaNKE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QYy0ycTTnJSC2wb0ZT+uLYpkTOpkHeuHXhWDqvDBYh2HHDux2vDizlhwsDWPGBfvU ed8RydOX23quFDtfxC7du6pdm9n8viEsJF9RMCND5ou6KK2ZrKYgOjYQr8wPm3ruQs TeNcN5u1VC+4PQQRoy3rTbgPUmsr8/tcDzsx77Zw= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20240213141938epcas5p4e0c9e26267f337bed876ee3a4c904970~zcfRyELnd0084600846epcas5p4f; Tue, 13 Feb 2024 14:19:38 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.181]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4TZ3P40Nh7z4x9Pv; Tue, 13 Feb 2024 14:19:36 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id A8.A4.19369.77A7BC56; Tue, 13 Feb 2024 23:19:35 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20240213132806epcas5p43e394aea91c61797a8cc3a901e0cf574~zbyR5q_xn2842628426epcas5p4f; Tue, 13 Feb 2024 13:28:06 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240213132806epsmtrp28cf7afb7c47021231d8ee5626e4ca975~zbyR4h1T_2153621536epsmtrp2T; Tue, 13 Feb 2024 13:28:06 +0000 (GMT) X-AuditID: b6c32a50-c99ff70000004ba9-94-65cb7a777f6b Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 77.C1.08755.56E6BC56; Tue, 13 Feb 2024 22:28:05 +0900 (KST) Received: from cheetah.sa.corp.samsungelectronics.net (unknown [107.109.115.53]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240213132803epsmtip1037fa163159be1ef1651bb5ca5bdbe8c~zbyPK56ms1216112161epsmtip1S; Tue, 13 Feb 2024 13:28:03 +0000 (GMT) From: Shradha Todi To: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Cc: mturquette@baylibre.com, sboyd@kernel.org, jingoohan1@gmail.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, linux@armlinux.org.uk, m.szyprowski@samsung.com, manivannan.sadhasivam@linaro.org, pankaj.dubey@samsung.com, gost.dev@samsung.com, Shradha Todi Subject: [PATCH v5 1/2] clk: Provide managed helper to get and enable bulk clocks Date: Tue, 13 Feb 2024 18:57:50 +0530 Message-Id: <20240213132751.46813-2-shradha.t@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240213132751.46813-1-shradha.t@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOJsWRmVeSWpSXmKPExsWy7bCmhm551elUg+8rrC0ezNvGZrGkKcPi 5oGdTBYrvsxkt9j7eiu7RUPPb1aLTY+vsVp87LnHanF51xw2i7PzjrNZzDi/j8ni0NS9jBYt f1pYLNYeuctucbelk9Xi4ilXi0Vbv7Bb/N+zg93i37WNLBa9h2sdRDwuX7vI7PH+Riu7x85Z d9k9Fmwq9di0qpPN4861PWweT65MZ/LYvKTeo2/LKkaPz5vkAriism0yUhNTUosUUvOS81My 89JtlbyD453jTc0MDHUNLS3MlRTyEnNTbZVcfAJ03TJzgH5TUihLzCkFCgUkFhcr6dvZFOWX lqQqZOQXl9gqpRak5BSYFOgVJ+YWl+al6+WlllgZGhgYmQIVJmRnLJ+/gbFgv1TFwiXLGRsY n4p2MXJySAiYSLTPf8/WxcjFISSwh1Hif9McRgjnE6PElNf/mSGcb4wSE8/OY4ZpOdHYwQhi CwnsZZRoXWoCUdTKJLHz82dWkASbgJZE49cusG4RgcWMErd2bGYFcZgFfjFJ7GvcxNTFyMEh LBAs8eYy2CEsAqoSH1YeYwKxeQWsJDb82QW1TV5i9YYDYDangLXEge0PweZICJzhkHh0Zx0T RJGLxNbJr9ghbGGJV8e3QNlSEp/f7WWDsNMlVm6eATU0R+Lb5iVQvfYSB67MYQG5h1lAU2L9 Ln2IsKzE1FMQ45kF+CR6fz+BKueV2DEPxlaW+PJ3DwuELSkx79hlVgjbQ2LqpxZooPYxSpy9 /IVtAqPcLIQVCxgZVzFKpRYU56anJpsWGOrmpZbD4y05P3cTIzgFawXsYFy94a/eIUYmDsZD jBIczEoivJdmnEgV4k1JrKxKLcqPLyrNSS0+xGgKDMGJzFKiyfnALJBXEm9oYmlgYmZmZmJp bGaoJM77unVuipBAemJJanZqakFqEUwfEwenVANTSGa92/z/gW6aD+o33Xzk07/hfF9NgyLH BZPM3sO5c444zPq66Im2RdwBCxG/P8fKvapmr2dw3BMQmxH37X3q1gLxQy28f8OrWzPtrevX 2L51+Pjwc6X8hdCzv9x+a1pwPjFM+ZhXeI3r4zl91rLftflLwvzcyqZtPrvV7u98w0ZbjfbH 8w68k9dcZ/HD4rmqxVE7jqj6vff7VIu/i5ocK+OVlHpxIrbUQ77qTPOPqEXHlq76u7VuitW8 Ric9l/eOt68bLX8ym9sr8DD/jhu/Jmw9ZNKpFvq1OK0uT5ntP/uVnZlWwhM38nYwlesc47uq abN/XuIL8cbX+wNqHbyMLs3mKyxpXz5DdHqm5A4lluKMREMt5qLiRABFnukUSgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDLMWRmVeSWpSXmKPExsWy7bCSnG5q3ulUg0NPrSwezNvGZrGkKcPi 5oGdTBYrvsxkt9j7eiu7RUPPb1aLTY+vsVp87LnHanF51xw2i7PzjrNZzDi/j8ni0NS9jBYt f1pYLNYeuctucbelk9Xi4ilXi0Vbv7Bb/N+zg93i37WNLBa9h2sdRDwuX7vI7PH+Riu7x85Z d9k9Fmwq9di0qpPN4861PWweT65MZ/LYvKTeo2/LKkaPz5vkAriiuGxSUnMyy1KL9O0SuDKW z9/AWLBfqmLhkuWMDYxPRbsYOTkkBEwkTjR2MHYxcnEICexmlLg/8S4jREJS4vPFdUwQtrDE yn/P2SGKmpkk3mx5ww6SYBPQkmj82sUMkhARWM4o8fPkU7AOZoEeZokDrSFdjBwcwgKBEgc7 DEHCLAKqEh9WHgMr4RWwktjwZxczxAJ5idUbDoDZnALWEge2P2QFsYWAava0r2WawMi3gJFh FaNkakFxbnpusWGBYV5quV5xYm5xaV66XnJ+7iZGcIRoae5g3L7qg94hRiYOxkOMEhzMSiK8 l2acSBXiTUmsrEotyo8vKs1JLT7EKM3BoiTOK/6iN0VIID2xJDU7NbUgtQgmy8TBKdXAtH3S 12hPj8VeX40fviou0Etb+neGwRfj+19eWBavi2s3TOjnPjXjwPQj155d4f3qH3E5J4Tp0OY0 G9UTbrx3z/DsVHB8/0Stt8/Qr7x5ZnxwaJxFm4vD3F/Pn59ZlPbmTWyzquWq5+Zrrf5fM4nh b9bq2Opv2CZacF1Rl1NYSXlH7GL2olO7mDy+fNy+tmXi4Qd/HJoyFP70zt+ZumRLi1eH5fbv HV3zu2XeXro2M89pztqXTa1rWdj8VzCfkV096ah8xEQel809tnzbjm57//BHwUSnDwIxrcmH /U/Mkq9dOkf9zOuYa4yvnM3W71+wSOHDE+60aUfPCpc1isw7uUxrWtjFiIthOx5sLhFc36rE UpyRaKjFXFScCAArY9pa/wIAAA== X-CMS-MailID: 20240213132806epcas5p43e394aea91c61797a8cc3a901e0cf574 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240213132806epcas5p43e394aea91c61797a8cc3a901e0cf574 References: <20240213132751.46813-1-shradha.t@samsung.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Provide a managed devm_clk_bulk* wrapper to get and enable all bulk clocks in order to simplify drivers that keeps all clocks enabled for the time of driver operation. Suggested-by: Marek Szyprowski Reviewed-by: Alim Akhtar Signed-off-by: Shradha Todi Reviewed-by: Manivannan Sadhasivam --- drivers/clk/clk-devres.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/linux/clk.h | 23 +++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c index 4fb4fd4b06bd..cbbd2cc339c3 100644 --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c @@ -182,6 +182,46 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, } EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all); +static void devm_clk_bulk_release_all_enable(struct device *dev, void *res) +{ + struct clk_bulk_devres *devres = res; + + clk_bulk_disable_unprepare(devres->num_clks, devres->clks); + clk_bulk_put_all(devres->num_clks, devres->clks); +} + +int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks) +{ + struct clk_bulk_devres *devres; + int ret; + + devres = devres_alloc(devm_clk_bulk_release_all_enable, + sizeof(*devres), GFP_KERNEL); + if (!devres) + return -ENOMEM; + + ret = clk_bulk_get_all(dev, &devres->clks); + if (ret > 0) { + *clks = devres->clks; + devres->num_clks = ret; + } else { + devres_free(devres); + return ret; + } + + ret = clk_bulk_prepare_enable(devres->num_clks, *clks); + if (!ret) { + devres_add(dev, devres); + } else { + clk_bulk_put_all(devres->num_clks, devres->clks); + devres_free(devres); + } + + return ret; +} +EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enable); + static int devm_clk_match(struct device *dev, void *res, void *data) { struct clk **c = res; diff --git a/include/linux/clk.h b/include/linux/clk.h index 1ef013324237..85a9330d5a5a 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -438,6 +438,22 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks, int __must_check devm_clk_bulk_get_all(struct device *dev, struct clk_bulk_data **clks); +/** + * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed) + * @dev: device for clock "consumer" + * @clks: pointer to the clk_bulk_data table of consumer + * + * Returns success (0) or negative errno. + * + * This helper function allows drivers to get all clocks of the + * consumer and enables them in one operation with management. + * The clks will automatically be disabled and freed when the device + * is unbound. + */ + +int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks); + /** * devm_clk_get - lookup and obtain a managed reference to a clock producer. * @dev: device for clock "consumer" @@ -960,6 +976,13 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, return 0; } +static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks) +{ + + return 0; +} + static inline struct clk *devm_get_clk_from_child(struct device *dev, struct device_node *np, const char *con_id) { From patchwork Tue Feb 13 13:27:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shradha Todi X-Patchwork-Id: 13555163 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (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 1549758136 for ; Tue, 13 Feb 2024 14:19:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707833994; cv=none; b=sXiJBSTaICCmyQaYmAcR67YxlTe8nWd2JE69ojEtHT5DbuUoFbAoLIHyKKwDReY7fKOEPGa2484nilCI6r9j1eFbRBSHBDOlzeY9X87IfPYi8tqBw0r1G16NI1QKE6AIIEa5z7oBhGQA0e91Mebsb3QJ9Yr5rrA8cHMVPfGpOtM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707833994; c=relaxed/simple; bh=uQSuDcenC7QtjyHuVyxBlW7jEkPTOEKNuzZhMEq78rI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:Content-Type: References; b=m87XxrLB9nB2DtfwmJckzzQoQBd/u36V/b1LcmASFrt7aVCN1ddSvWkpQg3gcf9vduICL/F7hkZdX6IqdaIrTtzt9r8DsCjCvdJP6nX0t6/IS9mlgrirOBobeo+mi460WMK8MWrmbQ+Xp6A7h+4MBjwXFmvzRIxBv+dOI7nQXSY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=lUjzLLll; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="lUjzLLll" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240213141951epoutp02e926ce520ce039d799ce20543afe5c1a~zcfd0M7fm1278512785epoutp02F for ; Tue, 13 Feb 2024 14:19:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240213141951epoutp02e926ce520ce039d799ce20543afe5c1a~zcfd0M7fm1278512785epoutp02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1707833991; bh=6WcEEEJAqHt6H76Re3bajB+WXdTeFoCOJ/3X3ukJOi4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lUjzLLllEbt5hLzMDqZuhBOhCHDvFZXph+4racqD0KdWgvuHD0RsC2LTBcQndyEFR rw+KBNXnVeylA3IOarUVp2Sslvgj5yjWlOiEvdKyi3quKiUO+wyy3rm4HH7wWSuGIa 4m23HstdWC5kgQhdPZifPTALW0iI2d58IXOJH7K0= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20240213141950epcas5p24bb732a6a445248187071a09f9f76557~zcfdHHhaX1407914079epcas5p21; Tue, 13 Feb 2024 14:19:50 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.182]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TZ3PJ3zwBz4x9Py; Tue, 13 Feb 2024 14:19:48 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F1.A0.08567.48A7BC56; Tue, 13 Feb 2024 23:19:48 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240213132810epcas5p22316ffa73fd9b86923f3f741c3a9101e~zbyV4N2g70267302673epcas5p2u; Tue, 13 Feb 2024 13:28:10 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240213132810epsmtrp15cf320889fa76294275e2af1a8dc4d1d~zbyV2GciM1855118551epsmtrp1i; Tue, 13 Feb 2024 13:28:10 +0000 (GMT) X-AuditID: b6c32a44-617fd70000002177-cb-65cb7a848369 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id DE.94.08817.A6E6BC56; Tue, 13 Feb 2024 22:28:10 +0900 (KST) Received: from cheetah.sa.corp.samsungelectronics.net (unknown [107.109.115.53]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240213132807epsmtip18b778dcc9bea4d489adc8ca6108282d4~zbyTGh4kq1216112161epsmtip1T; Tue, 13 Feb 2024 13:28:07 +0000 (GMT) From: Shradha Todi To: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Cc: mturquette@baylibre.com, sboyd@kernel.org, jingoohan1@gmail.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, linux@armlinux.org.uk, m.szyprowski@samsung.com, manivannan.sadhasivam@linaro.org, pankaj.dubey@samsung.com, gost.dev@samsung.com, Shradha Todi Subject: [PATCH v5 2/2] PCI: exynos: Adapt to clk_bulk_* APIs Date: Tue, 13 Feb 2024 18:57:51 +0530 Message-Id: <20240213132751.46813-3-shradha.t@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240213132751.46813-1-shradha.t@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WTf0xbVRTHc99rX1si+uhg3tXYdWUyh4G1UuotgpiMmbdoGBlqzIzBF3gC oX2tfa0OFiPIDwcBNsgGdRswkUWKwqBshUFBwhBYzfid8iOCkiGRNZmRITOAYGmL/ve55/s9 99xz7r1CXNxBSISZrIkxsrRWTgTw7HePhkcU5PzEKMYmpOjXWjuBGr7IQLN9dzDUuPaVAPW4 bwtQbukmH9keuPjoz9IFPprsukag+7VDBLKM9mKo/3IPQAVbBTzUPDAvQPMFxXw07jyB6m+v CdCOo1OAtl1tPFR297PXg6lJ1zhO/TFTKKDuXJkXUNdtZsrWVExQP7scBLU0VY1R7Q2fU+W3 mgD12CZNCjiTFZvB0GmMUcawqfq0TDY9Tv5mcsrxlGi1Qhmh1KBX5DKW1jFx8oS3kiLeyNR6 epPLPqG1Zk8oieY4+bHXYo16s4mRZeg5U5ycMaRpDSpDJEfrODObHskyphilQvFytMf4YVbG pap1gaFScvb+ox0iF7hCSoBICEkVnP16gygBAUIx2Q1g1WQ1tiuIyVUAl4pzfMI6gMUlw7y9 jP7HDr5P6AGwb3AJ+BaFGOwenCJ2XQQZDvP+KsF3hWDyGwDnOtu9KTi5gcHePJu3yD4yDnZt LQp2mUe+ADcsC/guB5IxsK2xFffVOwi/a+3zsoh8FfZ1LHo3guSwEE6ub/pNCXCkeQ3z8T74 cOiWwMcSuHKhyM/p0Npu8fu1cL29we+Ph31T1zzNCT2nOwpvdh3zhZ+Hl50tXgtOPg3LNpf8 9kDYWbvHoXDtH4d/Lgdg7eAk38cUtK+183xjKQewt7qTfxFIr/xf4joATeAAY+B06UxqtEHJ Mp/+d2+pep0NeF9weEInmKnbjuwHmBD0AyjE5cGBE5ZhRhyYRmfnMEZ9itGsZbh+EO0ZYAUu CUnVe74Aa0pRqjQKlVqtVmmi1Er5s4Huwpo0MZlOm5gshjEwxr08TCiS5GK5h+2uE8lFORfG sZ0fH7FWdc9vK6q68zIuPrN55R3u5AoWF4FdHbVK3UFsfOzYDxW/jOw/+/6saX+jLvLJ6YrG RslA/miO2TYx5/zSuVWWeGSLL8ojB3hzdum0hr50qM2lmSZCT1OVN+oWiuujpGOjNdbEoqiP wyIO2jWnyuuT8xWrQW+PWF2VO2HSLOvVmRBH1g1bd/VTw0PukPNBzpcSnzt07u+mb+d4juCL 2WqRrepmSWGwEoZ9NC2JkYS2dLx7ZMKyM32mafnwe6dA5PGVtsLlTS5zla550WkMmx8xff+A eZK//MFDIxmvOzmcfe532b2We89styyW8kStuFvO4zJoZThu5Oh/AW8I3+xKBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLLMWRmVeSWpSXmKPExsWy7bCSnG5W3ulUg+/LeSwezNvGZrGkKcPi 5oGdTBYrvsxkt9j7eiu7RUPPb1aLTY+vsVp87LnHanF51xw2i7PzjrNZzDi/j8ni0NS9jBYt f1pYLNYeuctucbelk9Xi4ilXi0Vbv7Bb/N+zg93i37WNLBa9h2sdRDwuX7vI7PH+Riu7x85Z d9k9Fmwq9di0qpPN4861PWweT65MZ/LYvKTeo2/LKkaPz5vkAriiuGxSUnMyy1KL9O0SuDKm TPvGXjBJquLsu/9sDYzXRLsYOTkkBEwkDn3ew9rFyMUhJLCbUeLk/ImsEAlJic8X1zFB2MIS K/89Z4coamaSuND6kgUkwSagJdH4tYsZJCEisJxR4ufJp2AdzAI9zBIHWkNAbGEBW4ldfx6y g9gsAqoSv2bcYwaxeQWsJDau2MAMsUFeYvWGA2A2p4C1xIHtD8GuEAKq2dO+lmkCI98CRoZV jJKpBcW56bnFhgVGeanlesWJucWleel6yfm5mxjBMaKltYNxz6oPeocYmTgYDzFKcDArifBe mnEiVYg3JbGyKrUoP76oNCe1+BCjNAeLkjjvt9e9KUIC6YklqdmpqQWpRTBZJg5OqQamVam5 qcfyolSvOiqmLTvzajeraPeV/ayMW1pWaXja/6w8Z65bkeS1vnK2VG3Sw2VBS2WX7T/qk2Mb 6WY8Yf2fo61rmref/2J24+uOEuutKYs6f5dJ/Oncn1t2mevx0eBmGXH5GMXsxOVXHM696jM/ 81NoiWhZnY+3QaTLxM+N09snnHf2Z7mUGbQzvPVK/q8rN3mMNOVPNhbmFr2PzPp1+2yEwhXd ijTbG6nrPesZ66duKa/T7JDyLJeaGvquff4T8/qc1RoiX+52T9ZqPbWn4L/P5u9/3ViqneZU Sbrf8Jlet+DcIs8L7RtDt1xc/ze6uF06/c6sExNPNzQ9XHflp/cVobrpUWbfbLq9Lh5SYinO SDTUYi4qTgQAhx5/0gADAAA= X-CMS-MailID: 20240213132810epcas5p22316ffa73fd9b86923f3f741c3a9101e X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240213132810epcas5p22316ffa73fd9b86923f3f741c3a9101e References: <20240213132751.46813-1-shradha.t@samsung.com> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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. All the clocks supplied is obtained and enabled using the devm_clk_bulk_get_all_enable() API. Reviewed-by: Manivannan Sadhasivam Reviewed-by: Alim Akhtar Signed-off-by: Shradha Todi --- drivers/pci/controller/dwc/pci-exynos.c | 54 ++----------------------- 1 file changed, 4 insertions(+), 50 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c index ec5611005566..3234eb5be1fb 100644 --- a/drivers/pci/controller/dwc/pci-exynos.c +++ b/drivers/pci/controller/dwc/pci-exynos.c @@ -54,43 +54,11 @@ struct exynos_pcie { struct dw_pcie pci; void __iomem *elbi_base; - struct clk *clk; - struct clk *bus_clk; + struct clk_bulk_data *clks; struct phy *phy; struct regulator_bulk_data supplies[2]; }; -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"); - return ret; - } - - ret = clk_prepare_enable(ep->bus_clk); - if (ret) { - dev_err(dev, "cannot enable pcie bus clock"); - goto err_bus_clk; - } - - return 0; - -err_bus_clk: - clk_disable_unprepare(ep->clk); - - return ret; -} - -static void exynos_pcie_deinit_clk_resources(struct exynos_pcie *ep) -{ - clk_disable_unprepare(ep->bus_clk); - clk_disable_unprepare(ep->clk); -} - static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg) { writel(val, base + reg); @@ -332,17 +300,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 = devm_clk_bulk_get_all_enable(dev, &ep->clks); + if (ret < 0) + return ret; ep->supplies[0].supply = "vdd18"; ep->supplies[1].supply = "vdd10"; @@ -351,10 +311,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,7 +325,6 @@ 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); return ret; @@ -383,7 +338,6 @@ static int __exit exynos_pcie_remove(struct platform_device *pdev) exynos_pcie_assert_core_reset(ep); phy_power_off(ep->phy); phy_exit(ep->phy); - exynos_pcie_deinit_clk_resources(ep); regulator_bulk_disable(ARRAY_SIZE(ep->supplies), ep->supplies); return 0;