mmc: sunxi: Reset the device at probe time
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Fri, 25 Aug 2017 09:49:53 +0000 (11:49 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 30 Aug 2017 13:03:52 +0000 (15:03 +0200)
We might be into some troubles if the bootloader misconfigured the MMC
controller.

We currently only de-assert the reset line at probe time, which means that
if the device was already out of reset, we're going to keep whatever state
was set already.

Switch to a reset instead of the deassert to have a device in a pristine
state when we start operating.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sunxi-mmc.c

index da5f46a..53c970f 100644 (file)
@@ -1242,7 +1242,7 @@ static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host,
        }
 
        if (!IS_ERR(host->reset)) {
-               ret = reset_control_deassert(host->reset);
+               ret = reset_control_reset(host->reset);
                if (ret) {
                        dev_err(&pdev->dev, "reset err %d\n", ret);
                        goto error_disable_clk_sample;