kernel: bump 4.9 to 4.9.106 for 18.06
[openwrt/openwrt.git] / target / linux / layerscape / patches-4.9 / 817-usb-support-layerscape.patch
index f8917291ee2517879ec85f0110dd596e457cc866..3ec91b4982022541d1c9a97bc3bf6db20f2b55ca 100644 (file)
@@ -206,7 +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))
-@@ -213,8 +232,9 @@ static void dwc3_frame_length_adjustment
+@@ -227,8 +246,9 @@ static void dwc3_frame_length_adjustment
  
        reg = dwc3_readl(dwc->regs, DWC3_GFLADJ);
        dft = reg & DWC3_GFLADJ_30MHZ_MASK;
@@ -218,7 +218,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                reg &= ~DWC3_GFLADJ_30MHZ_MASK;
                reg |= DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj;
                dwc3_writel(dwc->regs, DWC3_GFLADJ, reg);
-@@ -585,6 +605,99 @@ static int dwc3_phy_setup(struct dwc3 *d
+@@ -599,6 +619,99 @@ static int dwc3_phy_setup(struct dwc3 *d
        return 0;
  }
  
@@ -318,7 +318,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  static void dwc3_core_exit(struct dwc3 *dwc)
  {
        dwc3_event_buffers_cleanup(dwc);
-@@ -727,6 +840,8 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -741,6 +854,8 @@ static int dwc3_core_init(struct dwc3 *d
        if (ret)
                goto err1;
  
@@ -327,7 +327,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        /* Adjust Frame Length */
        dwc3_frame_length_adjustment(dwc);
  
-@@ -925,11 +1040,117 @@ static void dwc3_core_exit_mode(struct d
+@@ -939,11 +1054,117 @@ static void dwc3_core_exit_mode(struct d
        }
  }
  
@@ -445,7 +445,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        struct resource         *res;
        struct dwc3             *dwc;
        u8                      lpm_nyet_threshold;
-@@ -961,6 +1182,11 @@ static int dwc3_probe(struct platform_de
+@@ -975,6 +1196,11 @@ static int dwc3_probe(struct platform_de
        dwc->xhci_resources[0].flags = res->flags;
        dwc->xhci_resources[0].name = res->name;
  
@@ -457,7 +457,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        res->start += DWC3_GLOBALS_REGS_START;
  
        /*
-@@ -1003,6 +1229,12 @@ static int dwc3_probe(struct platform_de
+@@ -1017,6 +1243,12 @@ static int dwc3_probe(struct platform_de
        dwc->usb3_lpm_capable = device_property_read_bool(dev,
                                "snps,usb3_lpm_capable");
  
@@ -470,7 +470,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,
-@@ -1047,6 +1279,8 @@ static int dwc3_probe(struct platform_de
+@@ -1061,6 +1293,8 @@ static int dwc3_probe(struct platform_de
        dwc->hird_threshold = hird_threshold
                | (dwc->is_utmi_l1_suspend << 4);
  
@@ -479,7 +479,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        platform_set_drvdata(pdev, dwc);
        dwc3_cache_hwparams(dwc);
  
-@@ -1070,6 +1304,11 @@ static int dwc3_probe(struct platform_de
+@@ -1084,6 +1318,11 @@ static int dwc3_probe(struct platform_de
        if (ret < 0)
                goto err1;
  
@@ -542,7 +542,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  #define DWC3_GCTL_PRTCAP(n)   (((n) & (3 << 12)) >> 12)
  #define DWC3_GCTL_PRTCAPDIR(n)        ((n) << 12)
  #define DWC3_GCTL_PRTCAP_HOST 1
-@@ -292,6 +318,10 @@
+@@ -294,6 +320,10 @@
  /* Global Frame Length Adjustment Register */
  #define DWC3_GFLADJ_30MHZ_SDBND_SEL           (1 << 7)
  #define DWC3_GFLADJ_30MHZ_MASK                        0x3f
@@ -553,7 +553,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
  /* Global User Control Register 2 */
  #define DWC3_GUCTL2_RST_ACTBITLATER           (1 << 14)
-@@ -756,6 +786,7 @@ struct dwc3_scratchpad_array {
+@@ -758,6 +788,7 @@ struct dwc3_scratchpad_array {
   * @regs: base address for our registers
   * @regs_size: address space size
   * @fladj: frame length adjustment
@@ -561,7 +561,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
   * @irq_gadget: peripheral controller's IRQ number
   * @nr_scratch: number of scratch buffers
   * @u1u2: only used on revisions <1.83a for workaround
-@@ -832,6 +863,7 @@ struct dwc3_scratchpad_array {
+@@ -834,6 +865,7 @@ struct dwc3_scratchpad_array {
   *    1       - -3.5dB de-emphasis
   *    2       - No de-emphasis
   *    3       - Reserved
@@ -569,7 +569,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
   */
  struct dwc3 {
        struct usb_ctrlrequest  *ctrl_req;
-@@ -850,6 +882,7 @@ struct dwc3 {
+@@ -852,6 +884,7 @@ struct dwc3 {
        spinlock_t              lock;
  
        struct device           *dev;
@@ -577,7 +577,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
        struct platform_device  *xhci;
        struct resource         xhci_resources[DWC3_XHCI_RESOURCES_NUM];
-@@ -875,6 +908,12 @@ struct dwc3 {
+@@ -877,6 +910,12 @@ struct dwc3 {
        enum usb_phy_interface  hsphy_mode;
  
        u32                     fladj;
@@ -590,7 +590,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        u32                     irq_gadget;
        u32                     nr_scratch;
        u32                     u1u2;
-@@ -951,9 +990,12 @@ struct dwc3 {
+@@ -953,9 +992,12 @@ struct dwc3 {
        unsigned                ep0_bounced:1;
        unsigned                ep0_expect_in:1;
        unsigned                has_hibernation:1;
@@ -603,7 +603,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        unsigned                pending_events:1;
        unsigned                pullups_connected:1;
        unsigned                setup_packet_pending:1;
-@@ -974,9 +1016,16 @@ struct dwc3 {
+@@ -976,9 +1018,16 @@ struct dwc3 {
        unsigned                dis_rxdet_inp3_quirk:1;
        unsigned                dis_u2_freeclk_exists_quirk:1;
        unsigned                dis_del_phy_power_chg_quirk:1;
@@ -822,7 +822,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                curr_ep = get_ep_by_pipe(udc, i);
  
                /* If the ep is configured */
--              if (curr_ep->name == NULL) {
+-              if (!curr_ep->ep.name) {
 +              if (strncmp(curr_ep->name, "ep", 2)) {
                        WARNING("Invalid EP?");
                        continue;