Message ID | ddf7be456eb04953ae1be34ea0787435921b35da.1540902331.git.arturp@synopsys.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: dwc2: gadget: Fix Service Interval support. | expand |
Hi, Artur Petrosyan <arthur.petrosyan@synopsys.com> writes: > To accept LPM token during ISOC transfers when TxFIFO > is not empty. this commit log tells me nothing. Why do you need this patch? Why CNT1 and not CNT0 or CNT2?
Hi Balbi, On 10/30/2018 16:35, Felipe Balbi wrote: > > Hi, > > Artur Petrosyan <arthur.petrosyan@synopsys.com> writes: >> To accept LPM token during ISOC transfers when TxFIFO >> is not empty. > > this commit log tells me nothing. Why do you need this patch? Why CNT1 > and not CNT0 or CNT2? > Thanks for the quick reply and the review. I will accordingly add descriptive information about the importance of the patch and the use of the CNT0, CNT1 and CNT2 (from the data book). Will create a version 2 for this patch. Regards, Artur
Hello! On 10/30/2018 03:26 PM, Artur Petrosyan wrote: > To accept LPM token during ISOC transfers when TxFIFO > is not empty. > > Signed-off-by: Artur Petrosyan <arturp@synopsys.com> > Signed-off-by: Minas Harutyunyan <hminas@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 Not '(0|1|2 << 21)'? [...] MBR, Sergei
Hi Sergei, On 10/30/2018 19:02, Sergei Shtylyov wrote: > Hello! > > On 10/30/2018 03:26 PM, Artur Petrosyan wrote: > >> To accept LPM token during ISOC transfers when TxFIFO >> is not empty. >> >> Signed-off-by: Artur Petrosyan <arturp@synopsys.com> >> Signed-off-by: Minas Harutyunyan <hminas@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 > > Not '(0|1|2 << 21)'? > > [...] > > MBR, Sergei > Thank you very much for your review. I will submit V2 patches to fix bit definitions,and also add Reviewed-by tag. Regards, Artur
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)