@@ -925,6 +925,14 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
mdelay(1);
}
+ /*
+ * we cannot talk to controller for 8 bus cycles according to sdio spec
+ * at lowest speed this is 100,000 HZ per cycle or 800,000 cycles
+ * which is quite a LONG TIME on a fast cpu -- so delay if needed
+ */
+ if (host->ops->platform_specific_delay)
+ host->ops->platform_specific_delay(host);
+
mod_timer(&host->timer, jiffies + 10 * HZ);
host->cmd = cmd;
@@ -245,6 +245,7 @@ struct sdhci_ops {
unsigned int (*get_f_max_clock)(struct sdhci_host *host);
unsigned int (*set_signaling_voltage)(struct sdhci_host *host,
unsigned int ddr);
+ void (*platform_specific_delay)(struct sdhci_host *host);
};
#ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS