]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mmc: meson-gx: add device reset
authorJerome Brunet <jbrunet@baylibre.com>
Tue, 15 May 2018 09:57:48 +0000 (11:57 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 21 May 2018 08:50:45 +0000 (10:50 +0200)
Trigger the reset line of the mmc controller while probing, if available.
The reset should be optional for now, at least until all related DT nodes
have the reset property.

Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/meson-gx-mmc.c

index 55bbd67177dffa1b844e6d03cc395260c23725d2..c201c378537e4f1a8a601e8d857481a7e6af9f0c 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/regulator/consumer.h>
+#include <linux/reset.h>
 #include <linux/interrupt.h>
 #include <linux/bitfield.h>
 #include <linux/pinctrl/consumer.h>
@@ -1212,6 +1213,14 @@ static int meson_mmc_probe(struct platform_device *pdev)
                goto free_host;
        }
 
+       ret = device_reset_optional(&pdev->dev);
+       if (ret) {
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "device reset failed: %d\n", ret);
+
+               return ret;
+       }
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        host->regs = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(host->regs)) {