|
@@ -939,14 +939,7 @@ static void sunxi_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
|
|
{
|
|
|
struct sunxi_mmc_host *host = mmc_priv(mmc);
|
|
|
|
|
|
- if (ios->power_mode == MMC_POWER_OFF)
|
|
|
- sunxi_mmc_reset_host(host);
|
|
|
-
|
|
|
sunxi_mmc_card_power(host, ios);
|
|
|
-
|
|
|
- if (ios->power_mode == MMC_POWER_UP)
|
|
|
- sunxi_mmc_init_host(host);
|
|
|
-
|
|
|
sunxi_mmc_set_bus_width(host, ios->bus_width);
|
|
|
sunxi_mmc_set_clk(host, ios);
|
|
|
}
|
|
@@ -1401,6 +1394,10 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
|
|
|
if (ret)
|
|
|
goto error_free_dma;
|
|
|
|
|
|
+ ret = sunxi_mmc_init_host(host);
|
|
|
+ if (ret)
|
|
|
+ goto error_free_dma;
|
|
|
+
|
|
|
pm_runtime_set_active(&pdev->dev);
|
|
|
pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
|
|
|
pm_runtime_use_autosuspend(&pdev->dev);
|