Move the warning on wrong IRQ values to the right place, before any
resource allocation is attempted. It will present the user with a message that he has to switch on USB support in his BIOS.
This commit is contained in:
parent
21e6913264
commit
d0fd416b57
@ -150,6 +150,14 @@ ohci_pci_attach(device_t self)
|
||||
void *ih;
|
||||
int intr;
|
||||
|
||||
/* For the moment, put in a message stating what is wrong */
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
return ENXIO;
|
||||
}
|
||||
|
||||
/* XXX where does it say so in the spec? */
|
||||
sc->sc_bus.usbrev = USBREV_1_0;
|
||||
|
||||
@ -214,14 +222,6 @@ ohci_pci_attach(device_t self)
|
||||
sprintf(sc->sc_vendor, "(unknown)");
|
||||
}
|
||||
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
err = ENXIO;
|
||||
goto bad3;
|
||||
}
|
||||
|
||||
err = BUS_SETUP_INTR(parent, self, irq_res, INTR_TYPE_BIO,
|
||||
(driver_intr_t *) ohci_intr, sc, &ih);
|
||||
if (err) {
|
||||
|
@ -168,6 +168,14 @@ uhci_pci_attach(device_t self)
|
||||
int intr;
|
||||
int err;
|
||||
|
||||
/* For the moment, put in a message stating what is wrong */
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
return ENXIO;
|
||||
}
|
||||
|
||||
rid = PCI_UHCI_BASE_REG;
|
||||
io_res = bus_alloc_resource(self, SYS_RES_IOPORT, &rid,
|
||||
0, ~0, 1, RF_ACTIVE);
|
||||
@ -239,14 +247,6 @@ uhci_pci_attach(device_t self)
|
||||
break;
|
||||
}
|
||||
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
err = ENXIO;
|
||||
goto bad3;
|
||||
}
|
||||
|
||||
err = BUS_SETUP_INTR(parent, self, irq_res, INTR_TYPE_BIO,
|
||||
(driver_intr_t *) uhci_intr, sc, &ih);
|
||||
if (err) {
|
||||
|
@ -150,6 +150,14 @@ ohci_pci_attach(device_t self)
|
||||
void *ih;
|
||||
int intr;
|
||||
|
||||
/* For the moment, put in a message stating what is wrong */
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
return ENXIO;
|
||||
}
|
||||
|
||||
/* XXX where does it say so in the spec? */
|
||||
sc->sc_bus.usbrev = USBREV_1_0;
|
||||
|
||||
@ -214,14 +222,6 @@ ohci_pci_attach(device_t self)
|
||||
sprintf(sc->sc_vendor, "(unknown)");
|
||||
}
|
||||
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
err = ENXIO;
|
||||
goto bad3;
|
||||
}
|
||||
|
||||
err = BUS_SETUP_INTR(parent, self, irq_res, INTR_TYPE_BIO,
|
||||
(driver_intr_t *) ohci_intr, sc, &ih);
|
||||
if (err) {
|
||||
|
@ -168,6 +168,14 @@ uhci_pci_attach(device_t self)
|
||||
int intr;
|
||||
int err;
|
||||
|
||||
/* For the moment, put in a message stating what is wrong */
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
return ENXIO;
|
||||
}
|
||||
|
||||
rid = PCI_UHCI_BASE_REG;
|
||||
io_res = bus_alloc_resource(self, SYS_RES_IOPORT, &rid,
|
||||
0, ~0, 1, RF_ACTIVE);
|
||||
@ -239,14 +247,6 @@ uhci_pci_attach(device_t self)
|
||||
break;
|
||||
}
|
||||
|
||||
intr = pci_read_config(self, PCIR_INTLINE, 1);
|
||||
if (intr == 0 || intr == 255) {
|
||||
device_printf(self, "Invalid irq %d\n", intr);
|
||||
device_printf(self, "Please switch on USB support and switch PNP-OS to 'No' in BIOS\n");
|
||||
err = ENXIO;
|
||||
goto bad3;
|
||||
}
|
||||
|
||||
err = BUS_SETUP_INTR(parent, self, irq_res, INTR_TYPE_BIO,
|
||||
(driver_intr_t *) uhci_intr, sc, &ih);
|
||||
if (err) {
|
||||
|
Loading…
Reference in New Issue
Block a user