From owner-freebsd-acpi@FreeBSD.ORG Mon Jan 3 04:08:16 2005 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0D6A716A4CE for ; Mon, 3 Jan 2005 04:08:16 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 985AF43D39 for ; Mon, 3 Jan 2005 04:08:15 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.13.1/8.13.1) with ESMTP id j0346wUm021528; Sun, 2 Jan 2005 21:06:58 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Sun, 02 Jan 2005 21:07:14 -0700 (MST) Message-Id: <20050102.210714.82100964.imp@bsdimp.com> To: nate@root.org From: "M. Warner Losh" In-Reply-To: <41D8C26A.8030105@root.org> References: <41D8B4D2.4050700@root.org> <41D8B6DF.7040703@errno.com> <41D8C26A.8030105@root.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: sam@errno.com cc: freebsd-acpi@freebsd.org Subject: Re: ACPI C3 patch for atheros X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jan 2005 04:08:16 -0000 In message: <41D8C26A.8030105@root.org> Nate Lawson writes: : Sam Leffler wrote: : > Lots of old code here; at the time I cribbed the suspend-resume code I : > don't believe the pci registers were saved for drivers. : > : > Here's the code from which the change originated: : > : > > /* : > >> * Suspend/Resume resets the PCI configuration space, so we : > have to : > >> * re-disable the RETRY_TIMEOUT register (0x41) to keep : > >> * PCI Tx retries from interfering with C3 CPU state : > >> * : > >> * Code taken from ipw2100 driver - jg : > >> */ : > >> pci_read_config_dword(pdev, 0x40, &val); : > >> if ((val & 0x0000ff00) != 0) : > >> pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); : > : > : > I was waiting for a reply from Warner about whether or not this belonged : > in the driver or if the pci layer should be handling this. : : If the comment is correct and the value is only lost due to : suspend/resume, this should already be covered by us saving/restoring : config registers although I believe we only save the normal registers : (first 64 bytes). Since RETRY_TIMEOUT is beyond that range, it's : probably not currently saved. Right. RETRY_LIMIT isn't standard. : In any case, I'd prefer we fix pci_cfg_save/restore() instead of doing : this in the driver. Overall, it would be useful to analyze and improve : coverage of what values we save and restore from config space. We : definitely need to cover type 1 and 2 (bridge) devices as well. We shouldn't, since it is non-standard. Type 1 can all be done in pcib, and type 2 can be done in cbb. Warner