[U-Boot] [PATCH] mmc: set correct block size value in bfin sdh driver

Sonic Zhang sonic.adi at gmail.com
Tue Aug 12 12:43:01 CEST 2014


PING

On Wed, Aug 6, 2014 at 6:14 PM, Sonic Zhang <sonic.adi at gmail.com> wrote:
> From: Sonic Zhang <sonic.zhang at analog.com>
>
> Wait data transfer till the data end bit other than the data block end
> bit is set.
>
> Signed-off-by: Sonic Zhang <sonic.zhang at analog.com>
> ---
>
>  drivers/mmc/bfin_sdh.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/bfin_sdh.c b/drivers/mmc/bfin_sdh.c
> index bcd6a3e..9bdfbbc 100644
> --- a/drivers/mmc/bfin_sdh.c
> +++ b/drivers/mmc/bfin_sdh.c
> @@ -138,9 +138,9 @@ static int sdh_setup_data(struct mmc *mmc, struct mmc_data *data)
>         if (data->flags & MMC_DATA_WRITE)
>                 return UNUSABLE_ERR;
>  #ifndef RSI_BLKSZ
> -       data_ctl |= ((ffs(data_size) - 1) << 4);
> +       data_ctl |= ((ffs(data->blocksize) - 1) << 4);
>  #else
> -       bfin_write_SDH_BLK_SIZE(data_size);
> +       bfin_write_SDH_BLK_SIZE(data->blocksize);
>  #endif
>         data_ctl |= DTX_DIR;
>         bfin_write_SDH_DATA_CTL(data_ctl);
> @@ -189,7 +189,8 @@ static int bfin_sdh_request(struct mmc *mmc, struct mmc_cmd *cmd,
>                 do {
>                         udelay(1);
>                         status = bfin_read_SDH_STATUS();
> -               } while (!(status & (DAT_BLK_END | DAT_END | DAT_TIME_OUT | DAT_CRC_FAIL | RX_OVERRUN)));
> +               } while (!(status & (DAT_END | DAT_TIME_OUT | DAT_CRC_FAIL |
> +                        RX_OVERRUN)));
>
>                 if (status & DAT_TIME_OUT) {
>                         bfin_write_SDH_STATUS_CLR(DAT_TIMEOUT_STAT);
> --
> 1.8.2.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list