Bug? PCI link device _SRS
Nate Lawson
nate at root.org
Fri May 28 11:20:27 PDT 2004
On Fri, 28 May 2004, John Baldwin wrote:
> On Friday 28 May 2004 01:00 pm, Nate Lawson wrote:
> > John, great to see you're working on a lot of these already. Appreciate
> > it.
> >
> > On Fri, 28 May 2004, John Baldwin wrote:
> > > On Thursday 27 May 2004 04:55 pm, Brown, Len wrote:
> > > > If a platform gives you a _CRS IRQ that
> > > > is outside the _PRS list, then do no
> > > > stick with the _CRS -- select
> > > > a new (valid) one from the _PRS list.
> > >
> > > Ah, I have a patch to do this already that I can commit.
> > >
> > > > If a platform gives you a _CRS IRQ that
> > > > is different from the _SRS you just
> > > > invoked. Assume that the _SRS worked
> > > > and that the _CRS is bogus.
> > >
> > > Huh, we don't do that type of checking, but we do use _CRS for later
> > > devices routed to the same link to see what IRQ they should use.
> >
> > I think the first one will take care of how we handle this one. We'll do
> > _SRS and ignore the _CRS that comes back. Later, we go to program a
> > device that has the same link and its _CRS will be outside the _PRS list,
> > so we'll fall back to selecting a valid one from _PRS.
>
> But what if we chose a different IRQ? Then the routing for the earlier device
> would be wrong. acpi_pcib_route_interrupt() needs to work with the pci_link
> code more closely, and we should cache the current IRQ in the softc and use
> that to determine if it is routed rather than _CRS I think. This is how the
> new $PIR code works.
I was assuming that the _PRS selection algorithm was idempotent and
deterministic. If this is not the case, you will need to cache the value
you set.
-Nate
More information about the freebsd-acpi
mailing list