diff mbox series

[2/2] usb: dwc2: gadget: Accept LPM token when TxFIFO is not empty

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

Commit Message

Artur Petrosyan Oct. 30, 2018, 12:26 p.m. UTC
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(+)

Comments

Felipe Balbi Oct. 30, 2018, 12:35 p.m. UTC | #1
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?
Artur Petrosyan Oct. 30, 2018, 2:14 p.m. UTC | #2
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
Sergei Shtylyov Oct. 30, 2018, 3:01 p.m. UTC | #3
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
Artur Petrosyan Oct. 31, 2018, 11:41 a.m. UTC | #4
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 mbox series

Patch

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)