diff options
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.patch | 54 |
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 - |