Date: Thu, 25 Sep 2008 19:02:48 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 150458 for review Message-ID: <200809251902.m8PJ2mP0083159@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=150458 Change 150458 by hselasky@hselasky_laptop001 on 2008/09/25 19:02:40 IFC @ 150453, catch up with some mpsafe TTY changes. Affected files ... .. //depot/projects/usb/src/sys/dev/cxgb/sys/mvec.h#5 integrate .. //depot/projects/usb/src/sys/dev/cxgb/sys/uipc_mvec.c#5 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_cbus.c#4 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_isa.c#4 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_lebuffer.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_pci.c#5 integrate .. //depot/projects/usb/src/sys/dev/le/lebuffer_sbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#6 integrate .. //depot/projects/usb/src/sys/dev/msk/if_mskreg.h#6 integrate .. //depot/projects/usb/src/sys/dev/usb/ubsa.c#45 integrate .. //depot/projects/usb/src/sys/dev/usb/umass.c#51 integrate .. //depot/projects/usb/src/sys/dev/xen/netfront/netfront.c#2 integrate .. //depot/projects/usb/src/sys/i386/bios/apm.h#2 integrate .. //depot/projects/usb/src/sys/i386/include/param.h#3 integrate .. //depot/projects/usb/src/sys/i386/include/smp.h#6 integrate .. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#3 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#2 integrate .. //depot/projects/usb/src/sys/i386/xen/xen_machdep.c#3 integrate .. //depot/projects/usb/src/sys/kern/kern_condvar.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_synch.c#13 integrate .. //depot/projects/usb/src/sys/kern/subr_witness.c#12 integrate .. //depot/projects/usb/src/sys/kern/vfs_cache.c#10 integrate .. //depot/projects/usb/src/sys/net/if_stf.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#4 integrate .. //depot/projects/usb/src/sys/netinet/tcp_input.c#13 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#12 integrate .. //depot/projects/usb/src/sys/sys/tty.h#6 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_vfsops.c#11 integrate .. //depot/projects/usb/src/sys/xen/evtchn/evtchn.c#2 integrate .. //depot/projects/usb/src/sys/xen/gnttab.c#2 integrate .. //depot/projects/usb/src/sys/xen/gnttab.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/arch-x86/xen-x86_32.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/arch-x86/xen-x86_64.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/arch-x86/xen.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/callback.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/domctl.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/features.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/grant_table.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/memory.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/physdev.h#2 integrate .. //depot/projects/usb/src/sys/xen/interface/vcpu.h#2 integrate Differences ... ==== //depot/projects/usb/src/sys/dev/cxgb/sys/mvec.h#5 (text+ko) ==== @@ -25,7 +25,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/cxgb/sys/mvec.h,v 1.15 2008/02/23 01:06:17 kmacy Exp $ + * $FreeBSD: src/sys/dev/cxgb/sys/mvec.h,v 1.16 2008/09/25 06:46:28 kmacy Exp $ * ***************************************************************************/ @@ -62,8 +62,12 @@ caddr_t ext_buf; /* start of buffer */ void (*ext_free) /* free routine if not the usual */ (void *, void *); +#if __FreeBSD_version >= 800016 void *ext_arg1; /* optional argument pointer */ void *ext_arg2; /* optional argument pointer */ +#else + void *ext_args; /* optional argument pointer */ +#endif u_int ext_size; /* size of buffer, for ext_free */ volatile u_int *ref_cnt; /* pointer to ref count info */ int ext_type; /* type of external storage */ ==== //depot/projects/usb/src/sys/dev/cxgb/sys/uipc_mvec.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ ***************************************************************************/ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cxgb/sys/uipc_mvec.c,v 1.26 2008/09/23 03:16:54 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/sys/uipc_mvec.c,v 1.27 2008/09/25 06:46:28 kmacy Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -405,8 +405,13 @@ case EXT_EXTREF: KASSERT(mi->mi_ext.ext_free != NULL, ("%s: ext_free not set", __func__)); +#if __FreeBSD_version >= 800016 (*(mi->mi_ext.ext_free))(mi->mi_ext.ext_arg1, mi->mi_ext.ext_arg2); +#else + (*(mi->mi_ext.ext_free))(mi->mi_ext.ext_buf, + mi->mi_ext.ext_args); +#endif break; default: dump_mi(mi); ==== //depot/projects/usb/src/sys/dev/le/if_le_cbus.c#4 (text) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/le/if_le_cbus.c,v 1.5 2007/02/23 12:18:45 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/le/if_le_cbus.c,v 1.6 2008/09/24 21:26:46 marius Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -70,12 +70,8 @@ struct le_cbus_softc { struct am7990_softc sc_am7990; /* glue to MI code */ - int sc_rrid; struct resource *sc_rres; - bus_space_tag_t sc_regt; - bus_space_handle_t sc_regh; - int sc_irid; struct resource *sc_ires; void *sc_ih; @@ -128,10 +124,9 @@ { struct le_cbus_softc *lesc = (struct le_cbus_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_BDP, val); + bus_write_2(lesc->sc_rres, CNET98S_RAP, port); + bus_barrier(lesc->sc_rres, CNET98S_RAP, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, CNET98S_BDP, val); } #ifdef LEDEBUG @@ -140,10 +135,9 @@ { struct le_cbus_softc *lesc = (struct le_cbus_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, CNET98S_BDP)); + bus_write_2(lesc->sc_rres, CNET98S_RAP, port); + bus_barrier(lesc->sc_rres, CNET98S_RAP, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, CNET98S_BDP)); } #endif @@ -152,10 +146,9 @@ { struct le_cbus_softc *lesc = (struct le_cbus_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RDP, val); + bus_write_2(lesc->sc_rres, CNET98S_RAP, port); + bus_barrier(lesc->sc_rres, CNET98S_RAP, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, CNET98S_RDP, val); } static uint16_t @@ -163,10 +156,9 @@ { struct le_cbus_softc *lesc = (struct le_cbus_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, CNET98S_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RDP)); + bus_write_2(lesc->sc_rres, CNET98S_RAP, port); + bus_barrier(lesc->sc_rres, CNET98S_RAP, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, CNET98S_RDP)); } static void @@ -179,16 +171,16 @@ */ /* Reset the chip. */ - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RESET, - bus_space_read_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RESET)); + bus_write_2(lesc->sc_rres, CNET98S_RESET, + bus_read_2(lesc->sc_rres, CNET98S_RESET)); DELAY(500); /* ISA bus configuration */ /* ISACSR0 - set Master Mode Read Active time to 300ns. */ - le_cbus_wrbcr(sc, LE_BCR0, 0x0006); + le_cbus_wrbcr(sc, LE_BCR0, 0x0006); /* ISACSR1 - set Master Mode Write Active time to 300ns. */ - le_cbus_wrbcr(sc, LE_BCR1, 0x0006); -#ifdef LEDEBUG + le_cbus_wrbcr(sc, LE_BCR1, 0x0006); +#ifdef LEDEBUG device_printf(dev, "ISACSR2=0x%x\n", le_cbus_rdbcr(sc, LE_BCR2)); #endif /* ISACSR5 - LED1 */ @@ -215,7 +207,7 @@ { struct le_cbus_softc *lesc; struct lance_softc *sc; - int error; + int error, i; /* * Skip PnP devices as some wedge when trying to probe them as @@ -227,18 +219,16 @@ lesc = device_get_softc(dev); sc = &lesc->sc_am7990.lsc; - lesc->sc_rrid = 0; - lesc->sc_rres = isa_alloc_resourcev(dev, SYS_RES_IOPORT, &lesc->sc_rrid, + i = 0; + lesc->sc_rres = isa_alloc_resourcev(dev, SYS_RES_IOPORT, &i, le_ioaddr_cnet98s, CNET98S_IOSIZE, RF_ACTIVE); if (lesc->sc_rres == NULL) return (ENXIO); isa_load_resourcev(lesc->sc_rres, le_ioaddr_cnet98s, CNET98S_IOSIZE); - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); /* Reset the chip. */ - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RESET, - bus_space_read_2(lesc->sc_regt, lesc->sc_regh, CNET98S_RESET)); + bus_write_2(lesc->sc_rres, CNET98S_RESET, + bus_read_2(lesc->sc_rres, CNET98S_RESET)); DELAY(500); /* Stop the chip and put it in a known state. */ @@ -253,7 +243,8 @@ error = BUS_PROBE_DEFAULT; fail: - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); return (error); } @@ -269,8 +260,8 @@ LE_LOCK_INIT(sc, device_get_nameunit(dev)); - lesc->sc_rrid = 0; - lesc->sc_rres = isa_alloc_resourcev(dev, SYS_RES_IOPORT, &lesc->sc_rrid, + i = 0; + lesc->sc_rres = isa_alloc_resourcev(dev, SYS_RES_IOPORT, &i, le_ioaddr_cnet98s, CNET98S_IOSIZE, RF_ACTIVE); if (lesc->sc_rres == NULL) { device_printf(dev, "cannot allocate registers\n"); @@ -278,12 +269,10 @@ goto fail_mtx; } isa_load_resourcev(lesc->sc_rres, le_ioaddr_cnet98s, CNET98S_IOSIZE); - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); - lesc->sc_irid = 0; + i = 0; if ((lesc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &lesc->sc_irid, RF_SHAREABLE | RF_ACTIVE)) == NULL) { + &i, RF_SHAREABLE | RF_ACTIVE)) == NULL) { device_printf(dev, "cannot allocate interrupt\n"); error = ENXIO; goto fail_rres; @@ -339,7 +328,7 @@ error = bus_dmamap_load(lesc->sc_dmat, lesc->sc_dmam, sc->sc_mem, sc->sc_memsize, le_cbus_dma_callback, sc, 0); if (error != 0 || sc->sc_addr == 0) { - device_printf(dev, "cannot load DMA buffer map\n"); + device_printf(dev, "cannot load DMA buffer map\n"); goto fail_dmem; } @@ -350,8 +339,7 @@ * Extract the physical MAC address from the ROM. */ for (i = 0; i < sizeof(sc->sc_enaddr); i++) - sc->sc_enaddr[i] = bus_space_read_1(lesc->sc_regt, - lesc->sc_regh, i * 2); + sc->sc_enaddr[i] = bus_read_1(lesc->sc_rres, i * 2); sc->sc_copytodesc = lance_copytobuf_contig; sc->sc_copyfromdesc = lance_copyfrombuf_contig; @@ -396,9 +384,11 @@ fail_pdtag: bus_dma_tag_destroy(lesc->sc_pdmat); fail_ires: - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); fail_rres: - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); fail_mtx: LE_LOCK_DESTROY(sc); return (error); @@ -419,8 +409,10 @@ bus_dmamem_free(lesc->sc_dmat, sc->sc_mem, lesc->sc_dmam); bus_dma_tag_destroy(lesc->sc_dmat); bus_dma_tag_destroy(lesc->sc_pdmat); - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); LE_LOCK_DESTROY(sc); return (0); ==== //depot/projects/usb/src/sys/dev/le/if_le_isa.c#4 (text) ==== @@ -72,7 +72,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/le/if_le_isa.c,v 1.4 2007/02/23 12:18:45 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/le/if_le_isa.c,v 1.5 2008/09/24 21:26:46 marius Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -109,15 +109,10 @@ bus_size_t sc_rap; /* offsets to LANCE... */ bus_size_t sc_rdp; /* ...registers */ - int sc_rrid; struct resource *sc_rres; - bus_space_tag_t sc_regt; - bus_space_handle_t sc_regh; - int sc_drid; struct resource *sc_dres; - int sc_irid; struct resource *sc_ires; void *sc_ih; @@ -184,10 +179,9 @@ { struct le_isa_softc *lesc = (struct le_isa_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, lesc->sc_rap, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, lesc->sc_rap, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, lesc->sc_rdp, val); + bus_write_2(lesc->sc_rres, lesc->sc_rap, port); + bus_barrier(lesc->sc_rres, lesc->sc_rap, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, lesc->sc_rdp, val); } static uint16_t @@ -195,10 +189,9 @@ { struct le_isa_softc *lesc = (struct le_isa_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, lesc->sc_rap, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, lesc->sc_rap, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, lesc->sc_rdp)); + bus_write_2(lesc->sc_rres, lesc->sc_rap, port); + bus_barrier(lesc->sc_rres, lesc->sc_rap, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, lesc->sc_rdp)); } static void @@ -217,18 +210,16 @@ { struct le_isa_softc *lesc; struct lance_softc *sc; - int error; + int error, i; lesc = device_get_softc(dev); sc = &lesc->sc_am7990.lsc; - lesc->sc_rrid = 0; - lesc->sc_rres = bus_alloc_resource(dev, SYS_RES_IOPORT, &lesc->sc_rrid, - 0, ~0, leip->iosize, RF_ACTIVE); + i = 0; + lesc->sc_rres = bus_alloc_resource(dev, SYS_RES_IOPORT, &i, 0, ~0, + leip->iosize, RF_ACTIVE); if (lesc->sc_rres == NULL) return (ENXIO); - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); lesc->sc_rap = leip->rap; lesc->sc_rdp = leip->rdp; @@ -243,7 +234,8 @@ error = 0; fail: - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); return (error); } @@ -276,18 +268,18 @@ struct le_isa_softc *lesc; struct lance_softc *sc; bus_size_t macstart, rap, rdp; - int error, i, macstride; + int error, i, j, macstride; lesc = device_get_softc(dev); sc = &lesc->sc_am7990.lsc; LE_LOCK_INIT(sc, device_get_nameunit(dev)); - lesc->sc_rrid = 0; + j = 0; switch (ISA_PNP_PROBE(device_get_parent(dev), dev, le_isa_ids)) { case 0: lesc->sc_rres = bus_alloc_resource_any(dev, SYS_RES_IOPORT, - &lesc->sc_rrid, RF_ACTIVE); + &j, RF_ACTIVE); rap = PCNET_RAP; rdp = PCNET_RDP; macstart = 0; @@ -298,7 +290,7 @@ sizeof(le_isa_params[0]); i++) { if (le_isa_probe_legacy(dev, &le_isa_params[i]) == 0) { lesc->sc_rres = bus_alloc_resource(dev, - SYS_RES_IOPORT, &lesc->sc_rrid, 0, ~0, + SYS_RES_IOPORT, &j, 0, ~0, le_isa_params[i].iosize, RF_ACTIVE); rap = le_isa_params[i].rap; rdp = le_isa_params[i].rdp; @@ -321,22 +313,20 @@ error = ENXIO; goto fail_mtx; } - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); lesc->sc_rap = rap; lesc->sc_rdp = rdp; - lesc->sc_drid = 0; + i = 0; if ((lesc->sc_dres = bus_alloc_resource_any(dev, SYS_RES_DRQ, - &lesc->sc_drid, RF_ACTIVE)) == NULL) { + &i, RF_ACTIVE)) == NULL) { device_printf(dev, "cannot allocate DMA channel\n"); error = ENXIO; goto fail_rres; } - lesc->sc_irid = 0; + i = 0; if ((lesc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &lesc->sc_irid, RF_SHAREABLE | RF_ACTIVE)) == NULL) { + &i, RF_SHAREABLE | RF_ACTIVE)) == NULL) { device_printf(dev, "cannot allocate interrupt\n"); error = ENXIO; goto fail_dres; @@ -392,7 +382,7 @@ error = bus_dmamap_load(lesc->sc_dmat, lesc->sc_dmam, sc->sc_mem, sc->sc_memsize, le_isa_dma_callback, sc, 0); if (error != 0 || sc->sc_addr == 0) { - device_printf(dev, "cannot load DMA buffer map\n"); + device_printf(dev, "cannot load DMA buffer map\n"); goto fail_dmem; } @@ -405,8 +395,8 @@ * Extract the physical MAC address from the ROM. */ for (i = 0; i < sizeof(sc->sc_enaddr); i++) - sc->sc_enaddr[i] = bus_space_read_1(lesc->sc_regt, - lesc->sc_regh, macstart + i * macstride); + sc->sc_enaddr[i] = bus_read_1(lesc->sc_rres, + macstart + i * macstride); sc->sc_copytodesc = lance_copytobuf_contig; sc->sc_copyfromdesc = lance_copyfrombuf_contig; @@ -451,11 +441,14 @@ fail_pdtag: bus_dma_tag_destroy(lesc->sc_pdmat); fail_ires: - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); fail_dres: - bus_release_resource(dev, SYS_RES_DRQ, lesc->sc_drid, lesc->sc_dres); + bus_release_resource(dev, SYS_RES_DRQ, + rman_get_rid(lesc->sc_dres), lesc->sc_dres); fail_rres: - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); fail_mtx: LE_LOCK_DESTROY(sc); return (error); @@ -476,9 +469,12 @@ bus_dmamem_free(lesc->sc_dmat, sc->sc_mem, lesc->sc_dmam); bus_dma_tag_destroy(lesc->sc_dmat); bus_dma_tag_destroy(lesc->sc_pdmat); - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); - bus_release_resource(dev, SYS_RES_DRQ, lesc->sc_drid, lesc->sc_dres); - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); + bus_release_resource(dev, SYS_RES_DRQ, + rman_get_rid(lesc->sc_dres), lesc->sc_dres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); LE_LOCK_DESTROY(sc); return (0); ==== //depot/projects/usb/src/sys/dev/le/if_le_lebuffer.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/le/if_le_lebuffer.c,v 1.2 2007/02/23 12:18:45 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/le/if_le_lebuffer.c,v 1.3 2008/09/24 21:26:46 marius Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -63,17 +63,10 @@ struct le_lebuffer_softc { struct am7990_softc sc_am7990; /* glue to MI code */ - int sc_brid; struct resource *sc_bres; - bus_space_tag_t sc_buft; - bus_space_handle_t sc_bufh; - int sc_rrid; struct resource *sc_rres; - bus_space_tag_t sc_regt; - bus_space_handle_t sc_regh; - int sc_irid; struct resource *sc_ires; void *sc_ih; }; @@ -103,6 +96,7 @@ sizeof(struct le_lebuffer_softc)); DRIVER_MODULE(le, lebuffer, le_lebuffer_driver, le_lebuffer_devclass, 0, 0); MODULE_DEPEND(le, ether, 1, 1, 1); +MODULE_DEPEND(le, lebuffer, 1, 1, 1); /* * Media types supported @@ -126,10 +120,9 @@ { struct le_lebuffer_softc *lesc = (struct le_lebuffer_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, LEREG1_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, LEREG1_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, LEREG1_RDP, val); + bus_write_2(lesc->sc_rres, LEREG1_RAP, port); + bus_barrier(lesc->sc_rres, LEREG1_RAP, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, LEREG1_RDP, val); } static uint16_t @@ -137,10 +130,9 @@ { struct le_lebuffer_softc *lesc = (struct le_lebuffer_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, LEREG1_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, LEREG1_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, LEREG1_RDP)); + bus_write_2(lesc->sc_rres, LEREG1_RAP, port); + bus_barrier(lesc->sc_rres, LEREG1_RAP, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, LEREG1_RDP)); } /* @@ -163,17 +155,13 @@ caddr_t from = fromv; for (; len >= 8; len -= 8, off += 8, from += 8) - bus_space_write_8(lesc->sc_buft, lesc->sc_bufh, off, - be64dec(from)); + bus_write_8(lesc->sc_bres, off, be64dec(from)); for (; len >= 4; len -= 4, off += 4, from += 4) - bus_space_write_4(lesc->sc_buft, lesc->sc_bufh, off, - be32dec(from)); + bus_write_4(lesc->sc_bres, off, be32dec(from)); for (; len >= 2; len -= 2, off += 2, from += 2) - bus_space_write_2(lesc->sc_buft, lesc->sc_bufh, off, - be16dec(from)); + bus_write_2(lesc->sc_bres, off, be16dec(from)); if (len == 1) - bus_space_write_1(lesc->sc_buft, lesc->sc_bufh, off, - *from); + bus_write_1(lesc->sc_bres, off, *from); } static void @@ -184,16 +172,15 @@ for (; len >= 8; len -= 8, off += 8, to += 8) be64enc(to, - bus_space_read_8(lesc->sc_buft, lesc->sc_bufh, off)); + bus_read_8(lesc->sc_bres, off)); for (; len >= 4; len -= 4, off += 4, to += 4) be32enc(to, - bus_space_read_4(lesc->sc_buft, lesc->sc_bufh, off)); + bus_read_4(lesc->sc_bres, off)); for (; len >= 2; len -= 2, off += 2, to += 2) be16enc(to, - bus_space_read_2(lesc->sc_buft, lesc->sc_bufh, off)); + bus_read_2(lesc->sc_bres, off)); if (len == 1) - *to = - bus_space_read_1(lesc->sc_buft, lesc->sc_bufh, off); + *to = bus_read_1(lesc->sc_bres, off); } static void @@ -203,11 +190,9 @@ caddr_t from = fromv; for (; len >= 2; len -= 2, off += 2, from += 2) - bus_space_write_2(lesc->sc_buft, lesc->sc_bufh, off, - le16dec(from)); + bus_write_2(lesc->sc_bres, off, le16dec(from)); if (len == 1) - bus_space_write_1(lesc->sc_buft, lesc->sc_bufh, off + 1, - *from); + bus_write_1(lesc->sc_bres, off + 1, *from); } static void @@ -218,10 +203,9 @@ for (; len >= 2; len -= 2, off += 2, to += 2) le16enc(to, - bus_space_read_2(lesc->sc_buft, lesc->sc_bufh, off)); + bus_read_2(lesc->sc_bres, off)); if (len == 1) - *to = - bus_space_read_1(lesc->sc_buft, lesc->sc_bufh, off + 1); + *to = bus_read_1(lesc->sc_bres, off + 1); } static void @@ -230,9 +214,9 @@ struct le_lebuffer_softc *lesc = (struct le_lebuffer_softc *)sc; for (; len >= 2; len -= 2, off += 2) - bus_space_write_2(lesc->sc_buft, lesc->sc_bufh, off, 0); + bus_write_2(lesc->sc_bres, off, 0); if (len == 1) - bus_space_write_1(lesc->sc_buft, lesc->sc_bufh, off + 1, 0); + bus_write_1(lesc->sc_bres, off + 1, 0); } static int @@ -251,7 +235,7 @@ { struct le_lebuffer_softc *lesc; struct lance_softc *sc; - int error; + int error, i; lesc = device_get_softc(dev); sc = &lesc->sc_am7990.lsc; @@ -262,33 +246,29 @@ * The "register space" of the parent is just a buffer where the * the LANCE descriptor rings and the RX/TX buffers can be stored. */ - lesc->sc_brid = 0; + i = 0; lesc->sc_bres = bus_alloc_resource_any(device_get_parent(dev), - SYS_RES_MEMORY, &lesc->sc_brid, RF_ACTIVE); + SYS_RES_MEMORY, &i, RF_ACTIVE); if (lesc->sc_bres == NULL) { device_printf(dev, "cannot allocate LANCE buffer\n"); error = ENXIO; goto fail_mtx; } - lesc->sc_buft = rman_get_bustag(lesc->sc_bres); - lesc->sc_bufh = rman_get_bushandle(lesc->sc_bres); /* Allocate LANCE registers. */ - lesc->sc_rrid = 0; + i = 0; lesc->sc_rres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &lesc->sc_rrid, RF_ACTIVE); + &i, RF_ACTIVE); if (lesc->sc_rres == NULL) { device_printf(dev, "cannot allocate LANCE registers\n"); error = ENXIO; goto fail_bres; } - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); /* Allocate LANCE interrupt. */ - lesc->sc_irid = 0; + i = 0; if ((lesc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &lesc->sc_irid, RF_SHAREABLE | RF_ACTIVE)) == NULL) { + &i, RF_SHAREABLE | RF_ACTIVE)) == NULL) { device_printf(dev, "cannot allocate interrupt\n"); error = ENXIO; goto fail_rres; @@ -352,12 +332,14 @@ fail_am7990: am7990_detach(&lesc->sc_am7990); fail_ires: - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); fail_rres: - bus_release_resource(dev, SYS_RES_MEMORY, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_MEMORY, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); fail_bres: bus_release_resource(device_get_parent(dev), SYS_RES_MEMORY, - lesc->sc_brid, lesc->sc_bres); + rman_get_rid(lesc->sc_bres), lesc->sc_bres); fail_mtx: LE_LOCK_DESTROY(sc); return (error); @@ -374,10 +356,12 @@ bus_teardown_intr(dev, lesc->sc_ires, lesc->sc_ih); am7990_detach(&lesc->sc_am7990); - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); - bus_release_resource(dev, SYS_RES_MEMORY, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); + bus_release_resource(dev, SYS_RES_MEMORY, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); bus_release_resource(device_get_parent(dev), SYS_RES_MEMORY, - lesc->sc_brid, lesc->sc_bres); + rman_get_rid(lesc->sc_bres), lesc->sc_bres); LE_LOCK_DESTROY(sc); return (0); ==== //depot/projects/usb/src/sys/dev/le/if_le_pci.c#5 (text+ko) ==== @@ -72,7 +72,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/le/if_le_pci.c,v 1.7 2007/02/23 12:18:45 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/le/if_le_pci.c,v 1.8 2008/09/24 21:26:46 marius Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -111,12 +111,8 @@ struct le_pci_softc { struct am79900_softc sc_am79900; /* glue to MI code */ - int sc_rrid; struct resource *sc_rres; - bus_space_tag_t sc_regt; - bus_space_handle_t sc_regh; - int sc_irid; struct resource *sc_ires; void *sc_ih; @@ -174,10 +170,9 @@ { struct le_pci_softc *lesc = (struct le_pci_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_BDP, val); + bus_write_2(lesc->sc_rres, PCNET_PCI_RAP, port); + bus_barrier(lesc->sc_rres, PCNET_PCI_RAP, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, PCNET_PCI_BDP, val); } static uint16_t @@ -185,10 +180,9 @@ { struct le_pci_softc *lesc = (struct le_pci_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_BDP)); + bus_write_2(lesc->sc_rres, PCNET_PCI_RAP, port); + bus_barrier(lesc->sc_rres, PCNET_PCI_RAP, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, PCNET_PCI_BDP)); } static void @@ -196,10 +190,9 @@ { struct le_pci_softc *lesc = (struct le_pci_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RDP, val); + bus_write_2(lesc->sc_rres, PCNET_PCI_RAP, port); + bus_barrier(lesc->sc_rres, PCNET_PCI_RAP, 2, BUS_SPACE_BARRIER_WRITE); + bus_write_2(lesc->sc_rres, PCNET_PCI_RDP, val); } static uint16_t @@ -207,10 +200,9 @@ { struct le_pci_softc *lesc = (struct le_pci_softc *)sc; - bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, port); - bus_space_barrier(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, 2, - BUS_SPACE_BARRIER_WRITE); - return (bus_space_read_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RDP)); + bus_write_2(lesc->sc_rres, PCNET_PCI_RAP, port); + bus_barrier(lesc->sc_rres, PCNET_PCI_RAP, 2, BUS_SPACE_BARRIER_WRITE); + return (bus_read_2(lesc->sc_rres, PCNET_PCI_RDP)); } static int @@ -322,20 +314,18 @@ pci_enable_busmaster(dev); pci_enable_io(dev, PCIM_CMD_PORTEN); - lesc->sc_rrid = PCIR_BAR(0); + i = PCIR_BAR(0); lesc->sc_rres = bus_alloc_resource_any(dev, SYS_RES_IOPORT, - &lesc->sc_rrid, RF_ACTIVE); + &i, RF_ACTIVE); if (lesc->sc_rres == NULL) { device_printf(dev, "cannot allocate registers\n"); error = ENXIO; goto fail_mtx; } - lesc->sc_regt = rman_get_bustag(lesc->sc_rres); - lesc->sc_regh = rman_get_bushandle(lesc->sc_rres); - lesc->sc_irid = 0; + i = 0; if ((lesc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &lesc->sc_irid, RF_SHAREABLE | RF_ACTIVE)) == NULL) { + &i, RF_SHAREABLE | RF_ACTIVE)) == NULL) { device_printf(dev, "cannot allocate interrupt\n"); error = ENXIO; goto fail_rres; @@ -392,7 +382,7 @@ error = bus_dmamap_load(lesc->sc_dmat, lesc->sc_dmam, sc->sc_mem, sc->sc_memsize, le_pci_dma_callback, sc, 0); if (error != 0 || sc->sc_addr == 0) { - device_printf(dev, "cannot load DMA buffer map\n"); + device_printf(dev, "cannot load DMA buffer map\n"); goto fail_dmem; } @@ -417,9 +407,8 @@ /* * Extract the physical MAC address from the ROM. */ - for (i = 0; i < sizeof(sc->sc_enaddr); i++) - sc->sc_enaddr[i] = - bus_space_read_1(lesc->sc_regt, lesc->sc_regh, i); + bus_read_region_1(lesc->sc_rres, 0, sc->sc_enaddr, + sizeof(sc->sc_enaddr)); sc->sc_copytodesc = lance_copytobuf_contig; sc->sc_copyfromdesc = lance_copyfrombuf_contig; @@ -461,9 +450,11 @@ fail_pdtag: bus_dma_tag_destroy(lesc->sc_pdmat); fail_ires: - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); fail_rres: - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); fail_mtx: LE_LOCK_DESTROY(sc); return (error); @@ -484,8 +475,10 @@ bus_dmamem_free(lesc->sc_dmat, sc->sc_mem, lesc->sc_dmam); bus_dma_tag_destroy(lesc->sc_dmat); bus_dma_tag_destroy(lesc->sc_pdmat); - bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires); - bus_release_resource(dev, SYS_RES_IOPORT, lesc->sc_rrid, lesc->sc_rres); + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(lesc->sc_ires), lesc->sc_ires); + bus_release_resource(dev, SYS_RES_IOPORT, + rman_get_rid(lesc->sc_rres), lesc->sc_rres); LE_LOCK_DESTROY(sc); return (0); ==== //depot/projects/usb/src/sys/dev/le/lebuffer_sbus.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/le/lebuffer_sbus.c,v 1.1 2007/01/20 12:53:30 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/le/lebuffer_sbus.c,v 1.2 2008/09/24 21:26:46 marius Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -100,6 +100,8 @@ DEFINE_CLASS_0(lebuffer, lebuffer_driver, lebuffer_methods, 1); DRIVER_MODULE(lebuffer, sbus, lebuffer_driver, lebuffer_devclass, 0, 0); +MODULE_DEPEND(lebuffer, sbus, 1, 1, 1); +MODULE_VERSION(lebuffer, 1); static int lebuffer_probe(device_t dev) ==== //depot/projects/usb/src/sys/dev/msk/if_msk.c#6 (text+ko) ==== @@ -99,7 +99,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.31 2008/03/11 02:39:52 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.32 2008/09/25 07:31:45 yongari Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -244,6 +244,9 @@ static int msk_handle_events(struct msk_softc *); static void msk_handle_hwerr(struct msk_if_softc *, uint32_t); static void msk_intr_hwerr(struct msk_softc *); +#ifndef __NO_STRICT_ALIGNMENT +static __inline void msk_fixup_rx(struct mbuf *); +#endif static void msk_rxeof(struct msk_if_softc *, uint32_t, int); static void msk_jumbo_rxeof(struct msk_if_softc *, uint32_t, int); static void msk_txeof(struct msk_if_softc *, int); @@ -783,7 +786,12 @@ return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; - m_adj(m, ETHER_ALIGN); + if ((sc_if->msk_flags & MSK_FLAG_RAMBUF) == 0) + m_adj(m, ETHER_ALIGN); +#ifndef __NO_STRICT_ALIGNMENT + else + m_adj(m, MSK_RX_BUF_ALIGN); +#endif if (bus_dmamap_load_mbuf_sg(sc_if->msk_cdata.msk_rx_tag, sc_if->msk_cdata.msk_rx_sparemap, m, segs, &nsegs, @@ -840,7 +848,12 @@ return (ENOBUFS); } m->m_pkthdr.len = m->m_len = MSK_JLEN; - m_adj(m, ETHER_ALIGN); + if ((sc_if->msk_flags & MSK_FLAG_RAMBUF) == 0) + m_adj(m, ETHER_ALIGN); +#ifndef __NO_STRICT_ALIGNMENT + else + m_adj(m, MSK_RX_BUF_ALIGN); +#endif if (bus_dmamap_load_mbuf_sg(sc_if->msk_cdata.msk_jumbo_rx_tag, sc_if->msk_cdata.msk_jumbo_rx_sparemap, m, segs, &nsegs, @@ -1041,14 +1054,16 @@ { int next; int i; - uint8_t val; /* Get adapter SRAM size. */ - val = CSR_READ_1(sc, B2_E_0); - sc->msk_ramsize = (val == 0) ? 128 : val * 4; + sc->msk_ramsize = CSR_READ_1(sc, B2_E_0) * 4; if (bootverbose) device_printf(sc->msk_dev, "RAM buffer size : %dKB\n", sc->msk_ramsize); + if (sc->msk_ramsize == 0) + return (0); + + sc->msk_pflags |= MSK_FLAG_RAMBUF; /* * Give receiver 2/3 of memory and round down to the multiple * of 1024. Tx/Rx RAM buffer size of Yukon II shoud be multiple @@ -1412,6 +1427,7 @@ sc_if->msk_if_dev = dev; sc_if->msk_port = port; sc_if->msk_softc = sc; + sc_if->msk_flags = sc->msk_pflags; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809251902.m8PJ2mP0083159>