_DIS ACPI PCI Interrupt Links

Len Brown
2008-12-19T08:22:55Z

We've had the reference counting on Links disabled
since 2.6.12. Time to try to enable it and re-learn
why we disabled it back then:-)

This allows links to get back into the _DISabled state
when drivers free IRQs. They may free IRQs at
unload time, or at suspend time.

For suspend, this allows us to "act more like boot",
in that links start off in _DIS and are programmed
as the drivers request them.

irqrouter_resume() will still restore the
links that were not in the _DIS state at suspend.
(Though I really don't like this routine, and how
it runs AML with irqs disabled)

One opportunity for a bug on resume we may have is
that we don't actually force all the links to _DIS
before we start programming them as we do at boot time.
We can add that if it turns out to be a problem --
but would do it with interrupts on, like we do at boot...

Anyway, this all works for me...
If Rafael comes through with PCI Core code to
free IRQ at suspend for all devices, then we may
find outselves very close to the state where all
the links are disabled at suspend and irqrouter_resume()
has nothing to do.

cheers,
-- Len Brown - Intel Open Source Technology Center