Linux ATA/IDE development
 help / color / mirror / Atom feed
* [Patch]: ACPI : Not register gsi for PCI IDE controller in legacy mode
@ 2007-12-17  7:13 Zhao Yakui
  2008-01-11  3:53 ` Len Brown
  0 siblings, 1 reply; 3+ messages in thread
From: Zhao Yakui @ 2007-12-17  7:13 UTC (permalink / raw)
  To: lenb; +Cc: linux-acpi, linux-ide

Subject: ACPI : Not register gsi for PCI IDE controller in legacy mode
>From : Alan Cox <alan@lxorguk.ukuu.org.uk>

When PCI IDE controller works in legacy mode and no PRT entry is found 
in ACPI PRT table, OSPM will neither read the irq number from the IDE
PCI configuration space nor call the function of acpi_register_gsi to
register gsi.

http://bugzilla.kernel.org/show_bug.cgi?id=5637

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Alan Cox  <alan@lxorguk.ukuu.org.uk>

---
 drivers/acpi/pci_irq.c |    9 +++++++++
 1 file changed, 9 insertions(+)

Index: linux-2.6.24-rc5/drivers/acpi/pci_irq.c
===================================================================
--- linux-2.6.24-rc5.orig/drivers/acpi/pci_irq.c
+++ linux-2.6.24-rc5/drivers/acpi/pci_irq.c
@@ -429,6 +429,15 @@ int acpi_pci_irq_enable(struct pci_dev *
 					  &polarity, &link,
 					  acpi_pci_allocate_irq);
 
+	if (irq < 0) {
+		/*
+		 * IDE legacy mode controller IRQs are magic. Why do compat
+		 * extensions always make such a nasty mess.
+		 */
+		if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE &&
+				(dev->class & 0x05) == 0)
+			return 0;
+	}
 	/*
 	 * No IRQ known to the ACPI subsystem - maybe the BIOS / 
 	 * driver reported one, then use it. Exit in any case.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-01-11  4:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-17  7:13 [Patch]: ACPI : Not register gsi for PCI IDE controller in legacy mode Zhao Yakui
2008-01-11  3:53 ` Len Brown
2008-01-11  4:25   ` Zhao Yakui

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox