acpi_irq_to_vector()
Quoted 4 lines
For PCI devices, we just read the irq out of the struct
pci_dev. The platform code gets the opportunity to mangle the irq in whatever way it chooses before thepci_devis passed to the driver. Can we do something similar for ACPI instead?
The acpi_irq_to_vector is called in acpi_os_install_interrupt_handler which is in acpi_init that is before pci_init get called. So I don't think it is reasonable to use pci_dev in acpi_init.
Signature · 18 lines
"It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk ------------------------------------------------------- This SF.NET email is sponsored by: eBay Great deals on office technology -- on eBay now! Click here: http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 _______________________________________________ Acpi-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/acpi-devel _______________________________________________ Linux-IA64 mailing list [email protected] http://lists.linuxia64.org/lists/listinfo/linux-ia64
To remove the ugly ifdef in the common part of ACPI code,
I think the simple way is to define a acpi_irq_to_vector in arch/i386/acpi which only return acpi_fadt.sci_int. Or someone can invent a method that can return correct value for each platform.
Thanks,
Luming
-----Original Message-----
From: Matthew Wilcox [mailto:[email protected]]
Sent: 2003?6?6? 3:23
To: [email protected]
Subject: [ACPI] acpi_irq_to_vector()
In the 2.5 ia64 patch, there's a lot of places which look like this:
@@ -251,7 +251,14 @@
irq = acpi_fadt.sci_int;
#ifdef CONFIG_IA64
- irq = gsi_to_vector(irq);
+ int vector;
+
+ vector = acpi_irq_to_vector(irq);
+ if (vector < 0) {
+ printk(KERN_ERR PREFIX "SCI (IRQ%d) not registerd\n", irq);
+ return AE_OK;
+ }
+ irq = vector;
#endif
acpi_irq_irq = irq;ok, we renamed gsi_to_vector to acpi_irq_to_vector(); that's fine. But we still have that ugly ifdef in there. Any resistance to defining acpi_irq_to_vector to simply return its value on non-ia64 platforms?
Then it'd look like:
irq = acpi_fadt.sci_int;
vector = acpi_irq_to_vector(irq);
if (vector < 0) {
printk(KERN_ERR PREFIX "SCI (IRQ%d) not registered\n", irq);
return AE_OK;
}
acpi_irq_irq = vector;
acpi_irq_handler = handler;
acpi_irq_context = context;
if (request_irq(vector, acpi_irq, SA_SHIRQ, "acpi", acpi_irq)) {...
Signature · 18 lines
"It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Acpi-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/acpi-devel _______________________________________________ Linux-IA64 mailing list [email protected] http://lists.linuxia64.org/lists/listinfo/linux-ia64
Quoted 1 line · Luming
So I don't think it is reasonable to use
pci_devinacpi_init.
That's not what willy was proposing.
I understood he was proposing a similar scheme; not to use pci_dev.
grant
_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Luming
Linux> To remove the ugly ifdef in the common part of ACPI code, I Linux> think the simple way is to define a acpi_irq_to_vector in Linux> arch/i386/acpi which only return acpi_fadt.sci_int. Or Linux> someone can invent a method that can return correct value for Linux> each platform.
Shouldn't this be called acpi_gsi_to_irq(), though?
--david
_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64