Summary: | [xhci] [suspend/resume] xhci driver bug after suspend to RAM (ACPI S3 mode) | ||
---|---|---|---|
Product: | Base System | Reporter: | Florian Jung <florian.a.jung> |
Component: | usb | Assignee: | freebsd-usb (Nobody) <usb> |
Status: | Open --- | ||
Severity: | Affects Only Me | ||
Priority: | Normal | ||
Version: | 9.0-RELEASE | ||
Hardware: | Any | ||
OS: | Any |
Description
Florian Jung
2012-11-19 15:40:00 UTC
If you unplug the harddisk before the suspend, does it work afterwards then? --HPS No, that causes the same problem. I don't even need to attach it: boot freebsd, enter acpi s3, wake up, and then plug in the disk leads to the same problem. i have found out that compiling XHCI has loadable module, and unloading it before suspend and re-loading it afterwards solves the problem. the "xhci_interrupt: host controller halted"-messages don't appear, and i can use my harddisk afterwards. looks like xhci is failing to reinitalize properly after suspend? greetings, flo Hi, Do you have a USB 3.0 compatible BIOS? I think we might need to halt the XHCI as part of the resume process. Can you try this patch: diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c index 756b1ed..576ed71 100644 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -578,6 +578,8 @@ xhci_set_hw_power_sleep(struct usb_bus *bus, uint32_t state) xhci_halt_controller(sc); break; case USB_HW_POWER_RESUME: + DPRINTF("Halting the XHCI\n"); + xhci_halt_controller(sc); DPRINTF("Starting the XHCI\n"); xhci_start_controller(sc); break; --HPS Hi i have a USB3.0-compatible BIOS. uhm, i am unable to apply this patch. my xhci.c file looks pretty different, there is no xhci_set_hw_power_sleep function, but there are xhci_suspend() and xhci_resume(). both are empty and contain only a /* XXX TODO */ uname -r now reports 9.0-RELEASE-p4, btw, i must have mistyped that :/ i've set up my freebsd system ~2 months ago, and ran freebsd-update fetch install today. that are the kernel sources i'm using. there is a line: __FBSDID("$FreeBSD: release/9.0.0/sys/dev/usb/controller/xhci.c 226904 2011-10-29 12:39:05Z hselasky $"); do i have to download different sources (how?), or did you diff against the wrong kernel tree? (sorry, i'm a freeBSD-newbie ;) ) thanks flo For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped |