drivers: mmc: rpmb: Use R1 response
authorBharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Fri, 22 Nov 2019 23:13:09 +0000 (15:13 -0800)
committerPeng Fan <peng.fan@nxp.com>
Mon, 17 Feb 2020 06:55:04 +0000 (14:55 +0800)
If the host has Broken R1B, use only R1 response type.

Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
drivers/mmc/rpmb.c

index 33371fe..ee6dbe3 100644 (file)
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <memalign.h>
 #include <mmc.h>
+#include <sdhci.h>
 #include <u-boot/sha256.h>
 #include "mmc_private.h"
 
@@ -91,6 +92,7 @@ static int mmc_rpmb_request(struct mmc *mmc, const struct s_rpmb *s,
 {
        struct mmc_cmd cmd = {0};
        struct mmc_data data;
+       struct sdhci_host *host = mmc->priv;
        int ret;
 
        ret = mmc_set_blockcount(mmc, count, is_rel_write);
@@ -105,6 +107,9 @@ static int mmc_rpmb_request(struct mmc *mmc, const struct s_rpmb *s,
        cmd.cmdarg = 0;
        cmd.resp_type = MMC_RSP_R1;
 
+       if (host->quirks & SDHCI_QUIRK_BROKEN_R1B)
+               cmd.resp_type = MMC_RSP_R1;
+
        data.src = (const char *)s;
        data.blocks = 1;
        data.blocksize = MMC_MAX_BLOCK_LEN;