kernel: update 3.18 to 3.18.14
[openwrt.git] / target / linux / generic / patches-3.18 / 102-ehci_hcd_ignore_oc.patch
index de087d5..a564559 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
                    &ehci->regs->intr_enable); /* Turn On Interrupts */
 --- a/drivers/usb/host/ehci-hub.c
 +++ b/drivers/usb/host/ehci-hub.c
-@@ -632,7 +632,7 @@ ehci_hub_status_data (struct usb_hcd *hc
+@@ -635,7 +635,7 @@ ehci_hub_status_data (struct usb_hcd *hc
         * always set, seem to clear PORT_OCC and PORT_CSC when writing to
         * PORT_POWER; that's surprising, but maybe within-spec.
         */
@@ -40,7 +40,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
                mask = PORT_CSC | PORT_PEC | PORT_OCC;
        else
                mask = PORT_CSC | PORT_PEC;
-@@ -992,7 +992,7 @@ int ehci_hub_control(
+@@ -995,7 +995,7 @@ int ehci_hub_control(
                if (temp & PORT_PEC)
                        status |= USB_PORT_STAT_C_ENABLE << 16;
  
@@ -51,14 +51,15 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
                        /*
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -57,6 +57,7 @@ static int ehci_platform_reset(struct us
+@@ -226,6 +226,8 @@ static int ehci_platform_probe(struct pl
+               ehci->big_endian_desc = 1;
+       if (pdata->big_endian_mmio)
+               ehci->big_endian_mmio = 1;
++      if (pdata->ignore_oc)
++              ehci->ignore_oc = 1;
  
-       hcd->has_tt = pdata->has_tt;
-       ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug;
-+      ehci->ignore_oc = pdata->ignore_oc;
-       if (pdata->pre_setup) {
-               retval = pdata->pre_setup(hcd);
+ #ifndef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO
+       if (ehci->big_endian_mmio) {
 --- a/drivers/usb/host/ehci.h
 +++ b/drivers/usb/host/ehci.h
 @@ -226,6 +226,7 @@ struct ehci_hcd {                  /* one per controlle