@@ -988,7 +988,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)
{
@@ -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.
*
* @is_enabled: Queries the hardware to determine if the clock is enabled.
* This function must not sleep. Optional, if this op is not
@@ -653,7 +653,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.
*
* May be called from atomic contexts.
*
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: * 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(-)