Skip site navigation (1)Skip section navigation (2)
Date:      17 Sep 2003 20:21:29 +0100
From:      Doug Rabson <dfr@nlsystems.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Mitsuru IWASAKI <iwasaki@FreeBSD.org>
Subject:   RE: cvs commit: src/sys/dev/acpica acpi_pci.c src/sys/dev/pci pci.c pci_private.h
Message-ID:  <1063826489.18459.1.camel@herring.nlsystems.com>
In-Reply-To: <XFMail.20030917105850.jhb@FreeBSD.org>
References:  <XFMail.20030917105850.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1063826489.18459.1.camel>