Skip to contentSkip to conversation

Patch "usb: musb: only restore devctl when session was set in backup" has been added to the 4.6-stable tree

PATCH [email protected] 1 participant 1 message Jul 7, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

usb: musb: only restore devctl when session was set in backup

to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
usb-musb-only-restore-devctl-when-session-was-set-in-backup.patch
and it can be found in the queue-4.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 84ac5d1140f716a616522f952734e850448d2556 Mon Sep 17 00:00:00 2001

From: Bin Liu <[email protected]>
Date: Tue, 31 May 2016 10:05:24 -0500
Subject: usb: musb: only restore devctl when session was set in backup

From: Bin Liu <[email protected]>

commit 84ac5d1140f716a616522f952734e850448d2556 upstream.

If the session bit was not set in the backup of devctl register, restoring devctl would clear the session bit. Therefor, only restore devctl register when the session bit was set in the backup.

This solves the device enumeration failure in otg mode exposed by commit 56f487c (PM / Runtime: Update last_busy in rpm_resume).

---
 drivers/usb/musb/musb_core.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/usb/musb/musb_core.c +2 -1
@@ -2429,7 +2429,8 @@ static void musb_restore_context(struct
 	musb_writew(musb_base, MUSB_INTRTXE, musb->intrtxe);
 	musb_writew(musb_base, MUSB_INTRRXE, musb->intrrxe);
 	musb_writeb(musb_base, MUSB_INTRUSBE, musb->context.intrusbe);
-	musb_writeb(musb_base, MUSB_DEVCTL, musb->context.devctl);
+	if (musb->context.devctl & MUSB_DEVCTL_SESSION)
+		musb_writeb(musb_base, MUSB_DEVCTL, musb->context.devctl);
 
 	for (i = 0; i < musb->config->num_eps; ++i) {
 		struct musb_hw_ep	*hw_ep;

Patches currently in stable-queue which might be from [email protected] are

queue-4.6/usb-gadget-fix-spinlock-dead-lock-in-gadgetfs.patch queue-4.6/usb-musb-stop-bulk-endpoint-while-queue-is-rotated.patch queue-4.6/usb-musb-ensure-rx-reinit-occurs-for-shared_fifo-endpoints.patch queue-4.6/usb-musb-host-correct-cppi-dma-channel-for-isoch-transfer.patch queue-4.6/usb-musb-only-restore-devctl-when-session-was-set-in-backup.patch