Hi Mathias, Thanks for suggestion. The reason I do not use xhci_handshake() is we get build fail when configuring below as module: USB_XHCI_HCD = m USB_XHCI_PCI = m
Fail message as below: ERROR: "xhci_handshake" [drivers/usb/host/xhci-pci.ko] undefined! So I write my own function to check CNR. Thanks, Rick -- nvpublic 寄件者: Mathias Nyman <mathias.ny...@linux.intel.com> 寄件日期: 2019年8月13日 上午 03:39 收件者: Oliver Neukum <oneu...@suse.com>; Rick Tseng <rts...@nvidia.com>; mathias.ny...@intel.com <mathias.ny...@intel.com>; gre...@linuxfoundation.org <gre...@linuxfoundation.org> 副本: linux-usb@vger.kernel.org <linux-usb@vger.kernel.org> 主旨: Re: [PATCH] xhci: wait CNR when doing xhci resume On 12.8.2019 11.19, Oliver Neukum wrote: > Am Montag, den 12.08.2019, 15:24 +0800 schrieb Rick Tseng: >> From: Rick <rts...@nvidia.com> >> >> NVIDIA 3.1 xHCI card would lose power when moving power state into D3Cold. >> Thus we need to wait CNR bit to clear when xhci resmue as xhci init. > > Should any controller have CNR set? Why is this specific to a vendor? > Good point, always checking CNR in resume sounds like a good idea. And use xhci_handshake() as Felipe pointed out, just like in xhci_reset(): ret = xhci_handshake(&xhci->op_regs->status, STS_CNR, 0, 10 * 1000 * 1000); Rick, would you like to write a patch for this? -Mathias