2018-08-15 11:40:57

by Igor Opaniuk

[permalink] [raw]
Subject: [PATCH 1/1] mmc: dw_mmc: hi3798cv200: add MMC_CAP_CMD23 capability

Enable access to the RPMB on the on-board eMMC of the
Poplar board.

Signed-off-by: Igor Opaniuk <[email protected]>
---
drivers/mmc/host/dw_mmc-hi3798cv200.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/mmc/host/dw_mmc-hi3798cv200.c b/drivers/mmc/host/dw_mmc-hi3798cv200.c
index f9b333f..7a023f0 100644
--- a/drivers/mmc/host/dw_mmc-hi3798cv200.c
+++ b/drivers/mmc/host/dw_mmc-hi3798cv200.c
@@ -23,6 +23,12 @@ struct hi3798cv200_priv {
struct clk *drive_clk;
};

+static unsigned long dw_mci_hi3798cv200_caps[] = {
+ MMC_CAP_CMD23,
+ MMC_CAP_CMD23,
+ 0
+};
+
static void dw_mci_hi3798cv200_set_ios(struct dw_mci *host, struct mmc_ios *ios)
{
struct hi3798cv200_priv *priv = host->priv;
@@ -160,6 +166,8 @@ static int dw_mci_hi3798cv200_init(struct dw_mci *host)
}

static const struct dw_mci_drv_data hi3798cv200_data = {
+ .caps = dw_mci_hi3798cv200_caps,
+ .num_caps = ARRAY_SIZE(dw_mci_hi3798cv200_caps),
.init = dw_mci_hi3798cv200_init,
.set_ios = dw_mci_hi3798cv200_set_ios,
.execute_tuning = dw_mci_hi3798cv200_execute_tuning,
--
2.7.4



2018-08-16 14:54:54

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 1/1] mmc: dw_mmc: hi3798cv200: add MMC_CAP_CMD23 capability

On Wed, Aug 15, 2018 at 7:39 PM Igor Opaniuk <[email protected]> wrote:
>
> Enable access to the RPMB on the on-board eMMC of the
> Poplar board.
>
> Signed-off-by: Igor Opaniuk <[email protected]>
> ---
> drivers/mmc/host/dw_mmc-hi3798cv200.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/mmc/host/dw_mmc-hi3798cv200.c b/drivers/mmc/host/dw_mmc-hi3798cv200.c
> index f9b333f..7a023f0 100644
> --- a/drivers/mmc/host/dw_mmc-hi3798cv200.c
> +++ b/drivers/mmc/host/dw_mmc-hi3798cv200.c
> @@ -23,6 +23,12 @@ struct hi3798cv200_priv {
> struct clk *drive_clk;
> };
>
> +static unsigned long dw_mci_hi3798cv200_caps[] = {
> + MMC_CAP_CMD23,
> + MMC_CAP_CMD23,
> + 0
> +};

I believe the three dwmmc blocks integrated on Hi3798CV200 SoC are
identical on CMD23 support. So I expect the zero to be MMC_CAP_CMD23
as well.

Shawn

> +
> static void dw_mci_hi3798cv200_set_ios(struct dw_mci *host, struct mmc_ios *ios)
> {
> struct hi3798cv200_priv *priv = host->priv;
> @@ -160,6 +166,8 @@ static int dw_mci_hi3798cv200_init(struct dw_mci *host)
> }
>
> static const struct dw_mci_drv_data hi3798cv200_data = {
> + .caps = dw_mci_hi3798cv200_caps,
> + .num_caps = ARRAY_SIZE(dw_mci_hi3798cv200_caps),
> .init = dw_mci_hi3798cv200_init,
> .set_ios = dw_mci_hi3798cv200_set_ios,
> .execute_tuning = dw_mci_hi3798cv200_execute_tuning,
> --
> 2.7.4
>

2018-08-16 18:11:38

by Igor Opaniuk

[permalink] [raw]
Subject: Re: [PATCH 1/1] mmc: dw_mmc: hi3798cv200: add MMC_CAP_CMD23 capability

Hi Shawn,

Will test it today with the change you suggested, in case if
everything is OK will send v2 asap

Thanks

On 16 August 2018 at 11:01, Shawn Guo <[email protected]> wrote:
> On Wed, Aug 15, 2018 at 7:39 PM Igor Opaniuk <[email protected]> wrote:
>>
>> Enable access to the RPMB on the on-board eMMC of the
>> Poplar board.
>>
>> Signed-off-by: Igor Opaniuk <[email protected]>
>> ---
>> drivers/mmc/host/dw_mmc-hi3798cv200.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/mmc/host/dw_mmc-hi3798cv200.c b/drivers/mmc/host/dw_mmc-hi3798cv200.c
>> index f9b333f..7a023f0 100644
>> --- a/drivers/mmc/host/dw_mmc-hi3798cv200.c
>> +++ b/drivers/mmc/host/dw_mmc-hi3798cv200.c
>> @@ -23,6 +23,12 @@ struct hi3798cv200_priv {
>> struct clk *drive_clk;
>> };
>>
>> +static unsigned long dw_mci_hi3798cv200_caps[] = {
>> + MMC_CAP_CMD23,
>> + MMC_CAP_CMD23,
>> + 0
>> +};
>
> I believe the three dwmmc blocks integrated on Hi3798CV200 SoC are
> identical on CMD23 support. So I expect the zero to be MMC_CAP_CMD23
> as well.
>
> Shawn
>
>> +
>> static void dw_mci_hi3798cv200_set_ios(struct dw_mci *host, struct mmc_ios *ios)
>> {
>> struct hi3798cv200_priv *priv = host->priv;
>> @@ -160,6 +166,8 @@ static int dw_mci_hi3798cv200_init(struct dw_mci *host)
>> }
>>
>> static const struct dw_mci_drv_data hi3798cv200_data = {
>> + .caps = dw_mci_hi3798cv200_caps,
>> + .num_caps = ARRAY_SIZE(dw_mci_hi3798cv200_caps),
>> .init = dw_mci_hi3798cv200_init,
>> .set_ios = dw_mci_hi3798cv200_set_ios,
>> .execute_tuning = dw_mci_hi3798cv200_execute_tuning,
>> --
>> 2.7.4
>>



--
Regards,
Igor Opaniuk