ipq806x: update target to v3.18
[openwrt/svn-archive/archive.git] / target / linux / ipq806x / patches / 0118-ata-ahci_platform-runtime-resume-the-device-before-u.patch
diff --git a/target/linux/ipq806x/patches/0118-ata-ahci_platform-runtime-resume-the-device-before-u.patch b/target/linux/ipq806x/patches/0118-ata-ahci_platform-runtime-resume-the-device-before-u.patch
deleted file mode 100644 (file)
index 6603bb9..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From abe309ab531f22b9b89329bd825606f6b68a95a1 Mon Sep 17 00:00:00 2001
-From: Roger Quadros <rogerq@ti.com>
-Date: Sat, 22 Feb 2014 16:53:41 +0100
-Subject: [PATCH 118/182] ata: ahci_platform: runtime resume the device before
- use
-
-On OMAP platforms the device needs to be runtime resumed before it can
-be accessed. The OMAP HWMOD framework takes care of enabling the
-module and its resources based on the device's runtime PM state.
-
-In this patch we runtime resume during .probe() and runtime suspend
-after .remove().
-
-We also update the runtime PM state during .resume().
-
-CC: Balaji T K <balajitk@ti.com>
-Signed-off-by: Roger Quadros <rogerq@ti.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Tejun Heo <tj@kernel.org>
----
- drivers/ata/ahci.h          |    1 +
- drivers/ata/ahci_platform.c |   15 +++++++++++++++
- 2 files changed, 16 insertions(+)
-
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -325,6 +325,7 @@ struct ahci_host_priv {
-       u32                     em_loc; /* enclosure management location */
-       u32                     em_buf_sz;      /* EM buffer size in byte */
-       u32                     em_msg_type;    /* EM message type */
-+      bool                    got_runtime_pm; /* Did we do pm_runtime_get? */
-       struct clk              *clks[AHCI_MAX_CLKS]; /* Optional */
-       struct regulator        *target_pwr;    /* Optional */
-       struct phy              *phy;           /* If platform uses phy */
---- a/drivers/ata/ahci_platform.c
-+++ b/drivers/ata/ahci_platform.c
-@@ -23,6 +23,7 @@
- #include <linux/libata.h>
- #include <linux/ahci_platform.h>
- #include <linux/phy/phy.h>
-+#include <linux/pm_runtime.h>
- #include "ahci.h"
- static void ahci_host_stop(struct ata_host *host);
-@@ -216,6 +217,11 @@ static void ahci_platform_put_resources(
-       struct ahci_host_priv *hpriv = res;
-       int c;
-+      if (hpriv->got_runtime_pm) {
-+              pm_runtime_put_sync(dev);
-+              pm_runtime_disable(dev);
-+      }
-+
-       for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++)
-               clk_put(hpriv->clks[c]);
- }
-@@ -309,6 +315,10 @@ struct ahci_host_priv *ahci_platform_get
-               }
-       }
-+      pm_runtime_enable(dev);
-+      pm_runtime_get_sync(dev);
-+      hpriv->got_runtime_pm = true;
-+
-       devres_remove_group(dev, NULL);
-       return hpriv;
-@@ -603,6 +613,11 @@ int ahci_platform_resume(struct device *
-       if (rc)
-               goto disable_resources;
-+      /* We resumed so update PM runtime state */
-+      pm_runtime_disable(dev);
-+      pm_runtime_set_active(dev);
-+      pm_runtime_enable(dev);
-+
-       return 0;
- disable_resources: