@@ -922,6 +922,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;
@@ -225,6 +225,7 @@ struct sdhci_ops {
void (*platform_reset_enter)(struct sdhci_host *host, u8 mask);
void (*platform_reset_exit)(struct sdhci_host *host, u8 mask);
unsigned int (*get_f_max_clock)(struct sdhci_host *host);
+ void (*platform_specific_delay)(struct sdhci_host *host);
};
#ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS