summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/fwlynx_pci.c54
1 files changed, 30 insertions, 24 deletions
diff --git a/sys/dev/pci/fwlynx_pci.c b/sys/dev/pci/fwlynx_pci.c
index 5486e5b039f..803fdc977de 100644
--- a/sys/dev/pci/fwlynx_pci.c
+++ b/sys/dev/pci/fwlynx_pci.c
@@ -71,64 +71,70 @@ struct cfattach fwlynx_pci_ca = {
static int
fwlynx_pci_match(struct device *parent, struct cfdata *match, void *aux)
{
- struct pci_attach_args *pa = (struct pci_attach_args *) aux;
+ struct pci_attach_args *pa = (struct pci_attach_args *) aux;
- if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_TI &&
- PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_TI_TSB12LV21)
- return 1;
-
- return 0;
+ if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_TI &&
+ PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_TI_TSB12LV21)
+ return 1;
+
+ return 0;
}
static void
fwlynx_pci_attach(struct device *parent, struct device *self, void *aux)
{
- struct pci_attach_args *pa = (struct pci_attach_args *) aux;
+ struct pci_attach_args *pa = (struct pci_attach_args *) aux;
struct fwlynx_pci_softc *psc = (struct fwlynx_pci_softc *) self;
- char devinfo[256];
char const *intrstr;
pci_intr_handle_t ih;
u_int32_t csr;
- pci_devinfo(pa->pa_id, pa->pa_class, 0, devinfo, sizeof devinfo);
- printf(": %s (rev. 0x%02x)\n", devinfo, PCI_REVISION(pa->pa_class));
+#ifdef __NetBSD__
+ char devinfo[256];
+ pci_devinfo(pa->pa_id, pa->pa_class, 0, devinfo, sizeof devinfo);
+ printf(": %s (rev. 0x%02x)\n", devinfo, PCI_REVISION(pa->pa_class));
+#endif
psc->psc_sc.sc_dmat = pa->pa_dmat;
psc->psc_pc = pa->pa_pc;
psc->psc_tag = pa->pa_tag;
- /* Map I/O registers */
- if (pci_mapreg_map(pa, PCI_LYNX_MAP_REGISTER, PCI_MAPREG_TYPE_MEM, 0,
- &psc->psc_sc.sc_memt, &psc->psc_sc.sc_memh,
+ /* Map I/O registers */
+ if (pci_mapreg_map(pa, PCI_LYNX_MAP_REGISTER, PCI_MAPREG_TYPE_MEM, 0,
+ &psc->psc_sc.sc_memt, &psc->psc_sc.sc_memh,
NULL, &psc->psc_sc.sc_memsize)) {
- printf("%s: can't map register space\n", self->dv_xname);
- return;
- }
+ printf(": can't map register space\n");
+ return;
+ }
- /* Disable interrupts, so we don't get any spurious ones. */
+ /* Disable interrupts, so we don't get any spurious ones. */
pci_conf_write(psc->psc_pc, psc->psc_tag, 0);
- /* Enable the device. */
- csr = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG);
- pci_conf_write(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG,
- csr | PCI_COMMAND_MASTER_ENABLE);
+ /* Enable the device. */
+ csr = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG);
+ pci_conf_write(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG,
+ csr | PCI_COMMAND_MASTER_ENABLE);
/* Map and establish the interrupt. */
if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin,
pa->pa_intrline, &ih)) {
- printf("%s: couldn't map interrupt\n", self->dv_xname);
+ printf(": couldn't map interrupt\n");
+ bus_space_unmap(psc->psc_sc.sc_memt, psc->psc_sc.sc_memh,
+ psc->psc_sc.sc_memsize);
return;
}
intrstr = pci_intr_string(pa->pa_pc, ih);
psc->psc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_BIO, fwlynx_intr, &psc->psc_sc);
if (psc->psc_ih == NULL) {
- printf("%s: couldn't establish interrupt", self->dv_xname);
+ printf(": couldn't establish interrupt");
if (intrstr != NULL)
printf(" at %s", intrstr);
printf("\n");
+ bus_space_unmap(psc->psc_sc.sc_memt, psc->psc_sc.sc_memh,
+ psc->psc_sc.sc_memsize);
return;
}
- printf("%s: interrupting at %s\n", self->dv_xname, intrstr);
+ printf(": %s\n", intrstr);
if (fwlynx_init(&psc->psc_sc, pci_intr_evcnt(pa->pa_pc, ih)) != 0) {
pci_intr_disestablish(pa->pa_pc, psc->psc_ih);