[PATCH] mmc: Fix the wrong accessor to HOSTVER register
Anton Vorontsov
avorontsov at ru.mvista.com
Wed Jun 3 03:26:44 EST 2009
On Wed, May 06, 2009 at 06:40:07PM +0800, Dave Liu wrote:
> 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 <daveliu at freescale.com>
Sorry for the delay Dave. This patch is surely
Acked-by: Anton Vorontsov <avorontsov at ru.mvista.com>
> ---
> drivers/mmc/host/sdhci-of.c | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c
> index 3ff4ac3..e167131 100644
> --- a/drivers/mmc/host/sdhci-of.c
> +++ b/drivers/mmc/host/sdhci-of.c
> @@ -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)
> --
> 1.5.4
Thanks,
--
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2
More information about the Linuxppc-dev
mailing list