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 >> >