Re: [PATCH 2/2] mmc: dw_mmc: use standard "mmc" alias stem

From: Jaehoon Chung
Date: Wed Nov 24 2021 - 04:53:40 EST


On 11/24/21 4:34 AM, Ulf Hansson wrote:
> On Tue, 16 Nov 2021 at 20:02, John Keeping <john@xxxxxxxxxxxx> wrote:
>>
>> The standard stem for MMC aliases is "mmc" and this is used by the MMC
>> core to set the slot index.
>
> This isn't the correct description of the mmc aliases. The below text
> is copied from the DT doc:
>
> "It is possible to assign a fixed index mmcN to an MMC host controller
> (and the corresponding mmcblkN devices) by defining an alias in the
> /aliases device tree node."
>
>>
>> Use this in preference to the non-standard "mshc" stem when setting the
>> controller ID to avoid needing two aliases for each MMC device in order
>> to cover both the core and dw_mmc-specific functionality.
>>
>> The old "mshc" lookup is kept for backwards compatibility.
>
> The mshc alias is really weird!
>
> It looks like some leftover from when the dw_mmc controller supported
> multiple slots. This support was dropped a long time ago, simply
> because it never really worked - and it was not worth trying to. Only
> one slot per controller is supported.

As Ulf mentioned, dw_mmc controller can be supported multiple slot.
But I didn't see its case to use multiple slot. And I had been done to drop a long time ago.

mshc was used because of Mobile Storage Host Controller.

>
> Rather than re-using the mmc alias in the same weird way as the mshc
> alias, I suggest we try to remove parsing of the mshc aliases
> completely. By looking at the corresponding code and in combination
> with the DTS files, it certainly looks doable to me. Do you want to
> have a look at it?

If possible to remove mshc, it's best.
I will check that removing mshc parsing in dw_mmc.c.

Best Regards,
Jaehoon Chung

>
> Additionally, there is no need to deprecate the mshc alias binding, as
> it seems like it has never been documented. :-)
>
> Kind regards
> Uffe
>
>>
>> Signed-off-by: John Keeping <john@xxxxxxxxxxxx>
>> ---
>> drivers/mmc/host/dw_mmc.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index 37af1245304b..6ffaa354410a 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -112,7 +112,11 @@ int dw_mci_of_alias_get_id(struct dw_mci *host)
>> if (WARN_ON(!host->dev->of_node))
>> return 0;
>>
>> - ctrl_id = of_alias_get_id(host->dev->of_node, "mshc");
>> + ctrl_id = of_alias_get_id(host->dev->of_node, "mmc");
>> +
>> + /* Compatibility fallback for old device trees. */
>> + if (ctrl_id < 0)
>> + ctrl_id = of_alias_get_id(host->dev->of_node, "mshc");
>>
>> if (ctrl_id < 0)
>> ctrl_id = 0;
>> --
>> 2.34.0
>>
>