Re: [PATCH v4] xhci - correct comp_mode_recovery_timer on return from hibernate

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

 



On Tue, 5 Mar 2013, Sarah Sharp wrote:

> static void compliance_mode_recovery(unsigned long arg)
> {
> ...
>         for (i = 0; i < xhci->num_usb3_ports; i++) {
>                 temp = xhci_readl(xhci, xhci->usb3_ports[i]);
>                 if ((temp & PORT_PLS_MASK) == USB_SS_PORT_LS_COMP_MOD) {
>                         /*
>                          * Compliance Mode Detected. Letting USB Core
>                          * handle the Warm Reset
>                          */
> 
> What happens when the xHCI host controller goes into D3cold due to
> runtime PM?  The port status registers will read as all f's, so we will
> miss any transitions to the compliance mode that happened before or
> during the transition to D3cold.
> 
> This code probably needs to wake up the host controller and keep it from
> suspending until all the ports can be read.
> 
> Alan, would the right way to do that be a get/put call into the runtime
> PM core?

If xhci_suspend deletes the Compliance Mode Recovery timer then the 
timer will never fire while the controller is in D3cold.  The problem 
won't arise.

Alan Stern

--
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