Hi Siva,

2018-06-12 18:44 GMT+09:00 Siva Durga Prasad Paladugu <siva...@xilinx.com>:
> Hi Masahiro,
>
> Can you please try with this below change and let me know if it works.
> In our case, we don’t want to read tuning pattern, instead it waits for 
> TUNED_CLK bit to be set in host ctrl2 register. But, in your case, you want 
> to read back the pattern data and compare it.
>
>
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -161,8 +161,8 @@ static int sdhci_send_command(struct mmc *mmc, struct 
> mmc_cmd *cmd,
>         /* We shouldn't wait for data inihibit for stop commands, even
>            though they might use busy signaling */
>         if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION ||
> -           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
> -           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
> +           ((cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
> +             cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200) && !data))
>                 mask &= ~SDHCI_DATA_INHIBIT;
>
>         while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) {
> @@ -184,8 +184,8 @@ static int sdhci_send_command(struct mmc *mmc, struct 
> mmc_cmd *cmd,
>         sdhci_writel(host, SDHCI_INT_ALL_MASK, SDHCI_INT_STATUS);
>
>         mask = SDHCI_INT_RESPONSE;
> -       if (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
> -           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
> +       if ((cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
> +            cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200) && !data)
>                 mask = SDHCI_INT_DATA_AVAIL;
>
>         if (!(cmd->resp_type & MMC_RSP_PRESENT))
>
>


Yes, it works.  Thanks!



-- 
Best Regards
Masahiro Yamada
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to