Lines Matching +full:wired +full:- +full:interrupt

1 /*-
76 if (prt == NULL || prt->Pointer == NULL) in prt_walk_table()
80 prtptr = prt->Pointer; in prt_walk_table()
82 while (entry->Length != 0) { in prt_walk_table()
84 prtptr += entry->Length; in prt_walk_table()
97 if (entry->Source[0] == '\0') in prt_attach_devices()
104 if (entry->SourceIndex != 0) in prt_attach_devices()
109 if (ACPI_FAILURE(AcpiGetHandle(ACPI_ROOT_OBJECT, entry->Source, &handle))) in prt_attach_devices()
124 acpi_pci_link_add_reference(child, entry->SourceIndex, pcib, in prt_attach_devices()
125 ACPI_ADR_PCI_SLOT(entry->Address), entry->Pin); in prt_attach_devices()
136 * Get the PCI interrupt routing table for this bus. If we can't in acpi_pcib_fetch_prt()
141 prt->Length = ACPI_ALLOCATE_BUFFER; in acpi_pcib_fetch_prt()
145 "could not get PCI interrupt routing table for %s - %s\n", in acpi_pcib_fetch_prt()
160 if (pr->pr_entry != NULL) in prt_lookup_device()
171 if (ACPI_ADR_PCI_SLOT(entry->Address) == pr->pr_slot && in prt_lookup_device()
172 entry->Pin == pr->pr_pin) in prt_lookup_device()
173 pr->pr_entry = entry; in prt_lookup_device()
177 * Route an interrupt for a child of the bridge.
186 int interrupt; in acpi_pcib_route_interrupt() local
191 interrupt = PCI_INVALID_IRQ; in acpi_pcib_route_interrupt()
193 /* ACPI numbers pins 0-3, not 1-4 like the BIOS. */ in acpi_pcib_route_interrupt()
194 pin--; in acpi_pcib_route_interrupt()
213 if (prt->Source[0] != '\0') in acpi_pcib_route_interrupt()
214 printf(" (src %s:%u)", prt->Source, prt->SourceIndex); in acpi_pcib_route_interrupt()
220 * and it's hard-wired so we're done. in acpi_pcib_route_interrupt()
222 * XXX: If the source index is non-zero, ignore the source device and in acpi_pcib_route_interrupt()
223 * assume that this is a hard-wired entry. in acpi_pcib_route_interrupt()
225 if (prt->Source[0] == '\0' || prt->SourceIndex != 0) { in acpi_pcib_route_interrupt()
228 pci_get_slot(dev), 'A' + pin, prt->SourceIndex); in acpi_pcib_route_interrupt()
229 if (prt->SourceIndex) { in acpi_pcib_route_interrupt()
230 interrupt = prt->SourceIndex; in acpi_pcib_route_interrupt()
231 BUS_CONFIG_INTR(dev, interrupt, INTR_TRIGGER_LEVEL, in acpi_pcib_route_interrupt()
234 device_printf(pcib, "error: invalid hard-wired IRQ of 0\n"); in acpi_pcib_route_interrupt()
239 * We have to find the source device (PCI interrupt link device). in acpi_pcib_route_interrupt()
241 if (ACPI_FAILURE(AcpiGetHandle(ACPI_ROOT_OBJECT, prt->Source, &lnkdev))) { in acpi_pcib_route_interrupt()
242 device_printf(pcib, "couldn't find PCI interrupt link device %s\n", in acpi_pcib_route_interrupt()
243 prt->Source); in acpi_pcib_route_interrupt()
246 interrupt = acpi_pci_link_route_interrupt(acpi_get_device(lnkdev), in acpi_pcib_route_interrupt()
247 prt->SourceIndex); in acpi_pcib_route_interrupt()
249 if (bootverbose && PCI_INTERRUPT_VALID(interrupt)) in acpi_pcib_route_interrupt()
251 pci_get_slot(dev), 'A' + pin, interrupt, acpi_name(lnkdev)); in acpi_pcib_route_interrupt()
256 if (PCI_INTERRUPT_VALID(interrupt)) { in acpi_pcib_route_interrupt()
257 interrupt = acpi_map_intr(dev, interrupt, lnkdev); in acpi_pcib_route_interrupt()
258 KASSERT(PCI_INTERRUPT_VALID(interrupt), ("mapping fail")); in acpi_pcib_route_interrupt()
261 return_VALUE(interrupt); in acpi_pcib_route_interrupt()
328 * previously-granted controls. in acpi_pcib_osc()