Created attachment 179073 [details] propoesed patch On my new Skylake based laptop Suspend/Resume was failing (no resume_beep at all). I was able to resolve the issue by adding controller reset of the xhci controller after the xhci_halt_controller calls. The problem is clearly BIOS bug as the Suspend/Resume is failing without loading the xhci driver. The same is happening with latest Linux when the xhci driver is not loaded. Adding the reset code solves the issue. The Linux driver seems to do the same on driver unload, so I am not expecting a regression by the change. A simple patch to implement this is attached.
A commit references this bug: Author: hselasky Date: Thu Jan 19 18:33:27 UTC 2017 New revision: 312424 URL: https://svnweb.freebsd.org/changeset/base/312424 Log: Fix problem with suspend and resume when using Skylake chipsets. Make sure the XHCI controller is reset after halting it. The problem is clearly a BIOS bug as the suspend and resume is failing without loading the XHCI driver. The same happens when using Linux and the XHCI driver is not loaded. Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com> PR: 216261 MFC after: 1 week Changes: head/sys/dev/usb/controller/xhci.c head/sys/dev/usb/controller/xhci.h head/sys/dev/usb/controller/xhci_pci.c
Your patch was submitted with some minor modifications. Please test. Thank you! --HPS
A commit references this bug: Author: hselasky Date: Tue Mar 14 15:27:39 UTC 2017 New revision: 315251 URL: https://svnweb.freebsd.org/changeset/base/315251 Log: MFC r312424: Fix problem with suspend and resume when using Skylake chipsets. Make sure the XHCI controller is reset after halting it. The problem is clearly a BIOS bug as the suspend and resume is failing without loading the XHCI driver. The same happens when using Linux and the XHCI driver is not loaded. Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com> PR: 216261 Changes: _U stable/11/ stable/11/sys/dev/usb/controller/xhci.c stable/11/sys/dev/usb/controller/xhci.h stable/11/sys/dev/usb/controller/xhci_pci.c
A commit references this bug: Author: hselasky Date: Tue Mar 14 15:29:00 UTC 2017 New revision: 315252 URL: https://svnweb.freebsd.org/changeset/base/315252 Log: MFC r312424: Fix problem with suspend and resume when using Skylake chipsets. Make sure the XHCI controller is reset after halting it. The problem is clearly a BIOS bug as the suspend and resume is failing without loading the XHCI driver. The same happens when using Linux and the XHCI driver is not loaded. Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com> PR: 216261 Changes: _U stable/10/ stable/10/sys/dev/usb/controller/xhci.c stable/10/sys/dev/usb/controller/xhci.h stable/10/sys/dev/usb/controller/xhci_pci.c
A commit references this bug: Author: hselasky Date: Tue Mar 14 15:30:47 UTC 2017 New revision: 315253 URL: https://svnweb.freebsd.org/changeset/base/315253 Log: MFC r312424: Fix problem with suspend and resume when using Skylake chipsets. Make sure the XHCI controller is reset after halting it. The problem is clearly a BIOS bug as the suspend and resume is failing without loading the XHCI driver. The same happens when using Linux and the XHCI driver is not loaded. Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com> PR: 216261 Changes: _U stable/9/sys/ stable/9/sys/dev/usb/controller/xhci.c stable/9/sys/dev/usb/controller/xhci.h stable/9/sys/dev/usb/controller/xhci_pci.c