diff options
Diffstat (limited to 'kernels/linux-libre-knock/0012-usb-musb-Call-pm_runtime-from-musb_gadget_queue.patch')
-rw-r--r-- | kernels/linux-libre-knock/0012-usb-musb-Call-pm_runtime-from-musb_gadget_queue.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/kernels/linux-libre-knock/0012-usb-musb-Call-pm_runtime-from-musb_gadget_queue.patch b/kernels/linux-libre-knock/0012-usb-musb-Call-pm_runtime-from-musb_gadget_queue.patch deleted file mode 100644 index 16ae76b8b..000000000 --- a/kernels/linux-libre-knock/0012-usb-musb-Call-pm_runtime-from-musb_gadget_queue.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 25245e060b4626a625e1849b027b3bebc9696ff4 Mon Sep 17 00:00:00 2001 -From: Tony Lindgren <tony@atomide.com> -Date: Fri, 30 Sep 2016 11:10:10 -0700 -Subject: [PATCH 12/14] usb: musb: Call pm_runtime from musb_gadget_queue - -If we're booting pandaboard using NFSroot over built-in g_ether, we -can get the following after booting once and doing a warm reset: - -g_ether gadget: ecm_open -g_ether gadget: notify connect true -... -WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:147 -l3_interrupt_handler+0x220/0x34c -44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4CFG (Read): -Data Access in User mode du ring Functional access -... - -Fix the issue by calling pm_runtime functions from -musb_gadget_queue. - -Note that in the long run we should be able to queue the pending -transfers if pm_runtime is not active, and flush the queue from -pm_runtime_resume. - -Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> -Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> -Signed-off-by: Tony Lindgren <tony@atomide.com> ---- - drivers/usb/musb/musb_gadget.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c -index 6d1e975..8ccc1b1 100644 ---- a/drivers/usb/musb/musb_gadget.c -+++ b/drivers/usb/musb/musb_gadget.c -@@ -1255,6 +1255,7 @@ static int musb_gadget_queue(struct usb_ep *ep, struct usb_request *req, - - map_dma_buffer(request, musb, musb_ep); - -+ pm_runtime_get_sync(musb->controller); - spin_lock_irqsave(&musb->lock, lockflags); - - /* don't queue if the ep is down */ -@@ -1275,6 +1276,9 @@ static int musb_gadget_queue(struct usb_ep *ep, struct usb_request *req, - - unlock: - spin_unlock_irqrestore(&musb->lock, lockflags); -+ pm_runtime_mark_last_busy(musb->controller); -+ pm_runtime_put_autosuspend(musb->controller); -+ - return status; - } - --- -2.10.0 - |