Loading drivers/mmc/core/core.c +8 −21 Original line number Diff line number Diff line Loading @@ -2573,18 +2573,23 @@ int mmc_host_set_uhs_voltage(struct mmc_host *host) * During a signal voltage level switch, the clock must be gated * for 5 ms according to the SD spec */ host->card_clock_off = true; clock = host->ios.clock; host->ios.clock = 0; mmc_set_ios(host); if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) { host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; return -EAGAIN; } /* Keep clock gated for at least 10 ms, though spec only says 5 ms */ mmc_delay(10); host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; return 0; } Loading @@ -2592,7 +2597,6 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr) { struct mmc_command cmd = {}; int err = 0; u32 clock; /* * If we cannot switch voltages, return failure so the caller Loading Loading @@ -2630,33 +2634,16 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr) err = -EAGAIN; goto power_cycle; } /* * During a signal voltage level switch, the clock must be gated * for 5 ms according to the SD spec */ host->card_clock_off = true; clock = host->ios.clock; host->ios.clock = 0; mmc_set_ios(host); if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) { if (mmc_host_set_uhs_voltage(host)) { /* * Voltages may not have been switched, but we've already * sent CMD11, so a power cycle is required anyway */ err = -EAGAIN; host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; goto power_cycle; } /* Keep clock gated for at least 10 ms, though spec only says 5 ms */ mmc_delay(10); host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; /* Wait for at least 1 ms according to spec */ mmc_delay(1); Loading Loading
drivers/mmc/core/core.c +8 −21 Original line number Diff line number Diff line Loading @@ -2573,18 +2573,23 @@ int mmc_host_set_uhs_voltage(struct mmc_host *host) * During a signal voltage level switch, the clock must be gated * for 5 ms according to the SD spec */ host->card_clock_off = true; clock = host->ios.clock; host->ios.clock = 0; mmc_set_ios(host); if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) { host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; return -EAGAIN; } /* Keep clock gated for at least 10 ms, though spec only says 5 ms */ mmc_delay(10); host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; return 0; } Loading @@ -2592,7 +2597,6 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr) { struct mmc_command cmd = {}; int err = 0; u32 clock; /* * If we cannot switch voltages, return failure so the caller Loading Loading @@ -2630,33 +2634,16 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr) err = -EAGAIN; goto power_cycle; } /* * During a signal voltage level switch, the clock must be gated * for 5 ms according to the SD spec */ host->card_clock_off = true; clock = host->ios.clock; host->ios.clock = 0; mmc_set_ios(host); if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) { if (mmc_host_set_uhs_voltage(host)) { /* * Voltages may not have been switched, but we've already * sent CMD11, so a power cycle is required anyway */ err = -EAGAIN; host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; goto power_cycle; } /* Keep clock gated for at least 10 ms, though spec only says 5 ms */ mmc_delay(10); host->ios.clock = clock; mmc_set_ios(host); host->card_clock_off = false; /* Wait for at least 1 ms according to spec */ mmc_delay(1); Loading