[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