From owner-freebsd-current Mon Dec 11 4: 9:14 2000 From owner-freebsd-current@FreeBSD.ORG Mon Dec 11 04:09:11 2000 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C079137B6D7 for ; Mon, 11 Dec 2000 04:08:47 -0800 (PST) Received: from mass.osd.bsdi.com (dhcp246.osd.bsdi.com [204.216.28.246]) by mx1.FreeBSD.org (Postfix) with ESMTP id 558006E2E7F for ; Mon, 11 Dec 2000 00:56:54 -0800 (PST) Received: from mass.osd.bsdi.com (localhost [127.0.0.1]) by mass.osd.bsdi.com (8.11.1/8.11.1) with ESMTP id eBB94Ox03098; Mon, 11 Dec 2000 01:04:24 -0800 (PST) (envelope-from msmith@mass.osd.bsdi.com) Message-Id: <200012110904.eBB94Ox03098@mass.osd.bsdi.com> X-Mailer: exmh version 2.1.1 10/15/1999 To: dg@root.com Cc: Mark Huizer , freebsd-current@FreeBSD.ORG Subject: PCI power states (was Re: fxp driver not reset after Windows reboot? ) In-reply-to: Your message of "Sun, 10 Dec 2000 12:45:07 PST." <200012102045.MAA12646@implode.root.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 11 Dec 2000 01:04:23 -0800 From: Mike Smith Sender: msmith@mass.osd.bsdi.com Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > Based on the above, I would say that Windows has powered-down the NIC. This > is outside of the scope of the driver, so I don't think a solution should be > implemented there. Probably something for our APM folks. It's actually an ACPI-ish issue, however drivers are probably going to have to change to support it correctly. I'm not 100% keen on having the PCI code unconditionally bring a device to D0 before handing it over for probe or attach; I got bitten by this just recently with activating I/O and memory ranges, and I think the only way for things to be done safely is going to be for a PCI driver to be required to: - check and enable busmastering - check and enable memory/port I/O as required - bring the device to D0 power state All of these can be abstracted as PCI methods, so they won't require lots of cut-n-paste in each driver: pci_enable_busmaster(dev); pci_enable_io(dev, SYS_RES_IOPORT | SYS_RES_MEMORY); pci_set_powerstate(dev, PCI_POWERSTATE_D0); Consider the above a request for review on the matter. Regards, Mike -- ... every activity meets with opposition, everyone who acts has his rivals and unfortunately opponents also. But not because people want to be opponents, rather because the tasks and relationships force people to take different points of view. [Dr. Fritz Todt] V I C T O R Y N O T V E N G E A N C E To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message