Hi,

On 07/12/2017 01:20 AM, Jean-Jacques Hiblot wrote:
> From: Kishon Vijay Abraham I <[email protected]>
> 
> Instead of sending STOP TRANSMISSION command from MMC core, enable
> the auto command feature so that the Host Controller issues CMD12
> automatically when last block transfer is completed.
> 
> Signed-off-by: Kishon Vijay Abraham I <[email protected]>
> Signed-off-by: Jean-Jacques Hiblot <[email protected]>
> ---
>  drivers/mmc/omap_hsmmc.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
> index 3419dc5..3ee81bb 100644
> --- a/drivers/mmc/omap_hsmmc.c
> +++ b/drivers/mmc/omap_hsmmc.c
> @@ -490,6 +490,10 @@ static int omap_hsmmc_send_cmd(struct udevice *dev, 
> struct mmc_cmd *cmd,
>       ulong start;
>  
>       mmc_base = priv->base_addr;
> +
> +     if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION)
> +             return 0;

Just i wonder that there is no side-effect..I'm not sure that all omap SoCs can 
be supported Auto command12.

Best Regards,
Jaehoon Chung

> +
>       start = get_timer(0);
>       while ((readl(&mmc_base->pstate) & (DATI_MASK | CMDI_MASK)) != 0) {
>               if (get_timer(0) - start > MAX_RETRY_MS) {
> @@ -546,7 +550,7 @@ static int omap_hsmmc_send_cmd(struct udevice *dev, 
> struct mmc_cmd *cmd,
>       if (data) {
>               if ((cmd->cmdidx == MMC_CMD_READ_MULTIPLE_BLOCK) ||
>                        (cmd->cmdidx == MMC_CMD_WRITE_MULTIPLE_BLOCK)) {
> -                     flags |= (MSBS_MULTIBLK | BCE_ENABLE);
> +                     flags |= (MSBS_MULTIBLK | BCE_ENABLE | ACEN_ENABLE);
>                       data->blocksize = 512;
>                       writel(data->blocksize | (data->blocks << 16),
>                                                       &mmc_base->blk);
> 

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to