RE: Problem with linux-3.7.7 (Stern - d01875f11f05f76fc471cec94d701201c1b34389)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I've got a minor update to this patch. Could you please test it? This
> is the version I want to submit.
>

Ok.  Now patched into a 3.8.2 kernel.  A number of suspend/resume cycles have been run and no problems have so far been encountered.  Will run with it and report any issues.

Adrian Bassett

> Index: 3.8/drivers/usb/host/ehci-hcd.c
> ===================================================================
> --- 3.8.orig/drivers/usb/host/ehci-hcd.c
> +++ 3.8/drivers/usb/host/ehci-hcd.c
> @@ -302,6 +302,7 @@ static void ehci_quiesce (struct ehci_hc
>
> static void end_unlink_async(struct ehci_hcd *ehci);
> static void unlink_empty_async(struct ehci_hcd *ehci);
> +static void unlink_empty_async_suspended(struct ehci_hcd *ehci);
> static void ehci_work(struct ehci_hcd *ehci);
> static void start_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh);
> static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh);
> Index: 3.8/drivers/usb/host/ehci-hub.c
> ===================================================================
> --- 3.8.orig/drivers/usb/host/ehci-hub.c
> +++ 3.8/drivers/usb/host/ehci-hub.c
> @@ -328,7 +328,7 @@ static int ehci_bus_suspend (struct usb_
> ehci->rh_state = EHCI_RH_SUSPENDED;
>
> end_unlink_async(ehci);
> - unlink_empty_async(ehci);
> + unlink_empty_async_suspended(ehci);
> ehci_handle_intr_unlinks(ehci);
> end_free_itds(ehci);
>
> Index: 3.8/drivers/usb/host/ehci-q.c
> ===================================================================
> --- 3.8.orig/drivers/usb/host/ehci-q.c
> +++ 3.8/drivers/usb/host/ehci-q.c
> @@ -1316,6 +1316,19 @@ static void unlink_empty_async(struct eh
> }
> }
>
> +/* The root hub is suspended; unlink all the async QHs */
> +static void unlink_empty_async_suspended(struct ehci_hcd *ehci)
> +{
> + struct ehci_qh *qh;
> +
> + while (ehci->async->qh_next.qh) {
> + qh = ehci->async->qh_next.qh;
> + WARN_ON(!list_empty(&qh->qtd_list));
> + single_unlink_async(ehci, qh);
> + }
> + start_iaa_cycle(ehci, false);
> +}
> +
> /* makes sure the async qh will become idle */
> /* caller must own ehci->lock */
>
> 		 	   		  --
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux