On 02.02.2024 12:59, Shradha Todi wrote: >> -----Original Message----- >> From: Manivannan Sadhasivam<manivannan.sadhasivam@xxxxxxxxxx> >> Sent: 29 January 2024 12:25 >> To: Shradha Todi<shradha.t@xxxxxxxxxxx> >> Subject: Re: [PATCH v4 1/2] clk: Provide managed helper to get and enable bulk >> clocks >> >> On Wed, Jan 24, 2024 at 04:08:37PM +0530, Shradha Todi wrote: >>> 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<m.szyprowski@xxxxxxxxxxx> >>> Signed-off-by: Shradha Todi<shradha.t@xxxxxxxxxxx> >>> --- >>> drivers/clk/clk-devres.c | 40 >> ++++++++++++++++++++++++++++++++++++++++ >>> include/linux/clk.h | 24 ++++++++++++++++++++++++ >>> 2 files changed, 64 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; >>> + } >> How about: >> >> ret = clk_bulk_get_all(dev, &devres->clks); >> if (ret <= 0) { >> devres_free(devres); >> return ret; >> } >> >> *clks = devres->clks; >> devres->num_clks = ret; >> >> Even though this patch follows the pattern used by the rest of the APIs in the >> driver, IMO above makes it more readable. >> > Since I have usually seen that maintainers suggest to maintain the coding style of the file, I followed the same. > If you have a stronger reason to change this, please let me know > Marek, Michael, Stephen please let us know what do you think about this? I suggest to keep the same style as is used in the modified file (if it doesn't conflict with the rules enforced by checkpatch and kernel's coding style). Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland