• Z
    mmc: sdhci: ignore restoring the I/O state if MMC_POWER_OFF · 70bc85ad
    Zhoujie Wu 提交于
    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: NZhoujie Wu <zjwu@marvell.com>
    Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
    70bc85ad
sdhci.c 100.5 KB