Hi, On 7 June 2017 at 22:03, <peter.ch...@data61.csiro.au> wrote: >>>>>> "Simon" == Simon Glass <s...@chromium.org> writes: > > Simon> The driver currently does not reset bit 5 of the hostctl > Simon> register even if the MMC stack requests it. Then means that > Simon> once a bus width of 8 is selected it is not possible to change > Simon> it back to 1. This breaks 'mmc rescan' which needs to start off > Simon> with a bus width of 1. > > Simon> The problem was surfaced by enabling CONFIG_DM_MMC_OPS on > Simon> tegra. Without this option the MMC stack fully reinits the > Simon> driver on a 'mmc rescan'. But with this option driver model > Simon> does not re-probe a driver once it has been probed once. > > Simon> Fix the driver to honour the request. > > Simon> Signed-off-by: Simon Glass <s...@chromium.org> --- > > Tested-by: Peter Chubb <peter.ch...@data61.csiro.au> > > Simon> drivers/mmc/tegra_mmc.c | 2 +- 1 file changed, 1 insertion(+), > Simon> 1 deletion(-) > > Simon> diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c > Simon> index 338e42b528..7d945a172e 100644 --- > Simon> a/drivers/mmc/tegra_mmc.c +++ b/drivers/mmc/tegra_mmc.c @@ > Simon> -438,7 +438,7 @@ static int tegra_mmc_set_ios(struct udevice > Simon> *dev) else if (mmc->bus_width == 4) ctrl |= (1 << 1); else - > Simon> ctrl &= ~(1 << 1); + ctrl &= ~(1 << 1 | 1 << 5); > > Simon> writeb(ctrl, &priv->reg->hostctl); debug("mmc_set_ios: > Simon> hostctl = %08X\n", ctrl); -- 2.13.0.506.g27d5fe0cd-goog
Thanks for testing this. Tom please note this is a bug fix. - Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot