vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Some systems will fail to attach sk(4) with pci_mapreg_map() failing with "can't map mem space". This should resolve that. Also adds a missing newline when pci_intr_establish() fails. Index: if_sk.c ================================================== ================= RCS file: /cvs/src/sys/dev/pci/if_sk.c,v retrieving revision 1.77 diff -u -p -r1.77 if_sk.c --- if_sk.c 25 Jul 2005 00:49:43 -0000 1.77 +++ if_sk.c 28 Aug 2005 02:54:32 -0000 @@ -1431,11 +1431,11 @@ skc_attach(struct device *parent, struct struct pci_attach_args *pa = aux; struct skc_attach_args skca; pci_chipset_tag_t pc = pa->pa_pc; + pcireg_t command, memtype; pci_intr_handle_t ih; const char *intrstr = NULL; bus_size_t size; u_int8_t skrs; - u_int32_t command; char *revstr = NULL; DPRINTFN(2, ("begin skc_attach\n")); @@ -1481,11 +1481,18 @@ skc_attach(struct device *parent, struct return; } #else - if (pci_mapreg_map(pa, SK_PCI_LOMEM, PCI_MAPREG_TYPE_MEM, 0, - &sc->sk_btag, &sc->sk_bhandle, NULL, &size, 0)) { - printf(": can't map mem space\n"); + memtype = pci_mapreg_type(pc, pa->pa_tag, SK_PCI_LOMEM); + switch (memtype) { + case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT: + case PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_64BIT: + if (pci_mapreg_map(pa, SK_PCI_LOMEM, + memtype, 0, &sc->sk_btag, &sc->sk_bhandle, + NULL, &size, 0) == 0) + break; + default: + printf(": can't map mem space\n"); return; - } + } #endif sc->sc_dmatag = pa->pa_dmat; @@ -1512,6 +1519,7 @@ skc_attach(struct device *parent, struct printf(": couldn't establish interrupt"); if (intrstr != NULL) printf(" at %s", intrstr); + printf("\n"); goto fail_1; } printf(": %s\n", intrstr); |