diff mbox series

[4/4] mmc: dw_mmc: exynos: use common_caps

Message ID 20211124184603.3897245-5-john@metanate.com (mailing list archive)
State Not Applicable
Headers show
Series mmc: dw_mmc: start deprecating mshcN aliases | expand

Commit Message

John Keeping Nov. 24, 2021, 6:46 p.m. UTC
Move the common MMC_CAP_CMD23 capability to common_caps so that only the
special case of MMC_CAP_1_8V_DDR and MMC_CAP_8_BIT_DATA are set via
caps/num_caps.  Both of those can, and should, be set via device tree
properties instead, so we can now say that exynos_dwmmc_caps is only
used for backwards compatibility.

Signed-off-by: John Keeping <john@metanate.com>
---
 drivers/mmc/host/dw_mmc-exynos.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Jaehoon Chung Nov. 25, 2021, 11:38 p.m. UTC | #1
On 11/25/21 3:46 AM, John Keeping wrote:
> Move the common MMC_CAP_CMD23 capability to common_caps so that only the
> special case of MMC_CAP_1_8V_DDR and MMC_CAP_8_BIT_DATA are set via
> caps/num_caps.  Both of those can, and should, be set via device tree
> properties instead, so we can now say that exynos_dwmmc_caps is only
> used for backwards compatibility.
> 
> Signed-off-by: John Keeping <john@metanate.com>


Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Added minor comment..

> ---
>  drivers/mmc/host/dw_mmc-exynos.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
> index c2dd29ef45c6..f76eeeb0cc53 100644
> --- a/drivers/mmc/host/dw_mmc-exynos.c
> +++ b/drivers/mmc/host/dw_mmc-exynos.c
> @@ -526,15 +526,16 @@ static int dw_mci_exynos_prepare_hs400_tuning(struct dw_mci *host,
>  
>  /* Common capabilities of Exynos4/Exynos5 SoC */
>  static unsigned long exynos_dwmmc_caps[4] = {
> -	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA | MMC_CAP_CMD23,
> -	MMC_CAP_CMD23,
> -	MMC_CAP_CMD23,
> -	MMC_CAP_CMD23,
> +	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
> +	0,
> +	0,
> +	0,
>  };

It can be removed all things.

Best Regards,
Jaehoon Chung

>  
>  static const struct dw_mci_drv_data exynos_drv_data = {
>  	.caps			= exynos_dwmmc_caps,
>  	.num_caps		= ARRAY_SIZE(exynos_dwmmc_caps),
> +	.common_caps		= MMC_CAP_CMD23,
>  	.init			= dw_mci_exynos_priv_init,
>  	.set_ios		= dw_mci_exynos_set_ios,
>  	.parse_dt		= dw_mci_exynos_parse_dt,
>
John Keeping Nov. 26, 2021, 12:39 p.m. UTC | #2
On Fri, Nov 26, 2021 at 08:38:20AM +0900, Jaehoon Chung wrote:
> On 11/25/21 3:46 AM, John Keeping wrote:
> > Move the common MMC_CAP_CMD23 capability to common_caps so that only the
> > special case of MMC_CAP_1_8V_DDR and MMC_CAP_8_BIT_DATA are set via
> > caps/num_caps.  Both of those can, and should, be set via device tree
> > properties instead, so we can now say that exynos_dwmmc_caps is only
> > used for backwards compatibility.
> > 
> > Signed-off-by: John Keeping <john@metanate.com>
> 
> 
> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
> 
> Added minor comment..
> 
> > ---
> >  drivers/mmc/host/dw_mmc-exynos.c | 9 +++++----
> >  1 file changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
> > index c2dd29ef45c6..f76eeeb0cc53 100644
> > --- a/drivers/mmc/host/dw_mmc-exynos.c
> > +++ b/drivers/mmc/host/dw_mmc-exynos.c
> > @@ -526,15 +526,16 @@ static int dw_mci_exynos_prepare_hs400_tuning(struct dw_mci *host,
> >  
> >  /* Common capabilities of Exynos4/Exynos5 SoC */
> >  static unsigned long exynos_dwmmc_caps[4] = {
> > -	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA | MMC_CAP_CMD23,
> > -	MMC_CAP_CMD23,
> > -	MMC_CAP_CMD23,
> > -	MMC_CAP_CMD23,
> > +	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
> > +	0,
> > +	0,
> > +	0,
> >  };
> 
> It can be removed all things.

Do you mean that the MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA entries are
not needed at all?

I know those can be set via DT but I don't think any Exynos DTs are
currently using mmc-ddr-1_8v, so removing MMC_CAP_1_8V_DDR looks like a
change in behaviour.

MMC_CAP_8_BIT_DATA looks easier to remove, although
exynos4412-p4note.dtsi seems to set the incorrect bus-width for mshc_0
so there would be a change of behaviour on that platform from removing
this.

Maybe it makes sense to add a warning in dw_mci_init_slot_caps() if any
new caps are set by drv_data->caps[ctrl_id], to make it clear that this
is deprecated.


Regards,
John
diff mbox series

Patch

diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
index c2dd29ef45c6..f76eeeb0cc53 100644
--- a/drivers/mmc/host/dw_mmc-exynos.c
+++ b/drivers/mmc/host/dw_mmc-exynos.c
@@ -526,15 +526,16 @@  static int dw_mci_exynos_prepare_hs400_tuning(struct dw_mci *host,
 
 /* Common capabilities of Exynos4/Exynos5 SoC */
 static unsigned long exynos_dwmmc_caps[4] = {
-	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA | MMC_CAP_CMD23,
-	MMC_CAP_CMD23,
-	MMC_CAP_CMD23,
-	MMC_CAP_CMD23,
+	MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
+	0,
+	0,
+	0,
 };
 
 static const struct dw_mci_drv_data exynos_drv_data = {
 	.caps			= exynos_dwmmc_caps,
 	.num_caps		= ARRAY_SIZE(exynos_dwmmc_caps),
+	.common_caps		= MMC_CAP_CMD23,
 	.init			= dw_mci_exynos_priv_init,
 	.set_ios		= dw_mci_exynos_set_ios,
 	.parse_dt		= dw_mci_exynos_parse_dt,