From owner-cvs-src@FreeBSD.ORG Wed Sep 17 07:58:55 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8346B16A4C1 for ; Wed, 17 Sep 2003 07:58:55 -0700 (PDT) Received: from mail.speakeasy.net (mail10.speakeasy.net [216.254.0.210]) by mx1.FreeBSD.org (Postfix) with ESMTP id A38D343FE3 for ; Wed, 17 Sep 2003 07:58:52 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 22716 invoked from network); 17 Sep 2003 14:58:52 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 17 Sep 2003 14:58:52 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.12.9/8.12.9) with ESMTP id h8HEwm6Y082263; Wed, 17 Sep 2003 10:58:48 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.4 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200309170832.h8H8Wii8043278@repoman.freebsd.org> Date: Wed, 17 Sep 2003 10:58:50 -0400 (EDT) From: John Baldwin To: Mitsuru IWASAKI X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: RE: cvs commit: src/sys/dev/acpica acpi_pci.c src/sys/dev/pci pci.c pci_private.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 14:58:55 -0000 On 17-Sep-2003 Mitsuru IWASAKI wrote: > iwasaki 2003/09/17 01:32:44 PDT > > FreeBSD src repository > > Modified files: > sys/dev/acpica acpi_pci.c > sys/dev/pci pci.c pci_private.h > Log: > Add pci_resume() to reestablish interrupt routing after > suspend/resume. > Especially after hibernation, interrupt routing went back to initial > status on some machines. The values in memory should still be the same, so it should be sufficient simply to write back the already existent intline value back to the register. IOW, you shouldn't hae to call PCI_ASSIGN_INTERRUPT(), but should do something more like: if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) pci_write_config(child, PCIR_INTLINE, cfg->intline, 1); Eventually pci_suspend/resume should be saving and restoring all of the header registers and known capability registers for child devices. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/