2023-02-03 20:47:00

by Henrik Grimler

[permalink] [raw]
Subject: [PATCH 0/2] arm64: dts: add mmc aliases for Exynos devicse

It is convenient to have fixed mmcblk numbering of the eMMC and sdcard
so that assigned numbers will not change from boot-to-boot or
depending on if storage devices are actually attached or not.

Also remove mshc aliases, as they should not be needed after [1].

This is the same patchset for exynos arm devices was sent recently
[2].

[1] https://lkml.kernel.org/lkml/[email protected]
[2] https://lore.kernel.org/all/[email protected]

Henrik Grimler (2):
arm64: dts: exynos: drop mshc aliases
arm64: dts: exynos: add mmc aliases

arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 4 ++--
arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 4 ++--
arch/arm64/boot/dts/exynos/exynos7885-jackpotlte.dts | 1 +
3 files changed, 5 insertions(+), 4 deletions(-)


base-commit: 28dd277e54ebb499bc59c166078596767bbbbdd7
--
2.39.1



2023-02-03 20:47:04

by Henrik Grimler

[permalink] [raw]
Subject: [PATCH 1/2] arm64: dts: exynos: drop mshc aliases

They are no longer needed after commit a13e8ef6008d ("mmc: dw_mmc:
exynos: use common_caps").

Signed-off-by: Henrik Grimler <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 --
arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 2 --
2 files changed, 4 deletions(-)

diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
index f54f30633417..c895b70b3cec 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -40,8 +40,6 @@ aliases {
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
- mshc0 = &mshc_0;
- mshc2 = &mshc_2;
};

chosen {
diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
index f3f4a6ab4b49..686f0923a4a7 100644
--- a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
+++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
@@ -18,8 +18,6 @@ / {

aliases {
serial0 = &serial_2;
- mshc0 = &mmc_0;
- mshc2 = &mmc_2;
};

chosen {
--
2.39.1


2023-02-04 11:43:20

by David Virag

[permalink] [raw]
Subject: Re: [PATCH 1/2] arm64: dts: exynos: drop mshc aliases

On Fri, 2023-02-03 at 21:39 +0100, Henrik Grimler wrote:
> They are no longer needed after commit a13e8ef6008d ("mmc: dw_mmc:
> exynos: use common_caps").
>
> Signed-off-by: Henrik Grimler <[email protected]>
> ---
>  arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 --
>  arch/arm64/boot/dts/exynos/exynos7-espresso.dts       | 2 --
>  2 files changed, 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
> b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
> index f54f30633417..c895b70b3cec 100644
> --- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
> +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
> @@ -40,8 +40,6 @@ aliases {
>                 spi2 = &spi_2;
>                 spi3 = &spi_3;
>                 spi4 = &spi_4;
> -               mshc0 = &mshc_0;
> -               mshc2 = &mshc_2;
>         };
>  
>         chosen {
> diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
> b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
> index f3f4a6ab4b49..686f0923a4a7 100644
> --- a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
> +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
> @@ -18,8 +18,6 @@ / {
>  
>         aliases {
>                 serial0 = &serial_2;
> -               mshc0 = &mmc_0;
> -               mshc2 = &mmc_2;
>         };
>  
>         chosen {

In dw_mmc-exynos.c, there's a caps array specified like this:

/* Common capabilities of Exynos4/Exynos5 SoC */
static unsigned long exynos_dwmmc_caps[4] = {
MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
0,
0,
0,
};

As I understand these capabilities are added to the mmc controllers
based on mshc alias id. Shouldn't these capabilities be moved to
device-tree before removing these aliases? This also applies to the
32bit arm patch. If I understand correctly, removing these aliases
without adding the capabilities to dt removes the capability
"MMC_CAP_1_8V_DDR" and "MMC_CAP_8_BIT_DATA" from mshc_0/mmc_0.

Best regards,
David

2023-02-04 12:45:28

by David Virag

[permalink] [raw]
Subject: Re: [PATCH 1/2] arm64: dts: exynos: drop mshc aliases

On Sat, 2023-02-04 at 12:43 +0100, David Virag wrote:
> On Fri, 2023-02-03 at 21:39 +0100, Henrik Grimler wrote:
> > They are no longer needed after commit a13e8ef6008d ("mmc: dw_mmc:
> > exynos: use common_caps").
> >
> > Signed-off-by: Henrik Grimler <[email protected]>
> > ---
> >  arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 --
> >  arch/arm64/boot/dts/exynos/exynos7-espresso.dts       | 2 --
> >  2 files changed, 4 deletions(-)
[...]
> In dw_mmc-exynos.c, there's a caps array specified like this:
>
> /* Common capabilities of Exynos4/Exynos5 SoC */
> static unsigned long exynos_dwmmc_caps[4] = {
>         MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
>         0,
>         0,
>         0,
> };
>
> As I understand these capabilities are added to the mmc controllers
> based on mshc alias id. Shouldn't these capabilities be moved to
> device-tree before removing these aliases? This also applies to the
> 32bit arm patch. If I understand correctly, removing these aliases
> without adding the capabilities to dt removes the capability
> "MMC_CAP_1_8V_DDR" and "MMC_CAP_8_BIT_DATA" from mshc_0/mmc_0.

Actually, it defaults to 0, so these capabilities will be added to all
mmc nodes, not just those with mshc0 alias. That may cause problems.


Best regards,
David

2023-02-04 16:27:32

by Henrik Grimler

[permalink] [raw]
Subject: Re: [PATCH 1/2] arm64: dts: exynos: drop mshc aliases

Hi David,

On Sat, Feb 04, 2023 at 01:45:15PM +0100, David Virag wrote:
> On Sat, 2023-02-04 at 12:43 +0100, David Virag wrote:
> > On Fri, 2023-02-03 at 21:39 +0100, Henrik Grimler wrote:
> > > They are no longer needed after commit a13e8ef6008d ("mmc: dw_mmc:
> > > exynos: use common_caps").
> > >
> > > Signed-off-by: Henrik Grimler <[email protected]>
> > > ---
> > > ?arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 --
> > > ?arch/arm64/boot/dts/exynos/exynos7-espresso.dts?????? | 2 --
> > > ?2 files changed, 4 deletions(-)
> [...]
> > In dw_mmc-exynos.c, there's a caps array specified like this:
> >
> > /* Common capabilities of Exynos4/Exynos5 SoC */
> > static unsigned long exynos_dwmmc_caps[4] = {
> > ????????MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA,
> > ????????0,
> > ????????0,
> > ????????0,
> > };
> >
> > As I understand these capabilities are added to the mmc controllers
> > based on mshc alias id. Shouldn't these capabilities be moved to
> > device-tree before removing these aliases? This also applies to the
> > 32bit arm patch. If I understand correctly, removing these aliases
> > without adding the capabilities to dt removes the capability
> > "MMC_CAP_1_8V_DDR" and "MMC_CAP_8_BIT_DATA" from mshc_0/mmc_0.

Thanks for pointing this out (I should have seen it already), will
send a new version to update device trees and remove the need for
those mshc alias based capabilities.

> Actually, it defaults to 0, so these capabilities will be added to all
> mmc nodes, not just those with mshc0 alias. That may cause problems.

I think I see what you mean: ctrl_id will be set to 0 if mshc alias is
missing, and then caps is set as
mmc->caps |= drv_data->caps[ctrl_id];
where
drv_data->caps[0] = MMC_CAP_1_8V_DDR | MMC_CAP_8_BIT_DATA

Should be fixed in next version of patchset then in any case, maybe it
deserves a "Fixes:" tag as well, will have a look in git history if
there is a particular commit that introduced this situation.

> Best regards,
> David

Best regards,
Henrik Grimler