From owner-cvs-all@FreeBSD.ORG Wed Sep 17 12:21:56 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5238E16A4B3; Wed, 17 Sep 2003 12:21:56 -0700 (PDT) Received: from herring.nlsystems.com (mailgate.nlsystems.com [80.177.232.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE4A443F75; Wed, 17 Sep 2003 12:21:54 -0700 (PDT) (envelope-from dfr@nlsystems.com) Received: from [10.0.0.2] (herring.nlsystems.com [10.0.0.2]) by herring.nlsystems.com (8.12.9/8.12.8) with ESMTP id h8HJLTW2018503; Wed, 17 Sep 2003 20:21:39 +0100 (BST) (envelope-from dfr@nlsystems.com) From: Doug Rabson To: John Baldwin In-Reply-To: References: Content-Type: text/plain Message-Id: <1063826489.18459.1.camel@herring.nlsystems.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 17 Sep 2003 20:21:29 +0100 Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-4.9 required=5.0 tests=EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN version=2.55 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 cc: Mitsuru IWASAKI Subject: RE: cvs commit: src/sys/dev/acpica acpi_pci.c src/sys/dev/pci pci.c pci_private.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 19:21:56 -0000 On Wed, 2003-09-17 at 15:58, John Baldwin wrote: > 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. How will this re-establish irq routing? The intline register is just informative - don't you have to re-program the host chipset via acpi or pcibios?