[PATCH 4.15 102/163] mmc: bcm2835: Dont overwrite max frequency unconditionally

From: Greg Kroah-Hartman
Date: Wed Feb 21 2018 - 08:10:33 EST


4.15-stable review patch. If anyone has any objections, please let me know.

------------------

From: Phil Elwell <phil@xxxxxxxxxxxxxxx>

commit 118032be389009b07ecb5a03ffe219a89d421def upstream.

The optional DT parameter max-frequency could init the max bus frequency.
So take care of this, before setting the max bus frequency.

Fixes: 660fc733bd74 ("mmc: bcm2835: Add new driver for the sdhost controller.")
Signed-off-by: Phil Elwell <phil@xxxxxxxxxxxxxxx>
Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 4.12+
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/mmc/host/bcm2835.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/mmc/host/bcm2835.c
+++ b/drivers/mmc/host/bcm2835.c
@@ -1265,7 +1265,8 @@ static int bcm2835_add_host(struct bcm28
char pio_limit_string[20];
int ret;

- mmc->f_max = host->max_clk;
+ if (!mmc->f_max || mmc->f_max > host->max_clk)
+ mmc->f_max = host->max_clk;
mmc->f_min = host->max_clk / SDCDIV_MAX_CDIV;

mmc->max_busy_timeout = ~0 / (mmc->f_max / 1000);