+/*
+ * acpi_pci_irq_lookup
+ * success: return IRQ >= 0
+ * failure: return -1
+ */
+static int
+acpi_pci_irq_lookup(struct pci_bus *bus,
+ int device,
+ int pin,
+ int *edge_level,
+ int *active_high_low, char **link, irq_lookup_func func)
+{
+ struct acpi_prt_entry *entry = NULL;
+ int segment = pci_domain_nr(bus);
+ int bus_nr = bus->number;
+ int ret;
+
+ ACPI_FUNCTION_TRACE("acpi_pci_irq_lookup");
+
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Searching for PRT entry for %02x:%02x:%02x[%c]\n",
+ segment, bus_nr, device, ('A' + pin)));
+
+ entry = acpi_pci_irq_find_prt_entry(segment, bus_nr, device, pin);
+ if (!entry) {
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "PRT entry not found\n"));
+ return_VALUE(-1);
+ }
+
+ ret = func(entry, edge_level, active_high_low, link);
+ return_VALUE(ret);
+}
+