From owner-freebsd-usb@FreeBSD.ORG Fri Jun 21 12:48:16 2013 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 811C97C1; Fri, 21 Jun 2013 12:48:16 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from sola.nimnet.asn.au (paqi.nimnet.asn.au [115.70.110.159]) by mx1.freebsd.org (Postfix) with ESMTP id D64DE1DFD; Fri, 21 Jun 2013 12:48:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by sola.nimnet.asn.au (8.14.2/8.14.2) with ESMTP id r5LCm7ip073709; Fri, 21 Jun 2013 22:48:08 +1000 (EST) (envelope-from smithi@nimnet.asn.au) Date: Fri, 21 Jun 2013 22:48:07 +1000 (EST) From: Ian Smith To: Adrian Chadd Subject: Re: USB ports on Lenovo T400 do not work after a suspend/resume In-Reply-To: Message-ID: <20130621220013.X55167@sola.nimnet.asn.au> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: freebsd-acpi@freebsd.org, freebsd-stable@freebsd.org, freebsd-usb@freebsd.org X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jun 2013 12:48:16 -0000 On Thu, 20 Jun 2013 14:19:21 -0700, Adrian Chadd wrote: > Hi, > > FreeBSD-9 works fine on this Lenovo T400 - except that suspending with > no USB devices plugged in result in no ports working after resume. > > If I have a device plugged in during suspend - on any port - then all > the ports work fine after resume. > > I've attached usbconfig and acpidump output. No acpidump output on -stable or -acpi anyway .. likely best as an URL, if it comes down to ACPI. So the fingerprint reader, camera and bluetooth shown in your usbconfig don't serve as 'USB devices plugged in' in this regard? Do they work ok after resume, or not? > here's what is logged in the kernel buffer during suspend and resume: > > > Her'es the suspend: With all but the USB-related stuff dropped, I assume? > Jun 20 14:03:34 lucy acpi: suspend at 20130620 14:03:34 > Jun 20 14:03:38 lucy kernel: [100031] uhub0: at usbus0, port 1, addr 1 > (disconnected) > Jun 20 14:03:38 lucy kernel: [100036] uhub1: at usbus1, port 1, addr 1 > (disconnected) > Jun 20 14:03:38 lucy kernel: ugen1.2: at usbus1 (disconnected) > Jun 20 14:03:38 lucy kernel: ugen1.3: at usbus1 > (disconnected) > Jun 20 14:03:38 lucy kernel: [100036] ubt0: at uhub1, port 2, addr 3 > (disconnected) > Jun 20 14:03:47 lucy kernel: [100041] uhub2: at usbus2, port 1, addr 1 > (disconnected) > Jun 20 14:03:47 lucy kernel: [100046] uhub3: at usbus3, port 1, addr 1 > (disconnected) > Jun 20 14:03:47 lucy kernel: ugen3.2: at usbus3 (disconnected) > Jun 20 14:03:47 lucy kernel: [100046] umass0: at uhub3, port 1, addr 2 > (disconnected) > Jun 20 14:03:47 lucy kernel: (da0:umass-sim0:0:0:0): lost device - 0 > outstanding, 1 refs > Jun 20 14:03:47 lucy kernel: (da0:umass-sim0:0:0:0): removing device entry > Jun 20 14:03:47 lucy kernel: ugen3.3: > at usbus3 (disconnected) > Jun 20 14:03:47 lucy kernel: uhci_interrupt: resume detect The last message is news to me. > Jun 20 14:03:47 lucy kernel: [100052] uhub4: at usbus4, port 1, addr 1 > (disconnected) > Jun 20 14:03:47 lucy kernel: [100057] uhub5: at usbus5, port 1, addr 1 > (disconnected) > Jun 20 14:03:47 lucy kernel: [100062] uhub6: at usbus6, port 1, addr 1 > (disconnected) > Jun 20 14:03:47 lucy kernel: [100067] uhub7: at usbus7, port 1, addr 1 > (disconnected) > > ..and resume: I wonder what these devices are? > > Jun 20 14:03:47 lucy kernel: [100095] pci21: failed to set ACPI power > state D2 on \_SB_.PCI0.PCI1.CDBS: AE_BAD_PARAMETER > Jun 20 14:03:47 lucy kernel: [100095] pci0: failed to set ACPI power > state D2 on \_SB_.PCI0.EXP0: AE_BAD_PARAMETER > Jun 20 14:03:47 lucy kernel: [100095] pci0: failed to set ACPI power > state D2 on \_SB_.PCI0.EXP1: AE_BAD_PARAMETER > Jun 20 14:03:47 lucy kernel: [100095] pci0: failed to set ACPI power > state D2 on \_SB_.PCI0.EXP3: AE_BAD_PARAMETER > Jun 20 14:03:47 lucy kernel: [100095] pci0: failed to set ACPI power > state D2 on \_SB_.PCI0.EXP4: AE_BAD_PARAMETER No, the above are still on the suspend path, but logged on resume. I don't know what CDBS or EXP0,1,3,4 are. You've left out something like 'pci0:X:Y:0 Transition from D0 to D2' (or D3) before these ones, right? On 9(.1-R so far) I always get the same sort of messages for the cardbus slots on my T23, eg pci2: failed to set ACPI power state D2 on \_SB_.PCI0.PCI1.CBS0: AE_BAD_PARAMETER, also for CBS1. I've supposed it meant there was no D2 setting for these and they seem to resume alright, later on: pci2: set ACPI power state D0 on \_SB_.PCI0.PCI1.CBS0 (& CBS1) I suppose you'd have lines setting state back to D0 on these, later on? > Jun 20 14:03:47 lucy kernel: [100095] acpi0: cleared fixed power button status > Jun 20 14:03:47 lucy kernel: uhci_interrupt: resume detect > Jun 20 14:03:47 lucy kernel: wakeup from sleeping state (slept 00:00:06) I hope 'slept' message is still in 10, I've seen a few listed without, and they're very handy if there's any resume delay, as I had up to 8.2 (plus exactly 60 seconds) unless I unloaded (in particular) UHCI and reloaded it on resume, needing a kernel w/out uhci, ohci and ehci, loading on boot and unload/reload in rc.suspend/resume. This however was fixed by 9.1 for me, the first release where suspend/resume works flawlessly on the T23. I haven't tried a recent 9-STABLE though. > Jun 20 14:03:47 lucy kernel: [100067] uhub0: class 9/0, rev 2.00/1.00, addr 1> on usbus7 > Jun 20 14:03:47 lucy kernel: [100046] uhub1: class 9/0, rev 2.00/1.00, addr 1> on usbus3 > Jun 20 14:03:47 lucy kernel: [100031] uhub2: class 9/0, rev 1.00/1.00, addr 1> on usbus0 > Jun 20 14:03:47 lucy kernel: [100036] uhub3: class 9/0, rev 1.00/1.00, addr 1> on usbus1 > Jun 20 14:03:47 lucy kernel: [100057] uhub4: class 9/0, rev 1.00/1.00, addr 1> on usbus5 > Jun 20 14:03:47 lucy kernel: [100052] uhub5: class 9/0, rev 1.00/1.00, addr 1> on usbus4 > Jun 20 14:03:47 lucy kernel: [100062] uhub6: class 9/0, rev 1.00/1.00, addr 1> on usbus6 > Jun 20 14:03:47 lucy kernel: [100041] uhub7: class 9/0, rev 1.00/1.00, addr 1> on usbus2 > > .. local APIC error? No idea. > Jun 20 14:03:47 lucy kernel: CPU0: local APIC error 0x40 > Jun 20 14:03:47 lucy acpi: resumed at 20130620 14:03:47 > > It probes the hubs fine though. But you get nothing at all if you plug something in? No messages? Well, the earlier resume issues on UHCI might still not be fixed? You could try a kernel without UHCI, with the unload/reload dance .. cheers, Ian