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

John Baldwin jhb at FreeBSD.org
Wed Sep 17 07:58:55 PDT 2003


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 <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the cvs-src mailing list