aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch')
-rw-r--r--recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch54
1 files changed, 0 insertions, 54 deletions
diff --git a/recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch b/recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch
deleted file mode 100644
index 62f5739..0000000
--- a/recipes-kernel/linux/linux-yocto-3.14/tosa/0006-mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 9ea2f5228e594605dcc6253695c3d6d4b14532d0 Mon Sep 17 00:00:00 2001
-From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
-Date: Mon, 27 Jan 2014 16:59:31 +0400
-Subject: [PATCH 6/7] mfd: tc6393xb fail ohci suspend if full state restore is
- required
-
-Some boards with TC6393XB chip require full state restore during system
-resume thanks to chip's VCC being cut off during suspend (Sharp SL-6000
-tosa is one of them). Failing to do so would result in ohci Oops on
-resume due to internal memory contentes being changed. Fail ohci suspend
-on tc6393xb is full state restore is required.
-
-Recommended workaround is to unbind tmio-ohci driver before suspend and
-rebind it after resume.
-
-Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
----
- drivers/mfd/tc6393xb.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mfd/tc6393xb.c b/drivers/mfd/tc6393xb.c
-index 11c19e5..48579e5 100644
---- a/drivers/mfd/tc6393xb.c
-+++ b/drivers/mfd/tc6393xb.c
-@@ -263,6 +263,17 @@ static int tc6393xb_ohci_disable(struct platform_device *dev)
- return 0;
- }
-
-+static int tc6393xb_ohci_suspend(struct platform_device *dev)
-+{
-+ struct tc6393xb_platform_data *tcpd = dev_get_platdata(dev->dev.parent);
-+
-+ /* We can't properly store/restore OHCI state, so fail here */
-+ if (tcpd->resume_restore)
-+ return -EBUSY;
-+
-+ return tc6393xb_ohci_disable(dev);
-+}
-+
- static int tc6393xb_fb_enable(struct platform_device *dev)
- {
- struct tc6393xb *tc6393xb = dev_get_drvdata(dev->dev.parent);
-@@ -403,7 +414,7 @@ static struct mfd_cell tc6393xb_cells[] = {
- .num_resources = ARRAY_SIZE(tc6393xb_ohci_resources),
- .resources = tc6393xb_ohci_resources,
- .enable = tc6393xb_ohci_enable,
-- .suspend = tc6393xb_ohci_disable,
-+ .suspend = tc6393xb_ohci_suspend,
- .resume = tc6393xb_ohci_enable,
- .disable = tc6393xb_ohci_disable,
- },
---
-1.8.5.2
-