usb: dwc2: gadget: Reject LPM token during Control transfers
authorMinas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Thu, 18 Apr 2019 11:40:43 +0000 (15:40 +0400)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 3 May 2019 06:13:47 +0000 (09:13 +0300)
Avoiding switch to L1 state in any stage of control transfers.
Send NYET handshake to LPM token.

Renamed GLPMCFG_LPM_ACCEPT_CTRL_ISOC to GLPMCFG_LPM_REJECT_CTRL_CONTROL
because by setting this bit core reject LPM token.

Signed-off-by: Minas Harutyunyan <hminas@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/gadget.c
drivers/usb/dwc2/hw.h

index 6812a8a3a98babe1258508d8a4645af9fdd07e87..6ac850d6ad44400820f26c9c56c2b5753521dad6 100644 (file)
@@ -5073,6 +5073,7 @@ void dwc2_gadget_init_lpm(struct dwc2_hsotg *hsotg)
        val |= hsotg->params.lpm_clock_gating ? GLPMCFG_ENBLSLPM : 0;
        val |= hsotg->params.hird_threshold << GLPMCFG_HIRD_THRES_SHIFT;
        val |= hsotg->params.besl ? GLPMCFG_ENBESL : 0;
+       val |= GLPMCFG_LPM_REJECT_CTRL_CONTROL;
        val |= GLPMCFG_LPM_ACCEPT_CTRL_ISOC;
        dwc2_writel(hsotg, val, GLPMCFG);
        dev_dbg(hsotg->dev, "GLPMCFG=0x%08x\n", dwc2_readl(hsotg, GLPMCFG));
index 98af924a9a5c9e9a574f1bd7b212f4af4584f6a9..1bc394dcfa9dc9d5007709a6fe40069b71a2789c 100644 (file)
 #define GLPMCFG_SNDLPM                 BIT(24)
 #define GLPMCFG_RETRY_CNT_MASK         (0x7 << 21)
 #define GLPMCFG_RETRY_CNT_SHIFT                21
-#define GLPMCFG_LPM_ACCEPT_CTRL_CONTROL        BIT(21)
+#define GLPMCFG_LPM_REJECT_CTRL_CONTROL        BIT(21)
 #define GLPMCFG_LPM_ACCEPT_CTRL_ISOC   BIT(22)
 #define GLPMCFG_LPM_CHNL_INDX_MASK     (0xf << 17)
 #define GLPMCFG_LPM_CHNL_INDX_SHIFT    17