[PATCH v3 06/10] clk: add clk_set_rate_protect

Stephen Boyd sboyd at codeaurora.org
Tue Jul 25 17:59:00 PDT 2017


On 06/12, Jerome Brunet wrote:
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index d688b8f59a59..d91236e70a04 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -1809,6 +1809,51 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
>  EXPORT_SYMBOL_GPL(clk_set_rate);
>  
>  /**
> + * clk_set_rate_protect - specify a new rate and protect it
> + * @clk: the clk whose rate is being changed
> + * @rate: the new rate for clk
> + *
> + * This is a combination of clk_set_rate and clk_rate_protect within

s/clk_set_rate/clk_set_rate()/
s/clk_rate_protect/clk_rate_protect()/

> + * a critical section
> + *
> + * This can be used initially to ensure that at least 1 consumers is

s/consumers/consumer/

> + * statisfied when several protecting consummers are competing for the

s/consummers/consumers/

> + * same clock provider.
> + *
> + * The protection is not applied if setting the rate failed.
> + *
> + * Returns 0 on success, -EERROR otherwise.
> + */
> +int clk_set_rate_protect(struct clk *clk, unsigned long rate)
> +{
> +	int ret;
> +
> +	if (!clk)
> +		return 0;
> +
> +	/* prevent racing with updates to the clock topology */
> +	clk_prepare_lock();
> +
> +	/*
> +	 * The temporary protection removal is not here, on purpose
> +	 * This function is meant to be used in instead of clk_rate_protect,

s/in//

> +	 * so before the consumer code path protect the clock provider
> +	 */
> +
> +	ret = clk_core_set_rate_nolock(clk->core, rate);
> +

Drop newline please.

> +	if (!ret) {
> +		clk_core_rate_protect(clk->core);
> +		clk->protect_count++;
> +	}
> +
> +	clk_prepare_unlock();
> +
> +	return ret;
> +}
> +EXPORT_SYMBOL_GPL(clk_set_rate_protect);
> +
> +/**
>   * clk_set_rate_range - set a rate range for a clock source
>   * @clk: clock source
>   * @min: desired minimum clock rate in Hz, inclusive

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project



More information about the linux-amlogic mailing list