|
@@ -2048,6 +2048,18 @@ out_unlock:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+static int sdhci_select_drive_strength(struct mmc_card *card,
|
|
|
+ unsigned int max_dtr, int host_drv,
|
|
|
+ int card_drv, int *drv_type)
|
|
|
+{
|
|
|
+ struct sdhci_host *host = mmc_priv(card->host);
|
|
|
+
|
|
|
+ if (!host->ops->select_drive_strength)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ return host->ops->select_drive_strength(host, card, max_dtr, host_drv,
|
|
|
+ card_drv, drv_type);
|
|
|
+}
|
|
|
|
|
|
static void sdhci_enable_preset_value(struct sdhci_host *host, bool enable)
|
|
|
{
|
|
@@ -2192,6 +2204,7 @@ static const struct mmc_host_ops sdhci_ops = {
|
|
|
.start_signal_voltage_switch = sdhci_start_signal_voltage_switch,
|
|
|
.prepare_hs400_tuning = sdhci_prepare_hs400_tuning,
|
|
|
.execute_tuning = sdhci_execute_tuning,
|
|
|
+ .select_drive_strength = sdhci_select_drive_strength,
|
|
|
.card_event = sdhci_card_event,
|
|
|
.card_busy = sdhci_card_busy,
|
|
|
};
|