The patch titled sdhci-of: avoid writing reserved bits into host control register has been added to the -mm tree. Its filename is sdhci-of-avoid-writing-reserved-bits-into-host-control-register.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: sdhci-of: avoid writing reserved bits into host control register From: Anton Vorontsov <avorontsov@xxxxxxxxxxxxx> SDHCI core tries to write HISPD bit into the host control register, but the eSDHC controllers don't have that bit, and that causes all sorts of misbehaviour when using 4-bit mode capable SD cards. Signed-off-by: Anton Vorontsov <avorontsov@xxxxxxxxxxxxx> Cc: Pierre Ossman <pierre@xxxxxxxxx> Cc: Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx> Cc: David Vrabel <david.vrabel@xxxxxxx> Cc: Ben Dooks <ben@xxxxxxxxx> Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: <linux-mmc@xxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/mmc/host/sdhci-of.c | 6 ++++++ 1 file changed, 6 insertions(+) diff -puN drivers/mmc/host/sdhci-of.c~sdhci-of-avoid-writing-reserved-bits-into-host-control-register drivers/mmc/host/sdhci-of.c --- a/drivers/mmc/host/sdhci-of.c~sdhci-of-avoid-writing-reserved-bits-into-host-control-register +++ a/drivers/mmc/host/sdhci-of.c @@ -48,6 +48,8 @@ struct sdhci_of_host { #define ESDHC_CLOCK_HCKEN 0x00000002 #define ESDHC_CLOCK_IPGEN 0x00000001 +#define ESDHC_HOST_CONTROL_RES 0x05 + static u32 esdhc_readl(struct sdhci_host *host, int reg) { return in_be32(host->ioaddr + reg); @@ -109,6 +111,10 @@ static void esdhc_writeb(struct sdhci_ho int base = reg & ~0x3; int shift = (reg & 0x3) * 8; + /* Prevent SDHCI core from writing reserved bits (e.g. HISPD). */ + if (reg == SDHCI_HOST_CONTROL) + val &= ~ESDHC_HOST_CONTROL_RES; + clrsetbits_be32(host->ioaddr + base , 0xff << shift, val << shift); } _ Patches currently in -mm which might be from avorontsov@xxxxxxxxxxxxx are linux-next.patch mtd-sst25l-non-jedec-spi-flash-driver.patch mtd-m25p80-fix-null-pointer-dereference-bug.patch sdhci-be-more-strict-with-get_min_clock-usage.patch sdhci-of-fix-sd-clock-calculation.patch sdhci-of-avoid-writing-reserved-bits-into-host-control-register.patch sdhci-of-fix-high-speed-cards-recognition.patch powerpc-introduce-and-document-sdhciwp-inverted-property-for-esdhc.patch sdhci-of-dont-hard-code-inverted-write-protect-quirk.patch sdhci-of-cleanup-esdhcs-set_clock-a-little-bit.patch powerpc-85xx-add-esdhc-support-for-mpc8536ds-boards.patch spi-add-support-for-device-table-matching.patch mtd-m25p80-convert-to-device-table-matching.patch of-remove-stmm25p40-alias.patch hwmon-adxx-convert-to-device-table-matching.patch hwmon-lm70-convert-to-device-table-matching.patch spi-prefix-modalias-with-spi.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html