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:
Nick Hibma 2000-02-20 14:22:44 +00:00
parent f082218c18
commit 5e78bf3190
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=57358
4 changed files with 32 additions and 32 deletions

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {