if (pcibios_flags & PCIBIOS_INTR_FIXUP) return 1;
pci_intr_route_link(pc, ihp)	pci_chipset_tag_t pc;	pci_intr_handle_t *ihp;{	struct pciintr_link_map *l;	pcireg_t intr;	int rv = 1;	char *p = NULL;	l = ihp->link;	if (!l || pciintr_icu_tag == NULL)		return (1);	if (l->fixup_stage == 0) {		if (l->irq == I386_PCI_INTERRUPT_LINE_NO_CONNECTION) {			/* Appropriate interrupt was not found. */			if (pcibios_flags & PCIBIOS_INTRDEBUG)				printf("pci_intr_route_link: PIRQ 0x%02x: "				    "no IRQ, try "				    "\"option PCIBIOS_IRQS_HINT=0x%04x\"\n",				    l->clink,				    /* suggest irq 9/10/11, if possible */				    (l->bitmap & 0x0e00) ? (l->bitmap & 0x0e00)				    : l->bitmap);		} else			p = " preserved BIOS setting";	} else {		if (pciintr_icu_set_intr(pciintr_icu_tag, pciintr_icu_handle,		    l->clink, l->irq) != 0 ||		    pciintr_icu_set_trigger(pciintr_icu_tag, pciintr_icu_handle,		    l->irq, IST_LEVEL) != 0) {			p = " failed";			rv = 0;		} else			p = "";	}	if (p && pcibios_flags & PCIBIOS_INTRDEBUG)		printf("pci_intr_route_link: route PIRQ 0x%02x -> IRQ %d%s\n",		    l->clink, l->irq, p);	if (!rv)		return (0);	/*	 * IRQs 14 and 15 are reserved for PCI IDE interrupts; don't muck	 * with them.	 */	if (ihp->line == 14 || ihp->line == 15)		return (1);	intr = pci_conf_read(pc, ihp->tag, PCI_INTERRUPT_REG);	if (ihp->line != PCI_INTERRUPT_LINE(intr)) {		intr &= ~(PCI_INTERRUPT_LINE_MASK << PCI_INTERRUPT_LINE_SHIFT);		intr |= (ihp->line << PCI_INTERRUPT_LINE_SHIFT);		pci_conf_write(pc, ihp->tag, PCI_INTERRUPT_REG, intr);	}	return (1);}