Revert "USB: cdc-acm: fix broken runtime suspend"

This reverts commit 21ffba35838100b5d332a75b418f9de43080d406.

Causing no boot issue with Touchpad
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index d7f23a5..1f701a3 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -262,9 +262,12 @@
 							acm->susp_count);
 	usb_autopm_get_interface_async(acm->control);
 	if (acm->susp_count) {
-		usb_anchor_urb(wb->urb, &acm->delayed);
+		if (!acm->delayed_wb)
+			acm->delayed_wb = wb;
+		else
+			usb_autopm_put_interface_async(acm->control);
 		spin_unlock_irqrestore(&acm->write_lock, flags);
-		return 0;
+		return 0;	/* A white lie */
 	}
 	usb_mark_last_busy(acm->dev);
 
@@ -711,8 +714,6 @@
 static void acm_port_shutdown(struct tty_port *port)
 {
 	struct acm *acm = container_of(port, struct acm, port);
-	struct urb *urb;
-	struct acm_wb *wb;
 	int i;
 	int pm_err;
 
@@ -722,16 +723,6 @@
 	if (!acm->disconnected) {
 		pm_err = usb_autopm_get_interface(acm->control);
 		acm_set_control(acm, acm->ctrlout = 0);
-
-		for (;;) {
-			urb = usb_get_from_anchor(&acm->delayed);
-			if (!urb)
-				break;
-			wb = urb->context;
-			wb->use = 0;
-			usb_autopm_put_interface_async(acm->control);
-		}
-
 		usb_kill_urb(acm->ctrlurb);
 		for (i = 0; i < ACM_NW; i++)
 			usb_kill_urb(acm->wb[i].urb);
@@ -1662,7 +1653,7 @@
 static int acm_resume(struct usb_interface *intf)
 {
 	struct acm *acm = usb_get_intfdata(intf);
-	struct urb *urb;
+	struct acm_wb *wb;
 	int rv = 0;
 
 	spin_lock_irq(&acm->read_lock);
@@ -1683,12 +1674,10 @@
 		rv = usb_submit_urb(acm->ctrlurb, GFP_ATOMIC);
 #endif
 
-		for (;;) {
-			urb = usb_get_from_anchor(&acm->delayed);
-			if (!urb)
-				break;
-
-			acm_start_wb(acm, urb->context);
+		if (acm->delayed_wb) {
+			wb = acm->delayed_wb;
+			acm->delayed_wb = NULL;
+			acm_start_wb(acm, wb);
 		}
 
 		/*