2001-12-10 20:17:36

by Andrew Grover

[permalink] [raw]
Subject: RE: ACPI IRQ routing (was [ACPI] ACPI source release updated (200 11205))

> From: Kai Germaschewski [mailto:[email protected]]

Hi Kai,

I also got ACPI IRQ routing working on a system over the weekend. Sounds
like yours is better, so great we'll adopt yours. Thanks for stepping up on
this.

> I changed pci-irq.c to use the ACPI interrupt routing, and also added
> dynamic routing table support. The appended patch is a bit
> preliminary,
> but it works here, even for assigning irqs.

> Further comments/to do:
> o The ACPI PCI in general needs further cleanup and
> integration with the
> normal PCI layer. I believe that should wait until the new device
> infrastructure is in place, though. E.g., I think one can
> get rid of the static table which is currently setup in acpi_pci.c.

<shrug>. Once we get it working, we can get it working right, and save the
1K.

> o I'm not exactly happy with the way ACPI does things currently, but I
> didn't change it to keep the patch small. It uses multiple functions
> to parse the IRQ resource descriptor into a linked list of
> "acpi_resource" which I then again have to convert back into the
> mask which was in the IRQ resource desriptor in the first place.
> About the same holds for the other way, instead of just setting
> up a five byte IRQ descriptor, I need to setup two "acpi_resource"
> structs, calculate lengths, etc. which will eventually be
> converted to
> just the five bytes. IMO the conversion routines are unnecessary
> bloat...

Like I said above, I think it's too early to be optimizing this code. My
main concern was more about integrating ACPI into pci-irq.c in a readable
manner. It is pretty $PIR-specific (no surprise there). Anyways let me work
with your new code and I will be able to comment more.

> o Things need to be made dynamic, i.e. try ACPI and if it
> doesn't work,
> fall back to the normal method. Also, a command line flag to disable
> acpi irq routing is probably a good idea.

At this point, I'd think one to *enable* it would be better until the code
is tested more.

Regards -- Andy