2023-08-01 01:41:39

by 庞苏荣 (Surong Pang)

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

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 <[email protected]>

---
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



2023-08-01 02:45:54

by Elson Serrao

[permalink] [raw]
Subject: Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired



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 <[email protected]>
>
> ---
> 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/[email protected]/

Thanks
Elson

2023-08-01 06:22:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired

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 <[email protected]>
> >
> > ---
> > 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/[email protected]/

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

2023-08-01 21:13:26

by Elson Serrao

[permalink] [raw]
Subject: Re: [PATCH V2] usb: dwc3: gadget: Let pm runtime get/put paired



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 <[email protected]>
>>>
>>> ---
>>> 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/[email protected]/
>
> 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/[email protected]/

Thanks
Elson