• Zhoujie Wu's avatar
    mmc: sdhci: ignore restoring the I/O state if MMC_POWER_OFF · 70bc85ad
    Zhoujie Wu authored
    One issue was found on a removable high speed sd card with
    runtime pm enabled.
    When SD card is unplugged, it keep printing "Switching to 3.3V
    signalling voltage failed".
    And found below sequence triggers the error.
    
    mmc_rescan
    	-> mmc_sd_detect
    		-> mmc_power_off  -- mmc->ios.vdd is updated to 0.
    	-> mmc_claim_host
    		-> sdhci_runtime_resume_host
    			-> sdhci_start_signal_voltage_switch
    				-> mmc_regulator_set_vqmmc
    					-> mmc_ocrbitnum_to_vdd
    
    When mmc_ocrbitnum_to_vdd is called, the mmc->ios.vdd is 0, so it
    always return -EINVAL. The signal switch will always fail and
    print out warning.
    Ignore restoring the I/O state when runtime resume if MMC_POWER_OFF.
    Signed-off-by: default avatarZhoujie Wu <zjwu@marvell.com>
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    70bc85ad
sdhci.c 101 KB