[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3590da3a-046d-3fd4-42e2-238fcb6751ab@rock-chips.com>
Date: Fri, 7 May 2021 09:58:24 +0800
From: Shawn Lin <shawn.lin@...k-chips.com>
To: Ulf Hansson <ulf.hansson@...aro.org>, linux-mmc@...r.kernel.org,
Adrian Hunter <adrian.hunter@...el.com>
Cc: shawn.lin@...k-chips.com, Linus Walleij <linus.walleij@...aro.org>,
Wolfram Sang <wsa+renesas@...g-engineering.com>,
Avri Altman <avri.altman@....com>,
Masami Hiramatsu <masami.hiramatsu@...aro.org>,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 08/11] mmc: core: Parse the SD SCR register for support of
CMD48/49 and CMD58/59
On 2021/5/5 0:12, Ulf Hansson wrote:
> In SD spec v4.x the support for CMD48/49 and CMD58/59 were introduced as
> optional features. To let the card announce whether it supports the
> commands, the SCR register has been extended with corresponding support
> bits. Let's parse and store this information for later use.
>
Just check v4.0 spec, and it says
"Table 4-32 is added in Version 4.00. These commands are reserved for
future extenstion". So,
Reviewed-by: Shawn Lin <shawn.lin@...k-chips.com>
> Signed-off-by: Ulf Hansson <ulf.hansson@...aro.org>
> ---
> drivers/mmc/core/sd.c | 4 +++-
> include/linux/mmc/card.h | 2 ++
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> index 2c48d6504101..de7b5f8df550 100644
> --- a/drivers/mmc/core/sd.c
> +++ b/drivers/mmc/core/sd.c
> @@ -222,7 +222,9 @@ static int mmc_decode_scr(struct mmc_card *card)
> else
> card->erased_byte = 0x0;
>
> - if (scr->sda_spec3)
> + if (scr->sda_spec4)
> + scr->cmds = UNSTUFF_BITS(resp, 32, 4);
> + else if (scr->sda_spec3)
> scr->cmds = UNSTUFF_BITS(resp, 32, 2);
>
> /* SD Spec says: any SD Card shall set at least bits 0 and 2 */
> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
> index f9ad35dd6012..858fc4d11240 100644
> --- a/include/linux/mmc/card.h
> +++ b/include/linux/mmc/card.h
> @@ -139,6 +139,8 @@ struct sd_scr {
> unsigned char cmds;
> #define SD_SCR_CMD20_SUPPORT (1<<0)
> #define SD_SCR_CMD23_SUPPORT (1<<1)
> +#define SD_SCR_CMD48_SUPPORT (1<<2)
> +#define SD_SCR_CMD58_SUPPORT (1<<3)
> };
>
> struct sd_ssr {
>
Powered by blists - more mailing lists