diff --git a/drivers/mmc/host/bcm2835-mmc.c b/drivers/mmc/host/bcm2835-mmc.c index e24e6bec329e08..dc889bbb7542c8 100644 --- a/drivers/mmc/host/bcm2835-mmc.c +++ b/drivers/mmc/host/bcm2835-mmc.c @@ -1068,7 +1068,7 @@ static void bcm2835_mmc_set_clock(struct bcm2835_host *host, unsigned int clock) unsigned long timeout; unsigned int input_clock = clock; - if (host->overclock_50 && (clock == 50000000)) + if (host->overclock_50 && (clock >= 50000000)) clock = host->overclock_50 * 1000000 + 999999; host->mmc->actual_clock = 0; diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c index f47d78f9668595..45e7ed7c0f85fa 100644 --- a/drivers/mmc/host/bcm2835-sdhost.c +++ b/drivers/mmc/host/bcm2835-sdhost.c @@ -1541,7 +1541,7 @@ static void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clo if (host->debug) pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); - if (host->overclock_50 && (clock == 50*MHZ)) + if (host->overclock_50 && (clock >= 50*MHZ)) clock = host->overclock_50 * MHZ + (MHZ - 1); /* The SDCDIV register has 11 bits, and holds (div - 2). diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c index 318176720f06cc..a6ce4fd61c161e 100644 --- a/drivers/mmc/host/bcm2835.c +++ b/drivers/mmc/host/bcm2835.c @@ -1127,7 +1127,7 @@ static void bcm2835_set_clock(struct bcm2835_host *host, unsigned int clock) const unsigned int MHZ = 1000000; int div; - if (host->overclock_50 && (clock == 50*MHZ)) + if (host->overclock_50 && (clock >= 50*MHZ)) clock = host->overclock_50 * MHZ + (MHZ - 1); /* The SDCDIV register has 11 bits, and holds (div - 2). But