aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch')
-rw-r--r--target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch b/target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch
new file mode 100644
index 0000000000..862cb64909
--- /dev/null
+++ b/target/linux/gemini/patches-4.14/0028-usb-host-fotg2-add-device-tree-probing.patch
@@ -0,0 +1,61 @@
+From 5662c553e89ac4179ec2a7a94a342ba3e5d78cf7 Mon Sep 17 00:00:00 2001
+From: Hans Ulli Kroll <ulli.kroll@googlemail.com>
+Date: Thu, 9 Feb 2017 15:20:49 +0100
+Subject: [PATCH 28/31] usb: host: fotg2: add device tree probing
+
+Add device tree probing to the fotg2 driver.
+
+Signed-off-by: Hans Ulli Kroll <ulli.kroll@googlemail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ChangeLog v2->v3:
+- Change compatible to "faraday,fotg210" simply.
+---
+ drivers/usb/host/fotg210-hcd.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+--- a/drivers/usb/host/fotg210-hcd.c
++++ b/drivers/usb/host/fotg210-hcd.c
+@@ -23,6 +23,7 @@
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ #include <linux/module.h>
++#include <linux/of.h>
+ #include <linux/device.h>
+ #include <linux/dmapool.h>
+ #include <linux/kernel.h>
+@@ -5600,6 +5601,15 @@ static int fotg210_hcd_probe(struct plat
+ if (usb_disabled())
+ return -ENODEV;
+
++ /* Right now device-tree probed devices don't get dma_mask set.
++ * Since shared usb code relies on it, set it here for now.
++ * Once we have dma capability bindings this can go away.
++ */
++
++ retval = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
++ if (retval)
++ goto fail_create_hcd;
++
+ pdev->dev.power.power_state = PMSG_ON;
+
+ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+@@ -5676,9 +5686,18 @@ static int fotg210_hcd_remove(struct pla
+ return 0;
+ }
+
++#ifdef CONFIG_OF
++static const struct of_device_id fotg210_of_match[] = {
++ { .compatible = "faraday,fotg210" },
++ {},
++};
++MODULE_DEVICE_TABLE(of, fotg210_of_match);
++#endif
++
+ static struct platform_driver fotg210_hcd_driver = {
+ .driver = {
+ .name = "fotg210-hcd",
++ .of_match_table = of_match_ptr(fotg210_of_match),
+ },
+ .probe = fotg210_hcd_probe,
+ .remove = fotg210_hcd_remove,