kernel: bump 4.9 to 4.9.202
[oweals/openwrt.git] / target / linux / layerscape / patches-4.9 / 817-usb-support-layerscape.patch
index c1aff504753cab7ef7cb7e2a4faed1746afb470c..126829ad3b6e745cb3b0f6344e10ccafe70ec43c 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
 
 --- a/drivers/net/usb/cdc_ether.c
 +++ b/drivers/net/usb/cdc_ether.c
-@@ -533,6 +533,7 @@ static const struct driver_info wwan_inf
+@@ -540,6 +540,7 @@ static const struct driver_info wwan_inf
  #define LINKSYS_VENDOR_ID     0x13b1
  #define NVIDIA_VENDOR_ID      0x0955
  #define HP_VENDOR_ID          0x03f0
@@ -52,7 +52,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
  static const struct usb_device_id     products[] = {
  /* BLACKLIST !!
-@@ -742,6 +743,13 @@ static const struct usb_device_id produc
+@@ -749,6 +750,13 @@ static const struct usb_device_id produc
                        USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
        .driver_info = 0,
  },
@@ -76,7 +76,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
  #define MCU_TYPE_PLA                  0x0100
  #define MCU_TYPE_USB                  0x0000
-@@ -1817,6 +1818,10 @@ static int rx_bottom(struct r8152 *tp, i
+@@ -1820,6 +1821,10 @@ static int rx_bottom(struct r8152 *tp, i
                        unsigned int pkt_len;
                        struct sk_buff *skb;
  
@@ -87,7 +87,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                        pkt_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK;
                        if (pkt_len < ETH_ZLEN)
                                break;
-@@ -4513,6 +4518,7 @@ static struct usb_device_id rtl8152_tabl
+@@ -4516,6 +4521,7 @@ static struct usb_device_id rtl8152_tabl
        {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x304f)},
        {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)},
        {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA,  0x09ff)},
@@ -156,7 +156,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        int ret;
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -4443,6 +4443,14 @@ hub_port_init(struct usb_hub *hub, struc
+@@ -4454,6 +4454,14 @@ hub_port_init(struct usb_hub *hub, struc
        else
                speed = usb_speed_string(udev->speed);
  
@@ -206,19 +206,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                if (IS_ENABLED(CONFIG_USB_DWC3_HOST))
                        mode = USB_DR_MODE_HOST;
                else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
-@@ -227,8 +246,9 @@ static void dwc3_frame_length_adjustment
-       reg = dwc3_readl(dwc->regs, DWC3_GFLADJ);
-       dft = reg & DWC3_GFLADJ_30MHZ_MASK;
--      if (!dev_WARN_ONCE(dwc->dev, dft == dwc->fladj,
--          "request value same as default, ignoring\n")) {
-+      if (dft == dwc->fladj) {
-+              dev_warn(dwc->dev, "request value same as default, ignoring\n");
-+      } else {
-               reg &= ~DWC3_GFLADJ_30MHZ_MASK;
-               reg |= DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj;
-               dwc3_writel(dwc->regs, DWC3_GFLADJ, reg);
-@@ -599,6 +619,99 @@ static int dwc3_phy_setup(struct dwc3 *d
+@@ -598,6 +617,99 @@ static int dwc3_phy_setup(struct dwc3 *d
        return 0;
  }
  
@@ -318,7 +306,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  static void dwc3_core_exit(struct dwc3 *dwc)
  {
        dwc3_event_buffers_cleanup(dwc);
-@@ -741,6 +854,8 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -740,6 +852,8 @@ static int dwc3_core_init(struct dwc3 *d
        if (ret)
                goto err1;
  
@@ -327,7 +315,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        /* Adjust Frame Length */
        dwc3_frame_length_adjustment(dwc);
  
-@@ -939,11 +1054,117 @@ static void dwc3_core_exit_mode(struct d
+@@ -938,11 +1052,117 @@ static void dwc3_core_exit_mode(struct d
        }
  }
  
@@ -445,7 +433,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        struct resource         *res;
        struct dwc3             *dwc;
        u8                      lpm_nyet_threshold;
-@@ -975,6 +1196,11 @@ static int dwc3_probe(struct platform_de
+@@ -974,6 +1194,11 @@ static int dwc3_probe(struct platform_de
        dwc->xhci_resources[0].flags = res->flags;
        dwc->xhci_resources[0].name = res->name;
  
@@ -457,7 +445,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        res->start += DWC3_GLOBALS_REGS_START;
  
        /*
-@@ -1017,6 +1243,12 @@ static int dwc3_probe(struct platform_de
+@@ -1016,6 +1241,12 @@ static int dwc3_probe(struct platform_de
        dwc->usb3_lpm_capable = device_property_read_bool(dev,
                                "snps,usb3_lpm_capable");
  
@@ -470,7 +458,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        dwc->disable_scramble_quirk = device_property_read_bool(dev,
                                "snps,disable_scramble_quirk");
        dwc->u2exit_lfps_quirk = device_property_read_bool(dev,
-@@ -1061,6 +1293,8 @@ static int dwc3_probe(struct platform_de
+@@ -1060,6 +1291,8 @@ static int dwc3_probe(struct platform_de
        dwc->hird_threshold = hird_threshold
                | (dwc->is_utmi_l1_suspend << 4);
  
@@ -479,7 +467,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        platform_set_drvdata(pdev, dwc);
        dwc3_cache_hwparams(dwc);
  
-@@ -1084,6 +1318,11 @@ static int dwc3_probe(struct platform_de
+@@ -1083,6 +1316,11 @@ static int dwc3_probe(struct platform_de
        if (ret < 0)
                goto err1;
  
@@ -881,15 +869,6 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        /* DR has been stopped in usb_gadget_unregister_driver() */
        remove_proc_file();
  
-@@ -2570,7 +2580,7 @@ static int fsl_udc_remove(struct platfor
-       dma_pool_destroy(udc_controller->td_pool);
-       free_irq(udc_controller->irq, udc_controller);
-       iounmap(dr_regs);
--      if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
-+      if (res && (pdata->operating_mode == FSL_USB2_DR_DEVICE))
-               release_mem_region(res->start, resource_size(res));
-       /* free udc --wait for the release() finished */
 --- a/drivers/usb/gadget/udc/fsl_usb2_udc.h
 +++ b/drivers/usb/gadget/udc/fsl_usb2_udc.h
 @@ -20,6 +20,10 @@
@@ -1439,7 +1418,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -1855,14 +1855,17 @@ static int finish_td(struct xhci_hcd *xh
+@@ -1859,14 +1859,17 @@ static int finish_td(struct xhci_hcd *xh
        union xhci_trb *event_trb, struct xhci_transfer_event *event,
        struct xhci_virt_ep *ep, int *status, bool skip)
  {
@@ -1457,7 +1436,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        u32 trb_comp_code;
  
        slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags));
-@@ -1888,13 +1891,29 @@ static int finish_td(struct xhci_hcd *xh
+@@ -1892,13 +1895,29 @@ static int finish_td(struct xhci_hcd *xh
        if (trb_comp_code == COMP_STALL ||
                xhci_requires_manual_halt_cleanup(xhci, ep_ctx,
                                                trb_comp_code)) {
@@ -1494,7 +1473,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                while (ep_ring->dequeue != td->last_trb)
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1609,14 +1609,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
+@@ -1619,14 +1619,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
                        ret = -ENOMEM;
                        goto done;
                }
@@ -1710,7 +1689,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  #define BCSR5_INT_USB                 (0x02)
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -362,6 +362,7 @@ struct usb_bus {
+@@ -360,6 +360,7 @@ struct usb_bus {
                                         * for control transfers?
                                         */
        u8 otg_port;                    /* 0, or number of OTG/HNP port */