mmc: bcm2835-mmc: Relax the 50MHz overclock check

EMMC clock speeds are based around divisions of 52Mhz, not the 50MHz
used by SD. As such, relax the "full speed" check (intended to stop
any overclock whenever an operation has to be retried) so that any
requested speed of 50MHz or higher will be overclocked.

See: https://github.com/raspberrypi/linux/issues/7120

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
This commit is contained in:
Phil Elwell
2025-11-12 08:51:20 +00:00
committed by Dom Cobley
parent 618a172b8e
commit 1dbbf027ba

View File

@@ -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;