Index: linux-2.6.39.4/drivers/mmc/core/core.c =================================================================== --- linux-2.6.39.4.orig/drivers/mmc/core/core.c 2011-08-03 14:43:28.000000000 -0500 +++ linux-2.6.39.4/drivers/mmc/core/core.c 2012-09-12 10:45:57.246686939 -0500 @@ -46,7 +46,10 @@ * So we allow it it to be disabled. */ int use_spi_crc = 1; +/* MTPCIE: default max clock to 13MHz */ +int max_clock = 13000000; module_param(use_spi_crc, bool, 0); +module_param(max_clock, int, 0); /* * We normally treat cards as removed during suspend if they are not @@ -628,6 +631,12 @@ if (ios->clock > 0) mmc_set_ungated(host); + + if (max_clock > 0 && ios->clock > max_clock) { + ios->clock = max_clock; + printk("mmc: forcing clock to %u\n", ios->clock); + } + host->ops->set_ios(host, ios); }