cvs commit: src/sys/dev/acpica acpi_pci.c src/sys/dev/pci pci.c pci_private.h

M. Warner Losh imp at bsdimp.com
Thu Sep 18 18:19:25 PDT 2003


In message: <XFMail.20030917105850.jhb at FreeBSD.org>
            John Baldwin <jhb at freebsd.org> writes:
: 
: 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.

Yes.  These are some of the registers that I'm saving now in my
newcard tree, and also in the power tree we created at bsdcon.  The
inline register is just a hint, but an important hint that we use.

Warner


More information about the cvs-src mailing list