From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Russell King <linux@armlinux.org.uk>,
linux-clk@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>,
Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>,
Biju Das <biju.das.au@gmail.com>,
linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH v3 1/3] clk: Update API documentation related to clock disable
Date: Mon, 18 Mar 2024 18:29:20 +0000 [thread overview]
Message-ID: <ZfiIAMxR6QmFZmi1@kekkonen.localdomain> (raw)
In-Reply-To: <20240318110842.41956-2-biju.das.jz@bp.renesas.com>
Hi Biju,
On Mon, Mar 18, 2024 at 11:08:40AM +0000, Biju Das wrote:
>
> The API's related to clk disable operation does not explicitly
> states the synchoronous or asynchrous behaviour as it is driver
> dependent. So make this part clear in API documentation.
>
> Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3:
> * No change.
> v2:
> * New patch.
> ---
> drivers/clk/clk.c | 3 ++-
> include/linux/clk-provider.h | 3 ++-
> include/linux/clk.h | 3 ++-
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 25371c91a58f..f5fa91a339d7 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -1010,7 +1010,8 @@ static void clk_core_unprepare_lock(struct clk_core *core)
> * if the operation may sleep. One example is a clk which is accessed over
> * I2c. In the complex case a clk gate operation may require a fast and a slow
> * part. It is this reason that clk_unprepare and clk_disable are not mutually
> - * exclusive. In fact clk_disable must be called before clk_unprepare.
> + * exclusive. In fact clk_disable must be called before clk_unprepare. The
> + * synchronous or asynchronous clock gating operation is driver dependent.
> */
> void clk_unprepare(struct clk *clk)
> {
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index 4a537260f655..5b493024e1ec 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -113,7 +113,8 @@ struct clk_duty {
> * sleep.
> *
> * @disable: Disable the clock atomically. Called with enable_lock held.
> - * This function must not sleep.
> + * This function must not sleep. The synchronous or asynchronous
> + * disabling of the clock is driver dependent.
s/driver\K/ and hardware/
Same in the first chunk actually.
> *
> * @is_enabled: Queries the hardware to determine if the clock is enabled.
> * This function must not sleep. Optional, if this op is not
> diff --git a/include/linux/clk.h b/include/linux/clk.h
> index 00623f4de5e1..84b02518791f 100644
> --- a/include/linux/clk.h
> +++ b/include/linux/clk.h
> @@ -681,7 +681,8 @@ int __must_check clk_bulk_enable(int num_clks,
> * @clk: clock source
> *
> * Inform the system that a clock source is no longer required by
> - * a driver and may be shut down.
> + * a driver and may be shut down. It is not guaranteed to ever actually
> + * be stopped, that will be driver dependent.
I'd rephrase this, taking other users into account:
There's no guarantee that the clock stops within a particular time
window or at all, depending on other users of the clock as well as
the driver and hardware implementation.
> *
> * May be called from atomic contexts.
> *
--
Kind regards,
Sakari Ailus
next prev parent reply other threads:[~2024-03-18 18:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-18 11:08 [PATCH v3 0/3] Add clk_poll_disable_unprepare() Biju Das
2024-03-18 11:08 ` [PATCH v3 1/3] clk: Update API documentation related to clock disable Biju Das
2024-03-18 18:29 ` Sakari Ailus [this message]
2024-06-01 8:14 ` Biju Das
2024-03-18 22:38 ` Laurent Pinchart
2024-06-01 8:38 ` Biju Das
2024-04-11 8:04 ` Stephen Boyd
2024-04-12 15:36 ` Russell King (Oracle)
2024-03-18 11:08 ` [PATCH v3 2/3] clk: Add clk_poll_disable_unprepare() Biju Das
2024-03-18 18:23 ` Sakari Ailus
2024-06-01 8:05 ` Biju Das
2024-03-18 22:55 ` Laurent Pinchart
2024-04-11 8:12 ` Stephen Boyd
2024-04-12 15:41 ` Russell King (Oracle)
2024-06-01 7:40 ` Biju Das
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZfiIAMxR6QmFZmi1@kekkonen.localdomain \
--to=sakari.ailus@linux.intel.com \
--cc=biju.das.au@gmail.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=geert+renesas@glider.be \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-clk@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mturquette@baylibre.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=sboyd@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox