Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee401363 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Len Brown
Browse files

ACPI: PCI: follow typical PCI INTx swizzling pattern



No functional change; this just uses the typical pattern of
PCI INTx swizzling done on other architectures.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 3b1ea18d
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -399,7 +399,7 @@ static struct acpi_prt_entry *
acpi_pci_irq_derive(struct pci_dev *dev, int pin)
acpi_pci_irq_derive(struct pci_dev *dev, int pin)
{
{
	struct acpi_prt_entry *entry = NULL;
	struct acpi_prt_entry *entry = NULL;
	struct pci_dev *bridge = dev;
	struct pci_dev *bridge;
	u8 bridge_pin = 0, orig_pin = pin;
	u8 bridge_pin = 0, orig_pin = pin;




@@ -407,9 +407,9 @@ acpi_pci_irq_derive(struct pci_dev *dev, int pin)
	 * Attempt to derive an IRQ for this device from a parent bridge's
	 * Attempt to derive an IRQ for this device from a parent bridge's
	 * PCI interrupt routing entry (eg. yenta bridge and add-in card bridge).
	 * PCI interrupt routing entry (eg. yenta bridge and add-in card bridge).
	 */
	 */
	while (bridge->bus->self) {
	bridge = dev->bus->self;
		pin = (((pin - 1) + PCI_SLOT(bridge->devfn)) % 4) + 1;
	while (bridge) {
		bridge = bridge->bus->self;
		pin = (((pin - 1) + PCI_SLOT(dev->devfn)) % 4) + 1;


		if ((bridge->class >> 8) == PCI_CLASS_BRIDGE_CARDBUS) {
		if ((bridge->class >> 8) == PCI_CLASS_BRIDGE_CARDBUS) {
			/* PC card has the same IRQ as its cardbridge */
			/* PC card has the same IRQ as its cardbridge */
@@ -431,6 +431,9 @@ acpi_pci_irq_derive(struct pci_dev *dev, int pin)
					 pci_name(bridge)));
					 pci_name(bridge)));
			return entry;
			return entry;
		}
		}

		dev = bridge;
		bridge = dev->bus->self;
	}
	}


	dev_warn(&dev->dev, "can't derive routing for PCI INT %c\n",
	dev_warn(&dev->dev, "can't derive routing for PCI INT %c\n",