diff mbox series

[U-Boot,v2,1/2] mmc: sdhci: Update sdhci_send_command() to handle HS200

Message ID 1527604391-17568-1-git-send-email-siva.durga.paladugu@xilinx.com
State Accepted
Delegated to: Michal Simek
Headers show
Series [U-Boot,v2,1/2] mmc: sdhci: Update sdhci_send_command() to handle HS200 | expand

Commit Message

Siva Durga Prasad Paladugu May 29, 2018, 2:33 p.m. UTC
This patch updates sdhci_send_command() to handle MMC
HS200 tuning command.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
---
Changes from v1:
- Fixed spacings as per comment
---
 drivers/mmc/sdhci.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--
2.7.4

This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.

Comments

Michal Simek June 1, 2018, 8:43 a.m. UTC | #1
On 29.5.2018 16:33, Siva Durga Prasad Paladugu wrote:
> This patch updates sdhci_send_command() to handle MMC
> HS200 tuning command.
> 
> Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
> ---
> Changes from v1:
> - Fixed spacings as per comment
> ---
>  drivers/mmc/sdhci.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index 400f87e..40e28ab 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -161,7 +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 ||
> +	    cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
>  		mask &= ~SDHCI_DATA_INHIBIT;
>  
>  	while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) {
> @@ -183,7 +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)
> +	if (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
> +	    cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
>  		mask = SDHCI_INT_DATA_AVAIL;
>  
>  	if (!(cmd->resp_type & MMC_RSP_PRESENT))
> @@ -201,7 +203,8 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
>  		flags |= SDHCI_CMD_CRC;
>  	if (cmd->resp_type & MMC_RSP_OPCODE)
>  		flags |= SDHCI_CMD_INDEX;
> -	if (data || cmd->cmdidx ==  MMC_CMD_SEND_TUNING_BLOCK)
> +	if (data || cmd->cmdidx ==  MMC_CMD_SEND_TUNING_BLOCK ||
> +	    cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
>  		flags |= SDHCI_CMD_DATA;
>  
>  	/* Set Transfer mode regarding to data flag */
> 

Applied.

Thanks,
Michal
diff mbox series

Patch

diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 400f87e..40e28ab 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -161,7 +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 ||
+           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
                mask &= ~SDHCI_DATA_INHIBIT;

        while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) {
@@ -183,7 +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)
+       if (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
+           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
                mask = SDHCI_INT_DATA_AVAIL;

        if (!(cmd->resp_type & MMC_RSP_PRESENT))
@@ -201,7 +203,8 @@  static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
                flags |= SDHCI_CMD_CRC;
        if (cmd->resp_type & MMC_RSP_OPCODE)
                flags |= SDHCI_CMD_INDEX;
-       if (data || cmd->cmdidx ==  MMC_CMD_SEND_TUNING_BLOCK)
+       if (data || cmd->cmdidx ==  MMC_CMD_SEND_TUNING_BLOCK ||
+           cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
                flags |= SDHCI_CMD_DATA;

        /* Set Transfer mode regarding to data flag */