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 A6A1AC46CD2 for ; Wed, 24 Jan 2024 08:23:12 +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=cDH8hSPT5s5bD8LmwwTc46LTfW+YDUeff4RkpuOmW4o=; b=dcxLAGOeIzXCE2 1TxLaFN91Gg34xskNei5rgbqj2Uh24S+oIaVeiZh+NrpeUdMGqVzFho+honpFftKATaeBqKtGoiC0 fHNId+pw09pR+ESUvJStZfoKSR2KsT1HrhDzeGF/4vZeCbSTx44TN3Q4Yjcu2GCfraEql7IaXFknD pR6/I+cdvW2aA48Dux8X9am76X6bSA4Mt4nP3cKe2XJPYHWcYWnIBHguYgsqx+YXHHU7l5KcgJN7+ ZTZz7fIsJBNsynpf6pDnTYnue8uAzGfvR9ytf+PT2TOQwwrkCxlxtH4R+24qTERPm3oIQpeOYdYpO Mux0v1jSVumgX1D3QSiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSYWu-001zsl-11; Wed, 24 Jan 2024 08:22:40 +0000 Received: from mailout3.samsung.com ([203.254.224.33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rSYWo-001zqa-0W for linux-arm-kernel@lists.infradead.org; Wed, 24 Jan 2024 08:22:39 +0000 Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240124082228epoutp036666a483c42f2a9a2971e11566e24e61~tOttwiqlY1154911549epoutp03Q for ; Wed, 24 Jan 2024 08:22:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240124082228epoutp036666a483c42f2a9a2971e11566e24e61~tOttwiqlY1154911549epoutp03Q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706084548; bh=/uytoDMxLCBDZBYsTuKhf3zBY1XyUga051NVgA740ac=; h=From:To:Cc:In-Reply-To:Subject:Date:References:From; b=IL0TuiFajNSqPeBkrKtQnRppY05z+M58TtZDgG7u34xo20+yaAP7kJkwPWatYNHax nKYaW+Ehf0rjom8XuYSPGCdls3/RpPckGyjwao7FZvFz4gmPygTC5+EiYBit4Xu0AE 0Q2VvG9mEeM/KA3DcWD1EZydF2gaHbxDY9BGC6LA= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240124082227epcas5p3b8fa4c06838be625565b9855849e04e4~tOttOVoVP2021520215epcas5p3L; Wed, 24 Jan 2024 08:22:27 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.179]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4TKcQ91LJZz4x9Pr; Wed, 24 Jan 2024 08:22:25 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 45.A5.19369.0C8C0B56; Wed, 24 Jan 2024 17:22:25 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240124063912epcas5p2682fbdd5bcebc79ab2bfb197b75f8e64~tNTj9L_-O2475224752epcas5p2W; Wed, 24 Jan 2024 06:39:12 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240124063912epsmtrp21de30c7627d4caa52fd2e4b01346b156~tNTj8SHUg1695016950epsmtrp2e; Wed, 24 Jan 2024 06:39:12 +0000 (GMT) X-AuditID: b6c32a50-9e1ff70000004ba9-21-65b0c8c0ff7f Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id D3.24.08755.090B0B56; Wed, 24 Jan 2024 15:39:12 +0900 (KST) Received: from FDSFTE462 (unknown [107.122.81.248]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240124063910epsmtip2015245bed1cd1cc245f8e8683500ccd0~tNThgFfnR1071810718epsmtip2b; Wed, 24 Jan 2024 06:39:09 +0000 (GMT) From: "Shradha Todi" To: "'Alim Akhtar'" , , , , , Cc: , , , , , , , , , , In-Reply-To: <001001da43c0$e8e9a8e0$babcfaa0$@samsung.com> Subject: RE: [PATCH v3 1/2] clk: Provide managed helper to get and enable bulk clocks Date: Wed, 24 Jan 2024 12:09:08 +0530 Message-ID: <05e001da4e90$0ace4b80$206ae280$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQK3Yhu837gawrdP2S3E1hwP53Jf7wFhoUR7AWI/r/kCd/fnoa8EfBEQ Content-Language: en-in X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKJsWRmVeSWpSXmKPExsWy7bCmuu7BExtSDeZOZLJ4MG8bm8WSpgyL FV9mslvsfb2V3aKh5zerxabH11gtPvbcY7W4vGsOm8XZecfZLGac38dkcWjqXkaLlj8tLBZr j9xlt7jb0slqcfGUq8X/PTvYLf5d28jiIOhx+dpFZo/3N1rZPXbOusvusWBTqcemVZ1sHneu 7WHzeHJlOpPH5iX1Hn1bVjF6fN4kF8AVlW2TkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pmYKhr aGlhrqSQl5ibaqvk4hOg65aZA/SNkkJZYk4pUCggsbhYSd/Opii/tCRVISO/uMRWKbUgJafA pECvODG3uDQvXS8vtcTK0MDAyBSoMCE74/rNqawFR40qlnW9YW1gnK7ZxcjJISFgIrH4YAtz FyMXh5DAHkaJ3kfT2CCcT4wSk+91QDnfGCXmHrjMBtNy8OlvqJa9jBJ35+xgAkkICbxglNh5 zgzEZhPQkXhy5Q9YkYjADUaJ64+OgjnMAvOZJB7ufw82ilPASuJm/05mEFtYIFzi55WfrCA2 i4CqxNP+ZSwgNq+ApcSFbZeZIGxBiZMzn4DFmQW0JZYtfM0McZKCxM+ny8B6RQTcJJ4/nMgK USMucfRnD9hiCYEfHBJz7xxlgWhwkXj1r4kJwhaWeHV8CzuELSXx+d1eqD/TJVZungG1IEfi 2+YlUPX2EgeuzAGawwG0QFNi/S59iLCsxNRT65gg9vJJ9P5+AlXOK7FjHoytLPHl7x6oEyQl 5h27zDqBUWkWktdmIXltFpIXZiFsW8DIsopRKrWgODc9Ndm0wFA3L7UcHufJ+bmbGMHpXStg B+PqDX/1DjEycTAeYpTgYFYS4b0huS5ViDclsbIqtSg/vqg0J7X4EKMpMMAnMkuJJucDM0xe SbyhiaWBiZmZmYmlsZmhkjjv69a5KUIC6YklqdmpqQWpRTB9TBycUg1MrLx+DGsLqpcH7Bbs EKnZpyHkV+RZq8q01bd6gYBw6x4rmVv/A4WvnZ6t9cmaW1++IOePhXK1rvyT+2sXxGuaWyne l93kJL921X3vjQK2R15Wcf644n/h34nKInvms7ypF0O7v5z+eHSeqJbtBGm+br3p668U60is uBvao52ftGzCsj7fRS+vKTtJHd6THl9+cOE/pqebvNJz32y/1t56+5/DjZIzTgq9DFPZ4zKL i9T/MdkZ81d9r3tzpUXkzSXnK1VXbZpXLti38OYWU/OHL4V0jA7mM8ic8Pm9WH5XSF/CqiXN bRf9XebptF8Tkbmm55KoOfX2DreXt1Uv+hzM7bndelBt8XJ2JV0bhitKLMUZiYZazEXFiQAG ivfueAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNIsWRmVeSWpSXmKPExsWy7bCSvO6EDRtSDRatVbV4MG8bm8WSpgyL FV9mslvsfb2V3aKh5zerxabH11gtPvbcY7W4vGsOm8XZecfZLGac38dkcWjqXkaLlj8tLBZr j9xlt7jb0slqcfGUq8X/PTvYLf5d28jiIOhx+dpFZo/3N1rZPXbOusvusWBTqcemVZ1sHneu 7WHzeHJlOpPH5iX1Hn1bVjF6fN4kF8AVxWWTkpqTWZZapG+XwJXx4axSwRzDii8v5zE1ML5Q 72Lk5JAQMJE4+PQ3cxcjF4eQwG5GiV1tnawQCUmJzxfXMUHYwhIr/z1nhyh6xihxan8DO0iC TUBH4smVP8wgtojAPUaJyefqQYqYBVYzSfxZ/pcNouMlo8SLU91gVZwCVhI3+3eC2cICoRIX G9exgdgsAqoST/uXsYDYvAKWEhe2XWaCsAUlTs58AhZnFtCWeHrzKZy9bOFrZojzFCR+Pl3G CnGFm8TzhxNZIWrEJY7+7GGewCg8C8moWUhGzUIyahaSlgWMLKsYJVMLinPTc4sNCwzzUsv1 ihNzi0vz0vWS83M3MYLjW0tzB+P2VR/0DjEycTAeYpTgYFYS4b0huS5ViDclsbIqtSg/vqg0 J7X4EKM0B4uSOK/4i94UIYH0xJLU7NTUgtQimCwTB6dUA9O+/3ITzE6t1TgyzSHnpsu9d5tt w6r37lpalJW98L7pV0dDT9G37IIRGlXTar1MIh/eK769ecW2BHX7wxJZl4sFDobkGH/o0Jzn XXXs/WfHzyxCARG7j6w5Y1K/+dHPs229+XNM1sxkLNJtmrXUNKVGT8mA+Urt1a29N4XObEsq W6ezU/qaz4RVZjn3hUWWXiu+7btRxMNYSlb8yczQySWn3E435cr9z7vTckB9opO/bm+eFIP2 PF6x6L99ftebGArUVqolhaRz3apd9V9c7bDbujNH957p23u6VVihaML8v60Pz6WGWKS4vuUy 4agQTX/i7/Xxu1hv7eJ+llUxDxKznE0EUp4/TxZwtNn/TomlOCPRUIu5qDgRALnOZxNeAwAA X-CMS-MailID: 20240124063912epcas5p2682fbdd5bcebc79ab2bfb197b75f8e64 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240110110156epcas5p36bac4093be0fa6eaa501d7eaed4d43d3 References: <20240110110115.56270-1-shradha.t@samsung.com> <20240110110115.56270-2-shradha.t@samsung.com> <001001da43c0$e8e9a8e0$babcfaa0$@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240124_002235_192429_479CD2B4 X-CRM114-Status: GOOD ( 30.62 ) 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 > Sent: 10 January 2024 18:01 > To: 'Shradha Todi' ; 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; linux@armlinux.org.uk; > m.szyprowski@samsung.com; manivannan.sadhasivam@linaro.org; > alim.akhtar@samsung.com > Subject: RE: [PATCH v3 1/2] clk: Provide managed helper to get and enable bulk > clocks > > Hi Shradha, > > > -----Original Message----- > > From: Shradha Todi > > Sent: Wednesday, January 10, 2024 4:31 PM > > 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; Shradha > > Todi > > Subject: [PATCH v3 1/2] clk: Provide managed helper to get and enable > > bulk clocks > > > > 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 > > Signed-off-by: Shradha Todi > > --- > > drivers/clk/clk-devres.c | 41 > > ++++++++++++++++++++++++++++++++++++++++ > > include/linux/clk.h | 25 ++++++++++++++++++++++++ > > 2 files changed, 66 insertions(+) > > > > diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c index > > 4fb4fd4b06bd..05b0ff4bc1d4 100644 > > --- a/drivers/clk/clk-devres.c > > +++ b/drivers/clk/clk-devres.c > > @@ -102,6 +102,7 @@ > > EXPORT_SYMBOL_GPL(devm_clk_get_optional_enabled); > > struct clk_bulk_devres { > > struct clk_bulk_data *clks; > > int num_clks; > > + void (*exit)(int num_clks, const struct clk_bulk_data *clks); > > }; > > > > static void devm_clk_bulk_release(struct device *dev, void *res) @@ > > -182,6 > > +183,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_enabled(struct device *dev, > > +void > May be devm_clk_bulk_release_all_disable() > Will change this in the next patchset > Also this is similar to already existing devm_clk_bulk_release_all(), may be you > can reuse this function And add the exit() callback in devm_clk_bulk_release_all() > Since I'm planning to remove the exit callback in the next version as suggested by Manivannan, I will have to go with a new release function > > +*res) { > > + struct clk_bulk_devres *devres = res; > > + > > + if (devres->exit) > > + devres->exit(devres->num_clks, devres->clks); > > + > > + clk_bulk_put_all(devres->num_clks, devres->clks); } > > + > > +int __must_check devm_clk_bulk_get_all_enabled(struct device *dev, > > May be devm_clk_bulk_get_all_enable() is more suitable > Will take this in the next patchset! Thanks for the review > > + struct clk_bulk_data **clks, int *num_clks) { > > + struct clk_bulk_devres *devres; > > + int ret; > > + > > + devres = devres_alloc(devm_clk_bulk_release_all_enabled, > > + 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; > > + *num_clks = ret; > > + devres_add(dev, devres); > > + } else { > > + devres_free(devres); > > + return ret; > > + } > > + > > + ret = clk_bulk_prepare_enable(devres->num_clks, *clks); > > + if (!ret) > > + devres->exit = clk_bulk_disable_unprepare; > > + > > + return ret; > > +} > > +EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enabled); > > + > > 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..bf3e9bee5754 100644 > > --- a/include/linux/clk.h > > +++ b/include/linux/clk.h > > @@ -438,6 +438,24 @@ 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_enabled - managed get multiple clk consumers > > and > > + * enable all clk > > + * @dev: device for clock "consumer" > > + * @clks: pointer to the clk_bulk_data table of consumer > > + * @num_clks: out parameter to store the number of clk_bulk_data > > + * > > + * Returns success (0) or negative errno. > > + * > > + * This helper function allows drivers to get several clk > > + * consumers and enable all of 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_enabled(struct device *dev, > > + struct clk_bulk_data **clks, int *num_clks); > > + > > /** > > * devm_clk_get - lookup and obtain a managed reference to a clock > > producer. > > * @dev: device for clock "consumer" > > @@ -960,6 +978,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_enabled(struct > > device *dev, > > + struct clk_bulk_data **clks, int *num_clks) { > > + > > + return 0; > > +} > > + > > static inline struct clk *devm_get_clk_from_child(struct device *dev, > > struct device_node *np, const char *con_id) { > > -- > > 2.17.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel