usb: musb: Remove conditional PM runtime calls for musb_gadget
The conditional use of PM runtime does not work properly for musb gadget. On cable disconnect we may not get any USB_EVENT_NONE leaving the PM runtime call unpaired. Let's fix the issue by making sure the PM runtime calls are paired within the functions. The glue layer will take care of the rest. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f730f205cc
commit
3064721790
@ -1914,8 +1914,8 @@ static int musb_gadget_start(struct usb_gadget *g,
|
||||
if (musb->xceiv->last_event == USB_EVENT_ID)
|
||||
musb_platform_set_vbus(musb, 1);
|
||||
|
||||
if (musb->xceiv->last_event == USB_EVENT_NONE)
|
||||
pm_runtime_put(musb->controller);
|
||||
pm_runtime_mark_last_busy(musb->controller);
|
||||
pm_runtime_put_autosuspend(musb->controller);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -1934,8 +1934,7 @@ static int musb_gadget_stop(struct usb_gadget *g)
|
||||
struct musb *musb = gadget_to_musb(g);
|
||||
unsigned long flags;
|
||||
|
||||
if (musb->xceiv->last_event == USB_EVENT_NONE)
|
||||
pm_runtime_get_sync(musb->controller);
|
||||
pm_runtime_get_sync(musb->controller);
|
||||
|
||||
/*
|
||||
* REVISIT always use otg_set_peripheral() here too;
|
||||
|
Loading…
x
Reference in New Issue
Block a user