From owner-freebsd-acpi@FreeBSD.ORG Sun Apr 3 00:59:02 2011 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD34A106566B for ; Sun, 3 Apr 2011 00:59:02 +0000 (UTC) (envelope-from nate@root.org) Received: from mail.rootlabs.com (rootlabs.com [208.72.84.106]) by mx1.freebsd.org (Postfix) with ESMTP id 9B2BB8FC08 for ; Sun, 3 Apr 2011 00:59:02 +0000 (UTC) Received: (Postfix invoked from local network); Sat, 2 Apr 2011 17:39:31 -0700 (PDT) Message-ID: <4D97C1C2.1090608@root.org> Date: Sat, 02 Apr 2011 17:39:30 -0700 From: Nate Lawson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: freebsd-acpi@freebsd.org References: <20110402112958.449d8624@shibato.opal.com> <20110402173444.6811f735@shibato.opal.com> In-Reply-To: <20110402173444.6811f735@shibato.opal.com> X-Enigmail-Version: 1.1.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: pci buses missing from suspend/resume powerstate X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Apr 2011 00:59:02 -0000 On 4/2/2011 2:34 PM, J.R. Oldroyd wrote: > On Sat, 2 Apr 2011 11:29:58 -0400, "J.R. Oldroyd" wrote: >> >> [suspend/resume of network cards] >> >> pcib0 >> pci0 >> hostb0 >> pcib1 >> pci1 >> vgapci0 >> vgapm0 >> scpm0 >> acpi_video0 >> drm0 >> hdac1 >> pcm2 >> pcib2 >> pci2 >> ath0 >> pcib3 >> pci3 >> re0 >> miibus0 >> rgephy0 >> ... > > I had been working from this: > > on suspend: > kernel: pci0:1:5:0: Transition from D0 to D3 # vgapci > kernel: pci0:1:5:1: Transition from D0 to D3 # hdac1 > kernel: pci0:2:0:0: Transition from D0 to D3 # ath0 > kernel: pci0:3:0:0: Transition from D0 to D3 # re0 > kernel: pci0:0:18:2: Transition from D0 to D3 # ohci0 > kernel: pci0:0:19:2: Transition from D0 to D3 # ohci1 > kernel: pci0:0:20:2: Transition from D0 to D3 # hdac0 > > but on resume, only: > kernel: pci0:0:18:2: Transition from D3 to D0 > kernel: pci0:0:19:2: Transition from D3 to D0 > > which had led me to think the buses were not being resumed. > > Looking further at this, two things come to light: > - they ARE being suspended using set_powerstate to D3, but > after the resume, their powerstate still shows as D0, so > set_powerstate is not being re-invoked to actually set D0 > again > - the PCI-PCI bridges pcib1, pcib2, pcib3 have hdrtype==1 and > so are also excluded from the set_powerstate (don't know if > that's OK or not) > > But, overriding those checks and forcing set_powerstate D0 to be invoked > for all devices still doesn't get ath0 or re0 working after the resume. > > I have an older but similar laptop model with the same configuration of > ath0 and re0 also on secondary PCI buses pci2 and pci3 and that one does > suspend/resume properly. But on the newer laptop: > > kernel: ath0: unable to reset hardware; hal status 3 > kernel: re0: reset never completed! > kernel: re0: PHY write failed > last message repeated 4 times > > So this problem is specific to this newer hardware. Perhaps related to > the PCI-PCI bridges? pcib2 and pcib3 are both devid=96xx1022... perhaps > some odd quirk handling is needed here? I suspect something in the ASL is different. -- Nate