Loading drivers/mmc/core/core.c +3 −5 Original line number Diff line number Diff line Loading @@ -3944,12 +3944,10 @@ static void mmc_hw_reset_for_init(struct mmc_host *host) */ int mmc_cmdq_hw_reset(struct mmc_host *host) { if (!host->bus_ops->power_restore) if (!host->bus_ops->reset) return -EOPNOTSUPP; mmc_power_cycle(host, host->ocr_avail); mmc_select_voltage(host, host->card->ocr); return host->bus_ops->power_restore(host); return host->bus_ops->reset(host); } EXPORT_SYMBOL(mmc_cmdq_hw_reset); Loading drivers/mmc/core/mmc.c +24 −1 Original line number Diff line number Diff line Loading @@ -2892,6 +2892,7 @@ EXPORT_SYMBOL(mmc_can_reset); static int mmc_reset(struct mmc_host *host) { struct mmc_card *card = host->card; int ret; if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset && mmc_can_reset(card)) { Loading @@ -2904,7 +2905,29 @@ static int mmc_reset(struct mmc_host *host) /* Do a brute force power cycle */ mmc_power_cycle(host, card->ocr); } return mmc_init_card(host, card->ocr, card); /* Suspend clk scaling to avoid switching frequencies intermittently */ ret = mmc_suspend_clk_scaling(host); if (ret) { pr_err("%s: %s: fail to suspend clock scaling (%d)\n", mmc_hostname(host), __func__, ret); return ret; } ret = mmc_init_card(host, host->card->ocr, host->card); if (ret) { pr_err("%s: %s: mmc_init_card failed (%d)\n", mmc_hostname(host), __func__, ret); return ret; } ret = mmc_resume_clk_scaling(host); if (ret) pr_err("%s: %s: fail to resume clock scaling (%d)\n", mmc_hostname(host), __func__, ret); return ret; } static const struct mmc_bus_ops mmc_ops = { Loading Loading
drivers/mmc/core/core.c +3 −5 Original line number Diff line number Diff line Loading @@ -3944,12 +3944,10 @@ static void mmc_hw_reset_for_init(struct mmc_host *host) */ int mmc_cmdq_hw_reset(struct mmc_host *host) { if (!host->bus_ops->power_restore) if (!host->bus_ops->reset) return -EOPNOTSUPP; mmc_power_cycle(host, host->ocr_avail); mmc_select_voltage(host, host->card->ocr); return host->bus_ops->power_restore(host); return host->bus_ops->reset(host); } EXPORT_SYMBOL(mmc_cmdq_hw_reset); Loading
drivers/mmc/core/mmc.c +24 −1 Original line number Diff line number Diff line Loading @@ -2892,6 +2892,7 @@ EXPORT_SYMBOL(mmc_can_reset); static int mmc_reset(struct mmc_host *host) { struct mmc_card *card = host->card; int ret; if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset && mmc_can_reset(card)) { Loading @@ -2904,7 +2905,29 @@ static int mmc_reset(struct mmc_host *host) /* Do a brute force power cycle */ mmc_power_cycle(host, card->ocr); } return mmc_init_card(host, card->ocr, card); /* Suspend clk scaling to avoid switching frequencies intermittently */ ret = mmc_suspend_clk_scaling(host); if (ret) { pr_err("%s: %s: fail to suspend clock scaling (%d)\n", mmc_hostname(host), __func__, ret); return ret; } ret = mmc_init_card(host, host->card->ocr, host->card); if (ret) { pr_err("%s: %s: mmc_init_card failed (%d)\n", mmc_hostname(host), __func__, ret); return ret; } ret = mmc_resume_clk_scaling(host); if (ret) pr_err("%s: %s: fail to resume clock scaling (%d)\n", mmc_hostname(host), __func__, ret); return ret; } static const struct mmc_bus_ops mmc_ops = { Loading