[PATCH RESEND] mmc: sunxi: Check the value returned by clk_round_rate
Ulf Hansson
ulf.hansson at linaro.org
Mon Aug 22 06:53:00 PDT 2016
On 13 August 2016 at 18:01, Jean-Francois Moine <moinejf at free.fr> wrote:
> clk_round_rate() may return an error. Check it.
>
> Signed-off-by: Jean-Francois Moine <moinejf at free.fr>
> Acked-by: Maxime Ripard <maxime.ripard at free-electrons.com>
Please re-spins this as it doesn't apply cleanly due to recent new
sunxi changes.
Kind regards
Uffe
> ---
> This patch was initially sent in a patch series about the MMC new mode,
> but it may be applied independently.
> ---
> drivers/mmc/host/sunxi-mmc.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
> index 2ee4c21..ba647b7 100644
> --- a/drivers/mmc/host/sunxi-mmc.c
> +++ b/drivers/mmc/host/sunxi-mmc.c
> @@ -656,7 +656,8 @@ static int sunxi_mmc_oclk_onoff(struct sunxi_mmc_host *host, u32 oclk_en)
> static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host,
> struct mmc_ios *ios)
> {
> - u32 rate, oclk_dly, rval, sclk_dly;
> + long rate;
> + u32 oclk_dly, rval, sclk_dly;
> u32 clock = ios->clock;
> int ret;
>
> @@ -666,13 +667,18 @@ static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host,
> clock <<= 1;
>
> rate = clk_round_rate(host->clk_mmc, clock);
> - dev_dbg(mmc_dev(host->mmc), "setting clk to %d, rounded %d\n",
> + if (rate < 0) {
> + dev_err(mmc_dev(host->mmc), "error rounding clk to %d: %ld\n",
> + clock, rate);
> + return rate;
> + }
> + dev_dbg(mmc_dev(host->mmc), "setting clk to %d, rounded %ld\n",
> clock, rate);
>
> /* setting clock rate */
> ret = clk_set_rate(host->clk_mmc, rate);
> if (ret) {
> - dev_err(mmc_dev(host->mmc), "error setting clk to %d: %d\n",
> + dev_err(mmc_dev(host->mmc), "error setting clk to %ld: %d\n",
> rate, ret);
> return ret;
> }
> --
> 2.9.2
>
More information about the linux-arm-kernel
mailing list