]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 5.3
authorSasha Levin <sashal@kernel.org>
Fri, 8 Nov 2019 00:08:57 +0000 (19:08 -0500)
committerSasha Levin <sashal@kernel.org>
Fri, 8 Nov 2019 00:08:57 +0000 (19:08 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.3/ata-libahci_platform-fix-regulator_get_optional-misu.patch [deleted file]
queue-5.3/series

diff --git a/queue-5.3/ata-libahci_platform-fix-regulator_get_optional-misu.patch b/queue-5.3/ata-libahci_platform-fix-regulator_get_optional-misu.patch
deleted file mode 100644 (file)
index 5d2054b..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-From aaf306c5945100fc0f02ad0aa877c499a92f83d4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 16 Oct 2019 11:51:05 +0100
-Subject: ata: libahci_platform: Fix regulator_get_optional() misuse
-
-From: Mark Brown <broonie@kernel.org>
-
-[ Upstream commit 962399bb7fbf5ce0c5b768ca7115614f31ff8f3f ]
-
-This driver is using regulator_get_optional() to handle all the supplies
-that it handles, and only ever enables and disables all supplies en masse
-without ever doing any other configuration of the device to handle missing
-power. These are clear signs that the API is being misused - it should only
-be used for supplies that may be physically absent from the system and in
-these cases the hardware usually needs different configuration if the
-supply is missing. Instead use normal regualtor_get(), if the supply is
-not described in DT then the framework will substitute a dummy regulator in
-so no special handling is needed by the consumer driver.
-
-In the case of the PHY regulator the handling in the driver is a hack to
-deal with integrated PHYs; the supplies are only optional in the sense
-that that there's some confusion in the code about where they're bound to.
-From a code point of view they function exactly as normal supplies so can
-be treated as such. It'd probably be better to model this by instantiating
-a PHY object for integrated PHYs.
-
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libahci_platform.c | 38 +++++++++++++---------------------
- 1 file changed, 14 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
-index 9e9583a6bba99..57882b3e46eb4 100644
---- a/drivers/ata/libahci_platform.c
-+++ b/drivers/ata/libahci_platform.c
-@@ -153,17 +153,13 @@ int ahci_platform_enable_regulators(struct ahci_host_priv *hpriv)
- {
-       int rc, i;
--      if (hpriv->ahci_regulator) {
--              rc = regulator_enable(hpriv->ahci_regulator);
--              if (rc)
--                      return rc;
--      }
-+      rc = regulator_enable(hpriv->ahci_regulator);
-+      if (rc)
-+              return rc;
--      if (hpriv->phy_regulator) {
--              rc = regulator_enable(hpriv->phy_regulator);
--              if (rc)
--                      goto disable_ahci_pwrs;
--      }
-+      rc = regulator_enable(hpriv->phy_regulator);
-+      if (rc)
-+              goto disable_ahci_pwrs;
-       for (i = 0; i < hpriv->nports; i++) {
-               if (!hpriv->target_pwrs[i])
-@@ -181,11 +177,9 @@ int ahci_platform_enable_regulators(struct ahci_host_priv *hpriv)
-               if (hpriv->target_pwrs[i])
-                       regulator_disable(hpriv->target_pwrs[i]);
--      if (hpriv->phy_regulator)
--              regulator_disable(hpriv->phy_regulator);
-+      regulator_disable(hpriv->phy_regulator);
- disable_ahci_pwrs:
--      if (hpriv->ahci_regulator)
--              regulator_disable(hpriv->ahci_regulator);
-+      regulator_disable(hpriv->ahci_regulator);
-       return rc;
- }
- EXPORT_SYMBOL_GPL(ahci_platform_enable_regulators);
-@@ -207,10 +201,8 @@ void ahci_platform_disable_regulators(struct ahci_host_priv *hpriv)
-               regulator_disable(hpriv->target_pwrs[i]);
-       }
--      if (hpriv->ahci_regulator)
--              regulator_disable(hpriv->ahci_regulator);
--      if (hpriv->phy_regulator)
--              regulator_disable(hpriv->phy_regulator);
-+      regulator_disable(hpriv->ahci_regulator);
-+      regulator_disable(hpriv->phy_regulator);
- }
- EXPORT_SYMBOL_GPL(ahci_platform_disable_regulators);
- /**
-@@ -359,7 +351,7 @@ static int ahci_platform_get_regulator(struct ahci_host_priv *hpriv, u32 port,
-       struct regulator *target_pwr;
-       int rc = 0;
--      target_pwr = regulator_get_optional(dev, "target");
-+      target_pwr = regulator_get(dev, "target");
-       if (!IS_ERR(target_pwr))
-               hpriv->target_pwrs[port] = target_pwr;
-@@ -436,16 +428,14 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
-               hpriv->clks[i] = clk;
-       }
--      hpriv->ahci_regulator = devm_regulator_get_optional(dev, "ahci");
-+      hpriv->ahci_regulator = devm_regulator_get(dev, "ahci");
-       if (IS_ERR(hpriv->ahci_regulator)) {
-               rc = PTR_ERR(hpriv->ahci_regulator);
--              if (rc == -EPROBE_DEFER)
-+              if (rc != 0)
-                       goto err_out;
--              rc = 0;
--              hpriv->ahci_regulator = NULL;
-       }
--      hpriv->phy_regulator = devm_regulator_get_optional(dev, "phy");
-+      hpriv->phy_regulator = devm_regulator_get(dev, "phy");
-       if (IS_ERR(hpriv->phy_regulator)) {
-               rc = PTR_ERR(hpriv->phy_regulator);
-               if (rc == -EPROBE_DEFER)
--- 
-2.20.1
-
index f3c4928658a576727b6137138b581de1a83e6579..0f2243ce1f71c6577878c3fd7b74c633c6aa12ab 100644 (file)
@@ -76,7 +76,6 @@ cifs-fix-cifsinodeinfo-lock_sem-deadlock-when-reconn.patch
 irqchip-sifive-plic-skip-contexts-except-supervisor-.patch
 nbd-protect-cmd-status-with-cmd-lock.patch
 nbd-handle-racing-with-error-ed-out-commands.patch
-ata-libahci_platform-fix-regulator_get_optional-misu.patch
 cxgb4-fix-panic-when-attaching-to-uld-fail.patch
 cxgb4-request-the-tx-cidx-updates-to-status-page.patch
 dccp-do-not-leak-jiffies-on-the-wire.patch