cvs commit: src/sys/dev/acpica acpi_pci.c src/sys/dev/pci
pci.c pci_private.h
Doug Rabson
dfr at nlsystems.com
Wed Sep 17 12:21:56 PDT 2003
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?
More information about the cvs-src
mailing list