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