Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/ctau/if_ct.c
Show First 20 Lines • Show All 453 Lines • ▼ Show 20 Lines | /* KASSERT ((bd != NULL), ("ct%d: NULL device softc\n", unit));*/ | ||||
if (!ct_is_free_res (dev, 0, SYS_RES_IOPORT, | if (!ct_is_free_res (dev, 0, SYS_RES_IOPORT, | ||||
iobase, iobase + NPORT, NPORT)) { | iobase, iobase + NPORT, NPORT)) { | ||||
printf ("ct%d: Resource IOPORT isn't free\n", unit); | printf ("ct%d: Resource IOPORT isn't free\n", unit); | ||||
return ENXIO; | return ENXIO; | ||||
} | } | ||||
if (!ct_probe_board (iobase, -1, -1)) { | if (!ct_probe_board (iobase, -1, -1)) { | ||||
printf ("ct%d: probing for Tau-ISA at %lx faild\n", unit, iobase); | printf ("ct%d: probing for Tau-ISA at %jx faild\n", unit, iobase); | ||||
return ENXIO; | return ENXIO; | ||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
static void | static void | ||||
ct_bus_dmamap_addr (void *arg, bus_dma_segment_t *segs, int nseg, int error) | ct_bus_dmamap_addr (void *arg, bus_dma_segment_t *segs, int nseg, int error) | ||||
▲ Show 20 Lines • Show All 156 Lines • ▼ Show 20 Lines | if (! ct_open_board (b, unit, iobase, irq, drq)) { | ||||
return ENXIO; | return ENXIO; | ||||
} | } | ||||
bd->board = b; | bd->board = b; | ||||
ct_ln[2] = '0' + unit; | ct_ln[2] = '0' + unit; | ||||
mtx_init (&bd->ct_mtx, ct_ln, MTX_NETWORK_LOCK, MTX_DEF|MTX_RECURSE); | mtx_init (&bd->ct_mtx, ct_ln, MTX_NETWORK_LOCK, MTX_DEF|MTX_RECURSE); | ||||
if (! probe_irq (b, irq)) { | if (! probe_irq (b, irq)) { | ||||
printf ("ct%d: irq %ld not functional\n", unit, irq); | printf ("ct%d: irq %jd not functional\n", unit, irq); | ||||
bd->board = 0; | bd->board = 0; | ||||
adapter [unit] = 0; | adapter [unit] = 0; | ||||
free (b, M_DEVBUF); | free (b, M_DEVBUF); | ||||
bus_release_resource (dev, SYS_RES_IRQ, bd->irq_rid, | bus_release_resource (dev, SYS_RES_IRQ, bd->irq_rid, | ||||
bd->irq_res); | bd->irq_res); | ||||
bus_release_resource (dev, SYS_RES_DRQ, bd->drq_rid, | bus_release_resource (dev, SYS_RES_DRQ, bd->drq_rid, | ||||
bd->drq_res); | bd->drq_res); | ||||
bus_release_resource (dev, SYS_RES_IOPORT, bd->base_rid, | bus_release_resource (dev, SYS_RES_IOPORT, bd->base_rid, | ||||
bd->base_res); | bd->base_res); | ||||
mtx_destroy (&bd->ct_mtx); | mtx_destroy (&bd->ct_mtx); | ||||
return ENXIO; | return ENXIO; | ||||
} | } | ||||
callout_init (&led_timo[unit], 1); | callout_init (&led_timo[unit], 1); | ||||
s = splimp (); | s = splimp (); | ||||
if (bus_setup_intr (dev, bd->irq_res, | if (bus_setup_intr (dev, bd->irq_res, | ||||
INTR_TYPE_NET|INTR_MPSAFE, | INTR_TYPE_NET|INTR_MPSAFE, | ||||
NULL, ct_intr, bd, &bd->intrhand)) { | NULL, ct_intr, bd, &bd->intrhand)) { | ||||
printf ("ct%d: Can't setup irq %ld\n", unit, irq); | printf ("ct%d: Can't setup irq %jd\n", unit, irq); | ||||
bd->board = 0; | bd->board = 0; | ||||
adapter [unit] = 0; | adapter [unit] = 0; | ||||
free (b, M_DEVBUF); | free (b, M_DEVBUF); | ||||
bus_release_resource (dev, SYS_RES_IRQ, bd->irq_rid, | bus_release_resource (dev, SYS_RES_IRQ, bd->irq_rid, | ||||
bd->irq_res); | bd->irq_res); | ||||
bus_release_resource (dev, SYS_RES_DRQ, bd->drq_rid, | bus_release_resource (dev, SYS_RES_DRQ, bd->drq_rid, | ||||
bd->drq_res); | bd->drq_res); | ||||
bus_release_resource (dev, SYS_RES_IOPORT, bd->base_rid, | bus_release_resource (dev, SYS_RES_IOPORT, bd->base_rid, | ||||
▲ Show 20 Lines • Show All 1,544 Lines • Show Last 20 Lines |