Thread (1 message) 1 message, 1 author, 2016-08-24
DORMANTno replies

[PATCH RESEND] mmc: sunxi: Check the value returned by clk_round_rate

From: Ulf Hansson <hidden>
Date: 2016-08-24 09:32:26
Also in: linux-mmc

On 23 August 2016 at 10:51, Jean-Francois Moine [off-list ref] wrote:
clk_round_rate() may return an error. Check it.

Signed-off-by: Jean-Francois Moine <redacted>
Acked-by: Maxime Ripard <redacted>
Thanks, applied for next!

For some reason this patch didn't go into the mmc patchtracker,
probably because you have several lists on cc. Future wise I guess
it's better if you have linux-mmc on the *to* list.

Kind regards
Uffe
quoted hunk
---
Rebase on linux-next
---
 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 2ec91ce..142ab3f 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -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;
        }
--
2.9.3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help