diff options
Diffstat (limited to 'target/linux/sunxi/patches-3.13/180-4-usb-ehci-platform-support-bigendian.patch')
-rw-r--r-- | target/linux/sunxi/patches-3.13/180-4-usb-ehci-platform-support-bigendian.patch | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/target/linux/sunxi/patches-3.13/180-4-usb-ehci-platform-support-bigendian.patch b/target/linux/sunxi/patches-3.13/180-4-usb-ehci-platform-support-bigendian.patch deleted file mode 100644 index 5f70434..0000000 --- a/target/linux/sunxi/patches-3.13/180-4-usb-ehci-platform-support-bigendian.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 57b5e74a0d7ba5dbf77ee05a2693635faba5fe30 Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Tue, 21 Jan 2014 16:20:53 +0100 -Subject: [PATCH] ehci-platform: Add support for controllers with big-endian - regs / descriptors - -This uses the already documented devicetree booleans for this, see: -Documentation/devicetree/bindings/usb/usb-ehci.txt - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - drivers/usb/host/ehci-platform.c | 33 +++++++++++++++++++++++++++++++-- - 1 file changed, 31 insertions(+), 2 deletions(-) - -diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c -index 5ebd0b7..8fde649 100644 ---- a/drivers/usb/host/ehci-platform.c -+++ b/drivers/usb/host/ehci-platform.c -@@ -55,8 +55,10 @@ static int ehci_platform_reset(struct usb_hcd *hcd) - - hcd->has_tt = pdata->has_tt; - ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug; -- ehci->big_endian_desc = pdata->big_endian_desc; -- ehci->big_endian_mmio = pdata->big_endian_mmio; -+ if (pdata->big_endian_desc) -+ ehci->big_endian_desc = 1; -+ if (pdata->big_endian_mmio) -+ ehci->big_endian_mmio = 1; - ehci->ignore_oc = pdata->ignore_oc; - - if (pdata->pre_setup) { -@@ -142,6 +144,7 @@ static int ehci_platform_probe(struct platform_device *dev) - struct resource *res_mem; - struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev); - struct ehci_platform_priv *priv; -+ struct ehci_hcd *ehci; - int err, irq, clk = 0; - - if (usb_disabled()) -@@ -177,8 +180,34 @@ static int ehci_platform_probe(struct platform_device *dev) - platform_set_drvdata(dev, hcd); - dev->dev.platform_data = pdata; - priv = hcd_to_ehci_priv(hcd); -+ ehci = hcd_to_ehci(hcd); - - if (pdata == &ehci_platform_defaults && dev->dev.of_node) { -+ if (of_property_read_bool(dev->dev.of_node, "big-endian-regs")) -+ ehci->big_endian_mmio = 1; -+ -+ if (of_property_read_bool(dev->dev.of_node, "big-endian-desc")) -+ ehci->big_endian_desc = 1; -+ -+ if (of_property_read_bool(dev->dev.of_node, "big-endian")) -+ ehci->big_endian_mmio = ehci->big_endian_desc = 1; -+ -+#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO -+ if (ehci->big_endian_mmio) { -+ dev_err(&dev->dev, -+ "Error big-endian-regs not compiled in\n"); -+ err = -EINVAL; -+ goto err_put_hcd; -+ } -+#endif -+#ifndef CONFIG_USB_EHCI_BIG_ENDIAN_DESC -+ if (ehci->big_endian_desc) { -+ dev_err(&dev->dev, -+ "Error big-endian-desc not compiled in\n"); -+ err = -EINVAL; -+ goto err_put_hcd; -+ } -+#endif - priv->phy = devm_phy_get(&dev->dev, "usb"); - if (IS_ERR(priv->phy)) { - err = PTR_ERR(priv->phy); --- -1.8.5.5 - |