mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
mmc: sunxi: Check the value returned by clk_round_rate
clk_round_rate() may return an error. Check it. Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
b2db9c6743
commit
63311bece0
@ -692,7 +692,8 @@ static int sunxi_mmc_clk_set_phase(struct sunxi_mmc_host *host,
|
||||
static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host,
|
||||
struct mmc_ios *ios)
|
||||
{
|
||||
u32 rate, rval, clock = ios->clock;
|
||||
long rate;
|
||||
u32 rval, clock = ios->clock;
|
||||
int ret;
|
||||
|
||||
/* 8 bit DDR requires a higher module clock */
|
||||
@ -701,13 +702,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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user