On Mon, 8 Jun 2020 at 12:30, Yue Hu <zbestahu@xxxxxxxxx> wrote: > > From: Yue Hu <huyue2@xxxxxxxxxx> > > If the card type is SD combo(MMC_TYPE_SD_COMBO) and the memory part does > not support wider bus(SD_SCR_BUS_WIDTH_4), nothing will be done except > return 0. However, we should check whether IO part support wider bus or > not. We should use available IO ability if supported. > > In addition, there's a duplicated check to MMC_CAP_4_BIT_DATA since > sdio_enable_wide() will include that check. And we can also save one > call site to sdio_enable_wide() after this change. > > Change-Id: Iaeb31fba4050ec9d248c415bef6696d38332afe6 Dropping this. > Signed-off-by: Yue Hu <huyue2@xxxxxxxxxx> Applied for next, thanks! Kind regards Uffe > --- > v2: commit message changed. > > drivers/mmc/core/sdio.c | 26 ++++++++++++-------------- > 1 file changed, 12 insertions(+), 14 deletions(-) > > diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c > index 1e42c6b..59f197d 100644 > --- a/drivers/mmc/core/sdio.c > +++ b/drivers/mmc/core/sdio.c > @@ -367,25 +367,23 @@ static int sdio_enable_4bit_bus(struct mmc_card *card) > { > int err; > > + err = sdio_enable_wide(card); > + if (err <= 0) > + return err; > if (card->type == MMC_TYPE_SDIO) > - err = sdio_enable_wide(card); > - else if ((card->host->caps & MMC_CAP_4_BIT_DATA) && > - (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4)) { > + goto out; > + > + if (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4) { > err = mmc_app_set_bus_width(card, MMC_BUS_WIDTH_4); > - if (err) > + if (err) { > + sdio_disable_wide(card); > return err; > - err = sdio_enable_wide(card); > - if (err <= 0) > - mmc_app_set_bus_width(card, MMC_BUS_WIDTH_1); > - } else > - return 0; > - > - if (err > 0) { > - mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4); > - err = 0; > + } > } > +out: > + mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4); > > - return err; > + return 0; > } > > > -- > 1.9.1 >