Browse Source

Revert "[POWERPC] Don't get PCI IRQ from OF for devices with no IRQ"

This reverts commit 41550c5128150175197257b6ceab2cd50dea7b51.

Quoth Ben Herrenschmidt:
 "Please revert this one for now.  It seems to break G5s :( Looks like
  PCI cells inside Apple IO ASICs don't have a PCI_INTERRUPT_LINE set.
  I need to figure out a better fix."

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds 18 years ago
parent
commit
e24bb60e11
1 changed files with 6 additions and 11 deletions
  1. 6 11
      arch/powerpc/kernel/prom_parse.c

+ 6 - 11
arch/powerpc/kernel/prom_parse.c

@@ -914,17 +914,6 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
 	u8 pin;
 	u8 pin;
 	int rc;
 	int rc;
 
 
-	/* We need to first check if the PCI device has a PCI interrupt at all
-	 * since we have cases where the device-node might expose non-PCI
-	 * interrupts, but the device has no PCI interrupt to it
-	 */
-	rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
-	if (rc != 0)
-		return rc;
-	/* No pin, exit */
-	if (pin == 0)
-		return -ENODEV;
-
 	/* Check if we have a device node, if yes, fallback to standard OF
 	/* Check if we have a device node, if yes, fallback to standard OF
 	 * parsing
 	 * parsing
 	 */
 	 */
@@ -936,6 +925,12 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
 	 * interrupt spec.  we assume #interrupt-cells is 1, which is standard
 	 * interrupt spec.  we assume #interrupt-cells is 1, which is standard
 	 * for PCI. If you do different, then don't use that routine.
 	 * for PCI. If you do different, then don't use that routine.
 	 */
 	 */
+	rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
+	if (rc != 0)
+		return rc;
+	/* No pin, exit */
+	if (pin == 0)
+		return -ENODEV;
 
 
 	/* Now we walk up the PCI tree */
 	/* Now we walk up the PCI tree */
 	lspec = pin;
 	lspec = pin;