To accept LPM token during ISOC transfers when TxFIFO
is not empty.

Signed-off-by: Artur Petrosyan <art...@synopsys.com>
Signed-off-by: Minas Harutyunyan <hmi...@synopsys.com>
---
 drivers/usb/dwc2/gadget.c | 1 +
 drivers/usb/dwc2/hw.h     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 6bd4054e894d..63d53619fd21 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -5026,6 +5026,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_RETRY_CNT_1;
        dwc2_writel(hsotg, val, GLPMCFG);
        dev_dbg(hsotg->dev, "GLPMCFG=0x%08x\n", dwc2_readl(hsotg, GLPMCFG));
 
diff --git a/drivers/usb/dwc2/hw.h b/drivers/usb/dwc2/hw.h
index 2b1ea441b7d4..84d2b32f4831 100644
--- a/drivers/usb/dwc2/hw.h
+++ b/drivers/usb/dwc2/hw.h
@@ -333,6 +333,9 @@
 #define GLPMCFG_SNDLPM                 BIT(24)
 #define GLPMCFG_RETRY_CNT_MASK         (0x7 << 21)
 #define GLPMCFG_RETRY_CNT_SHIFT                21
+#define GLPMCFG_RETRY_CNT_0            21
+#define GLPMCFG_RETRY_CNT_1            22
+#define GLPMCFG_RETRY_CNT_2            23
 #define GLPMCFG_LPM_CHNL_INDX_MASK     (0xf << 17)
 #define GLPMCFG_LPM_CHNL_INDX_SHIFT    17
 #define GLPMCFG_L1RESUMEOK             BIT(16)
-- 
2.11.0

Reply via email to