Re: [PATCH V1] mmc: core: expose info about enhanced rpmb support

From: Ulf Hansson
Date: Thu May 07 2020 - 05:29:44 EST


On Fri, 1 May 2020 at 15:54, Veerabhadrarao Badiganti
<vbadigan@xxxxxxxxxxxxxx> wrote:
>
> From: Krishna Konda <kkonda@xxxxxxxxxxxxxx>
>
> Following eMMC JEDEC JESD84-B51 standard, an enhanced form of
> rpmb is supported. What this enhanced mode supports is in addition
> to be able to write one rpmb or two rpmb frames at a time,
> 32 frames can be written at a time.
>
> Expose this information present in ext csd field so that the
> user space application that wants to make use of this can do so.
>
> Signed-off-by: Krishna Konda <kkonda@xxxxxxxxxxxxxx>
> Signed-off-by: Veerabhadrarao Badiganti <vbadigan@xxxxxxxxxxxxxx>

Applied for next, thanks!

Kind regards
Uffe


> ---
> drivers/mmc/core/mmc.c | 6 ++++++
> include/linux/mmc/card.h | 1 +
> include/linux/mmc/mmc.h | 1 +
> 3 files changed, 8 insertions(+)
>
> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> index de94fbe..4203303 100644
> --- a/drivers/mmc/core/mmc.c
> +++ b/drivers/mmc/core/mmc.c
> @@ -647,6 +647,9 @@ static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd)
> mmc_hostname(card->host),
> card->ext_csd.cmdq_depth);
> }
> + card->ext_csd.enhanced_rpmb_supported =
> + (card->ext_csd.rel_param &
> + EXT_CSD_WR_REL_PARAM_EN_RPMB_REL_WR);
> }
> out:
> return err;
> @@ -786,6 +789,8 @@ static int mmc_compare_ext_csds(struct mmc_card *card, unsigned bus_width)
> card->ext_csd.enhanced_area_offset);
> MMC_DEV_ATTR(enhanced_area_size, "%u\n", card->ext_csd.enhanced_area_size);
> MMC_DEV_ATTR(raw_rpmb_size_mult, "%#x\n", card->ext_csd.raw_rpmb_size_mult);
> +MMC_DEV_ATTR(enhanced_rpmb_supported, "%#x\n",
> + card->ext_csd.enhanced_rpmb_supported);
> MMC_DEV_ATTR(rel_sectors, "%#x\n", card->ext_csd.rel_sectors);
> MMC_DEV_ATTR(ocr, "0x%08x\n", card->ocr);
> MMC_DEV_ATTR(rca, "0x%04x\n", card->rca);
> @@ -843,6 +848,7 @@ static ssize_t mmc_dsr_show(struct device *dev,
> &dev_attr_enhanced_area_offset.attr,
> &dev_attr_enhanced_area_size.attr,
> &dev_attr_raw_rpmb_size_mult.attr,
> + &dev_attr_enhanced_rpmb_supported.attr,
> &dev_attr_rel_sectors.attr,
> &dev_attr_ocr.attr,
> &dev_attr_rca.attr,
> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
> index cf3780a..7d46411 100644
> --- a/include/linux/mmc/card.h
> +++ b/include/linux/mmc/card.h
> @@ -48,6 +48,7 @@ struct mmc_ext_csd {
> u8 sec_feature_support;
> u8 rel_sectors;
> u8 rel_param;
> + bool enhanced_rpmb_supported;
> u8 part_config;
> u8 cache_ctrl;
> u8 rst_n_function;
> diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
> index 4b85ef0..d9a65c6 100644
> --- a/include/linux/mmc/mmc.h
> +++ b/include/linux/mmc/mmc.h
> @@ -325,6 +325,7 @@ static inline bool mmc_ready_for_data(u32 status)
> */
>
> #define EXT_CSD_WR_REL_PARAM_EN (1<<2)
> +#define EXT_CSD_WR_REL_PARAM_EN_RPMB_REL_WR (1<<4)
>
> #define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40)
> #define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10)
> --
> Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc., is a member of Code Aurora Forum, a Linux Foundation Collaborative Project