On Tue, Sep 27, 2011 at 09:46:56AM +0200, Ulf Hansson wrote: > /* The ST Micro variants has a special bit to enable SDIO */ > if (variant->sdio && host->mmc->card) > - if (mmc_card_sdio(host->mmc->card)) > + if (mmc_card_sdio(host->mmc->card)) { > + /* > + * The ST Micro variants has a special bit > + * to enable SDIO. > + */ > datactrl |= MCI_ST_DPSM_SDIOEN; > > + /* > + * The ST Micro variant for SDIO transfer sizes > + * less then or equal to 8 bytes needs to have clock > + * H/W flow control disabled. Since flow control is > + * not really needed for anything that fits in the > + * FIFO, we can disable it for any write smaller > + * than the FIFO size. > + */ > + if ((host->size <= variant->fifosize) && > + (data->flags & MMC_DATA_WRITE)) > + writel(readl(host->base + MMCICLOCK) & > + ~variant->clkreg_enable, > + host->base + MMCICLOCK); > + else > + writel(readl(host->base + MMCICLOCK) | > + variant->clkreg_enable, > + host->base + MMCICLOCK); > + } Shouldn't this also re-enable the ST hardware flow control for non-SDIO cards? -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html