Currently if we enter a frequency greater than maximum supported, -EINVAL is returned. Due to this clock is not switched to maximum supported frequency. For example consider the max supported frequency to be 48MHz echo 20000000 > /sys/kernel/debug/mmc0/clock Here clock is switched to 20Mhz. echo 80000000 > /sys/kernel/debug/mmc0/clock Ideally clock should be set back to 48MHz, but it is still set to 20MHz. This patch sets value to f_max when the requested frequency is greater than f_max Signed-off-by: Vinit Shenoy <vinit.shenoy@xxxxxx> --- drivers/mmc/core/debugfs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index 9ab5b17..c71d3eb 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -174,7 +174,7 @@ static int mmc_clock_opt_set(void *data, u64 val) /* We need this check due to input value is u64 */ if (val > host->f_max) - return -EINVAL; + val = host->f_max; mmc_claim_host(host); mmc_set_clock(host, (unsigned int) val); -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html