]> Git Repo - J-linux.git/commitdiff
sdhci-of: Fix the wrong accessor to HOSTVER register
authorDave Liu <[email protected]>
Wed, 6 May 2009 10:40:07 +0000 (18:40 +0800)
committerPierre Ossman <[email protected]>
Wed, 3 Jun 2009 19:56:22 +0000 (21:56 +0200)
Freescale eSDHC controller has the special order for
the HOST version register. that is not same as the other's
registers. The address of HOSTVER in spec is 0xFE, and
we need use the in_be16(0xFE) to access it, not in_be16(0xFC).

Signed-off-by: Dave Liu <[email protected]>
Acked-by: Anton Vorontsov <[email protected]>
Signed-off-by: Pierre Ossman <[email protected]>
drivers/mmc/host/sdhci-of.c

index 09cc597c63167b14ac58aa90c1bec37ef6d55f76..128c614d11aa2d8d2446762cf1e97a123d2f99e5 100644 (file)
@@ -55,7 +55,13 @@ static u32 esdhc_readl(struct sdhci_host *host, int reg)
 
 static u16 esdhc_readw(struct sdhci_host *host, int reg)
 {
-       return in_be16(host->ioaddr + (reg ^ 0x2));
+       u16 ret;
+
+       if (unlikely(reg == SDHCI_HOST_VERSION))
+               ret = in_be16(host->ioaddr + reg);
+       else
+               ret = in_be16(host->ioaddr + (reg ^ 0x2));
+       return ret;
 }
 
 static u8 esdhc_readb(struct sdhci_host *host, int reg)
This page took 0.051514 seconds and 4 git commands to generate.