[PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired

Surong Pang posted 1 patch 2 years, 6 months ago
drivers/usb/dwc3/gadget.c | 1 +
1 file changed, 1 insertion(+)
[PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired
Posted by Surong Pang 2 years, 6 months ago
Pm_runtime_get is called when setting pending_events to true.
Pm_runtime_put is needed for pairing with pm_runtime_get.

Fixes: fc8bb91bc83e ("usb: dwc3: implement runtime PM")
Signed-off-by: Surong Pang <surong.pang@unisoc.com>

---
V2: add Fixes tag, fix Fixes tag
---
 drivers/usb/dwc3/gadget.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 5fd067151fbf..9c835c5f9928 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -4720,5 +4720,6 @@ void dwc3_gadget_process_pending_events(struct dwc3 *dwc)
 		dwc3_interrupt(dwc->irq_gadget, dwc->ev_buf);
 		dwc->pending_events = false;
 		enable_irq(dwc->irq_gadget);
+		pm_runtime_put(dwc->dev);
 	}
 }
-- 
2.17.1
Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired
Posted by Elson Serrao 2 years, 6 months ago

On 7/31/2023 6:15 PM, Surong Pang wrote:
> Pm_runtime_get is called when setting pending_events to true.
> Pm_runtime_put is needed for pairing with pm_runtime_get.
> 
> Fixes: fc8bb91bc83e ("usb: dwc3: implement runtime PM")
> Signed-off-by: Surong Pang <surong.pang@unisoc.com>
> 
> ---
> V2: add Fixes tag, fix Fixes tag
> ---
>   drivers/usb/dwc3/gadget.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 5fd067151fbf..9c835c5f9928 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -4720,5 +4720,6 @@ void dwc3_gadget_process_pending_events(struct dwc3 *dwc)
>   		dwc3_interrupt(dwc->irq_gadget, dwc->ev_buf);
>   		dwc->pending_events = false;
>   		enable_irq(dwc->irq_gadget);
> +		pm_runtime_put(dwc->dev);
>   	}
>   }

I am already handling this change as part of below series. Will be 
uploading a separate patch based on the feedback from Roger.

https://lore.kernel.org/all/be57511d-2005-a1f5-d5a5-809e71029aec@quicinc.com/

Thanks
Elson
Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired
Posted by Greg KH 2 years, 6 months ago
On Mon, Jul 31, 2023 at 06:33:04PM -0700, Elson Serrao wrote:
> 
> 
> On 7/31/2023 6:15 PM, Surong Pang wrote:
> > Pm_runtime_get is called when setting pending_events to true.
> > Pm_runtime_put is needed for pairing with pm_runtime_get.
> > 
> > Fixes: fc8bb91bc83e ("usb: dwc3: implement runtime PM")
> > Signed-off-by: Surong Pang <surong.pang@unisoc.com>
> > 
> > ---
> > V2: add Fixes tag, fix Fixes tag
> > ---
> >   drivers/usb/dwc3/gadget.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> > index 5fd067151fbf..9c835c5f9928 100644
> > --- a/drivers/usb/dwc3/gadget.c
> > +++ b/drivers/usb/dwc3/gadget.c
> > @@ -4720,5 +4720,6 @@ void dwc3_gadget_process_pending_events(struct dwc3 *dwc)
> >   		dwc3_interrupt(dwc->irq_gadget, dwc->ev_buf);
> >   		dwc->pending_events = false;
> >   		enable_irq(dwc->irq_gadget);
> > +		pm_runtime_put(dwc->dev);
> >   	}
> >   }
> 
> I am already handling this change as part of below series. Will be uploading
> a separate patch based on the feedback from Roger.
> 
> https://lore.kernel.org/all/be57511d-2005-a1f5-d5a5-809e71029aec@quicinc.com/

But this should be fixed now, and properly backported to stable kernels.
There's no need to wait for a different patch series if this one is
correct, right?

thanks,

greg k-h
Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired
Posted by Elson Serrao 2 years, 6 months ago

On 7/31/2023 9:43 PM, Greg KH wrote:
> On Mon, Jul 31, 2023 at 06:33:04PM -0700, Elson Serrao wrote:
>>
>>
>> On 7/31/2023 6:15 PM, Surong Pang wrote:
>>> Pm_runtime_get is called when setting pending_events to true.
>>> Pm_runtime_put is needed for pairing with pm_runtime_get.
>>>
>>> Fixes: fc8bb91bc83e ("usb: dwc3: implement runtime PM")
>>> Signed-off-by: Surong Pang <surong.pang@unisoc.com>
>>>
>>> ---
>>> V2: add Fixes tag, fix Fixes tag
>>> ---
>>>    drivers/usb/dwc3/gadget.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
>>> index 5fd067151fbf..9c835c5f9928 100644
>>> --- a/drivers/usb/dwc3/gadget.c
>>> +++ b/drivers/usb/dwc3/gadget.c
>>> @@ -4720,5 +4720,6 @@ void dwc3_gadget_process_pending_events(struct dwc3 *dwc)
>>>    		dwc3_interrupt(dwc->irq_gadget, dwc->ev_buf);
>>>    		dwc->pending_events = false;
>>>    		enable_irq(dwc->irq_gadget);
>>> +		pm_runtime_put(dwc->dev);
>>>    	}
>>>    }
>>
>> I am already handling this change as part of below series. Will be uploading
>> a separate patch based on the feedback from Roger.
>>
>> https://lore.kernel.org/all/be57511d-2005-a1f5-d5a5-809e71029aec@quicinc.com/
> 
> But this should be fixed now, and properly backported to stable kernels.
> There's no need to wait for a different patch series if this one is
> correct, right?
> 
Hi Greg

I have separated this change from the series and have uploaded below 
change as an independent fix. Based on the earlier feedback and 
discussion, few additional modifications are needed to properly handle 
pending events
https://lore.kernel.org/all/20230801192658.19275-1-quic_eserrao@quicinc.com/

Thanks
Elson