Module Name: src Committed By: cegger Date: Fri Apr 17 10:20:33 UTC 2009
Modified Files: src/sys/dev/cardbus: if_tlp_cardbus.c src/sys/dev/eisa: if_tlp_eisa.c src/sys/dev/ic: tulip.c tulipvar.h src/sys/dev/pci: if_tlp_pci.c Log Message: device_t/softc split. Tested with tlp at pci To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/dev/cardbus/if_tlp_cardbus.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/eisa/if_tlp_eisa.c cvs rdiff -u -r1.166 -r1.167 src/sys/dev/ic/tulip.c cvs rdiff -u -r1.62 -r1.63 src/sys/dev/ic/tulipvar.h cvs rdiff -u -r1.106 -r1.107 src/sys/dev/pci/if_tlp_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/cardbus/if_tlp_cardbus.c diff -u src/sys/dev/cardbus/if_tlp_cardbus.c:1.60 src/sys/dev/cardbus/if_tlp_cardbus.c:1.61 --- src/sys/dev/cardbus/if_tlp_cardbus.c:1.60 Sat Mar 14 15:36:16 2009 +++ src/sys/dev/cardbus/if_tlp_cardbus.c Fri Apr 17 10:20:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tlp_cardbus.c,v 1.60 2009/03/14 15:36:16 dsl Exp $ */ +/* $NetBSD: if_tlp_cardbus.c,v 1.61 2009/04/17 10:20:32 cegger Exp $ */ /*- * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tlp_cardbus.c,v 1.60 2009/03/14 15:36:16 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tlp_cardbus.c,v 1.61 2009/04/17 10:20:32 cegger Exp $"); #include "opt_inet.h" #include "bpfilter.h" @@ -112,11 +112,11 @@ cardbus_intr_line_t sc_intrline; /* interrupt line */ }; -int tlp_cardbus_match(struct device *, struct cfdata *, void *); -void tlp_cardbus_attach(struct device *, struct device *, void *); -int tlp_cardbus_detach(struct device *, int); +int tlp_cardbus_match(device_t, cfdata_t, void *); +void tlp_cardbus_attach(device_t, device_t, void *); +int tlp_cardbus_detach(device_t, int); -CFATTACH_DECL(tlp_cardbus, sizeof(struct tulip_cardbus_softc), +CFATTACH_DECL_NEW(tlp_cardbus, sizeof(struct tulip_cardbus_softc), tlp_cardbus_match, tlp_cardbus_attach, tlp_cardbus_detach, tlp_activate); const struct tulip_cardbus_product { @@ -218,7 +218,7 @@ } int -tlp_cardbus_match(struct device *parent, struct cfdata *match, +tlp_cardbus_match(device_t parent, cfdata_t match, void *aux) { struct cardbus_attach_args *ca = aux; @@ -230,7 +230,7 @@ } void -tlp_cardbus_attach(struct device *parent, struct device *self, +tlp_cardbus_attach(device_t parent, device_t self, void *aux) { struct tulip_cardbus_softc *csc = device_private(self); @@ -242,6 +242,7 @@ bus_addr_t adr; pcireg_t reg; + sc->sc_dev = self; sc->sc_devno = 0; sc->sc_dmat = ca->ca_dmat; csc->sc_ct = ct; @@ -333,7 +334,7 @@ csc->sc_bar_reg = TULIP_PCI_IOBA; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_IO; } else { - aprint_error_dev(&sc->sc_dev, "unable to map device registers\n"); + aprint_error_dev(self, "unable to map device registers\n"); return; } @@ -399,7 +400,7 @@ */ if (sc->sc_mediasw == NULL) { printf("%s: defaulting to MII-over-SIO; no bets...\n", - device_xname(&sc->sc_dev)); + device_xname(self)); sc->sc_mediasw = &tlp_sio_mii_mediasw; } break; @@ -441,7 +442,7 @@ default: cant_cope: printf("%s: sorry, unable to handle your board\n", - device_xname(&sc->sc_dev)); + device_xname(self)); return; } @@ -460,7 +461,7 @@ } int -tlp_cardbus_detach(struct device *self, int flags) +tlp_cardbus_detach(device_t self, int flags) { struct tulip_cardbus_softc *csc = device_private(self); struct tulip_softc *sc = &csc->sc_tulip; @@ -469,7 +470,7 @@ #if defined(DIAGNOSTIC) if (ct == NULL) - panic("%s: data structure lacks", device_xname(&sc->sc_dev)); + panic("%s: data structure lacks", device_xname(self)); #endif rv = tlp_detach(sc); @@ -516,7 +517,7 @@ csc->sc_ih = cardbus_intr_establish(cc, cf, csc->sc_intrline, IPL_NET, tlp_intr, sc); if (csc->sc_ih == NULL) { - aprint_error_dev(&sc->sc_dev, + aprint_error_dev(sc->sc_dev, "unable to establish interrupt\n"); Cardbus_function_disable(csc->sc_ct); return (1); Index: src/sys/dev/eisa/if_tlp_eisa.c diff -u src/sys/dev/eisa/if_tlp_eisa.c:1.21 src/sys/dev/eisa/if_tlp_eisa.c:1.22 --- src/sys/dev/eisa/if_tlp_eisa.c:1.21 Mon Apr 28 20:23:48 2008 +++ src/sys/dev/eisa/if_tlp_eisa.c Fri Apr 17 10:20:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tlp_eisa.c,v 1.21 2008/04/28 20:23:48 martin Exp $ */ +/* $NetBSD: if_tlp_eisa.c,v 1.22 2009/04/17 10:20:32 cegger Exp $ */ /*- * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tlp_eisa.c,v 1.21 2008/04/28 20:23:48 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tlp_eisa.c,v 1.22 2009/04/17 10:20:32 cegger Exp $"); #include "opt_inet.h" #include "bpfilter.h" @@ -106,10 +106,10 @@ void *sc_ih; /* interrupt handle */ }; -static int tlp_eisa_match(struct device *, struct cfdata *, void *); -static void tlp_eisa_attach(struct device *, struct device *, void *); +static int tlp_eisa_match(device_t, cfdata_t, void *); +static void tlp_eisa_attach(device_t, device_t, void *); -CFATTACH_DECL(tlp_eisa, sizeof(struct tulip_eisa_softc), +CFATTACH_DECL_NEW(tlp_eisa, sizeof(struct tulip_eisa_softc), tlp_eisa_match, tlp_eisa_attach, NULL, NULL); static const int tlp_eisa_irqs[] = { 5, 9, 10, 11 }; @@ -139,7 +139,7 @@ } static int -tlp_eisa_match(struct device *parent, struct cfdata *match, +tlp_eisa_match(device_t parent, cfdata_t match, void *aux) { struct eisa_attach_args *ea = aux; @@ -151,7 +151,7 @@ } static void -tlp_eisa_attach(struct device *parent, struct device *self, void *aux) +tlp_eisa_attach(device_t parent, device_t self, void *aux) { static const u_int8_t testpat[] = { 0xff, 0, 0x55, 0xaa, 0xff, 0, 0x55, 0xaa }; @@ -177,6 +177,7 @@ return; } + sc->sc_dev = self; sc->sc_st = iot; sc->sc_sh = ioh; @@ -244,7 +245,7 @@ * None of the DE425 boards have the new-style SROMs. */ if (tlp_parse_old_srom(sc, enaddr) == 0) { - aprint_error_dev(&sc->sc_dev, "unable to decode old-style SROM\n"); + aprint_error_dev(self, "unable to decode old-style SROM\n"); return; } @@ -264,7 +265,7 @@ * Map and establish our interrupt. */ if (eisa_intr_map(ec, irq, &ih)) { - aprint_error_dev(&sc->sc_dev, "unable to map interrupt (%u)\n", + aprint_error_dev(self, "unable to map interrupt (%u)\n", irq); return; } @@ -272,14 +273,14 @@ esc->sc_ih = eisa_intr_establish(ec, ih, (val & 0x01) ? IST_EDGE : IST_LEVEL, IPL_NET, tlp_intr, sc); if (esc->sc_ih == NULL) { - aprint_error_dev(&sc->sc_dev, "unable to establish interrupt"); + aprint_error_dev(self, "unable to establish interrupt"); if (intrstr != NULL) printf(" at %s", intrstr); printf("\n"); return; } if (intrstr != NULL) - printf("%s: interrupting at %s\n", device_xname(&sc->sc_dev), + printf("%s: interrupting at %s\n", device_xname(self), intrstr); /* Index: src/sys/dev/ic/tulip.c diff -u src/sys/dev/ic/tulip.c:1.166 src/sys/dev/ic/tulip.c:1.167 --- src/sys/dev/ic/tulip.c:1.166 Fri Apr 17 08:19:09 2009 +++ src/sys/dev/ic/tulip.c Fri Apr 17 10:20:33 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: tulip.c,v 1.166 2009/04/17 08:19:09 cegger Exp $ */ +/* $NetBSD: tulip.c,v 1.167 2009/04/17 10:20:33 cegger Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.166 2009/04/17 08:19:09 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.167 2009/04/17 10:20:33 cegger Exp $"); #include "bpfilter.h" @@ -190,7 +190,7 @@ tlp_attach(struct tulip_softc *sc, const uint8_t *enaddr) { struct ifnet *ifp = &sc->sc_ethercom.ec_if; - device_t self = &sc->sc_dev; + device_t self = sc->sc_dev; int i, error; callout_init(&sc->sc_nway_callout, 0); @@ -399,7 +399,7 @@ if ((error = bus_dmamem_alloc(sc->sc_dmat, sizeof(struct tulip_control_data), PAGE_SIZE, 0, &sc->sc_cdseg, 1, &sc->sc_cdnseg, 0)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to allocate control data, error = %d\n", + aprint_error_dev(self, "unable to allocate control data, error = %d\n", error); goto fail_0; } @@ -407,7 +407,7 @@ if ((error = bus_dmamem_map(sc->sc_dmat, &sc->sc_cdseg, sc->sc_cdnseg, sizeof(struct tulip_control_data), (void **)&sc->sc_control_data, BUS_DMA_COHERENT)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to map control data, error = %d\n", + aprint_error_dev(self, "unable to map control data, error = %d\n", error); goto fail_1; } @@ -415,7 +415,7 @@ if ((error = bus_dmamap_create(sc->sc_dmat, sizeof(struct tulip_control_data), 1, sizeof(struct tulip_control_data), 0, 0, &sc->sc_cddmamap)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to create control data DMA map, " + aprint_error_dev(self, "unable to create control data DMA map, " "error = %d\n", error); goto fail_2; } @@ -423,7 +423,7 @@ if ((error = bus_dmamap_load(sc->sc_dmat, sc->sc_cddmamap, sc->sc_control_data, sizeof(struct tulip_control_data), NULL, 0)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to load control data DMA map, error = %d\n", + aprint_error_dev(self, "unable to load control data DMA map, error = %d\n", error); goto fail_3; } @@ -455,7 +455,7 @@ if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES, sc->sc_ntxsegs, MCLBYTES, 0, 0, &sc->sc_txsoft[i].txs_dmamap)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to create tx DMA map %d, " + aprint_error_dev(self, "unable to create tx DMA map %d, " "error = %d\n", i, error); goto fail_4; } @@ -467,7 +467,7 @@ for (i = 0; i < TULIP_NRXDESC; i++) { if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES, 1, MCLBYTES, 0, 0, &sc->sc_rxsoft[i].rxs_dmamap)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to create rx DMA map %d, " + aprint_error_dev(self, "unable to create rx DMA map %d, " "error = %d\n", i, error); goto fail_5; } @@ -487,7 +487,7 @@ tlp_reset(sc); /* Announce ourselves. */ - printf("%s: %s%sEthernet address %s\n", device_xname(&sc->sc_dev), + printf("%s: %s%sEthernet address %s\n", device_xname(self), sc->sc_name[0] != '\0' ? sc->sc_name : "", sc->sc_name[0] != '\0' ? ", " : "", ether_sprintf(enaddr)); @@ -505,7 +505,7 @@ */ (*sc->sc_mediasw->tmsw_init)(sc); - strlcpy(ifp->if_xname, device_xname(&sc->sc_dev), IFNAMSIZ); + strlcpy(ifp->if_xname, device_xname(self), IFNAMSIZ); ifp->if_softc = sc; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; sc->sc_if_flags = ifp->if_flags; @@ -528,7 +528,7 @@ ether_ifattach(ifp, enaddr); ether_set_ifflags_cb(&sc->sc_ethercom, tlp_ifflags_cb); #if NRND > 0 - rnd_attach_source(&sc->sc_rnd_source, device_xname(&sc->sc_dev), + rnd_attach_source(&sc->sc_rnd_source, device_xname(self), RND_TYPE_NET, 0); #endif @@ -607,7 +607,7 @@ struct ifnet *ifp = &sc->sc_ethercom.ec_if; struct tulip_rxsoft *rxs; struct tulip_txsoft *txs; - device_t self = &sc->sc_dev; + device_t self = sc->sc_dev; int i; /* @@ -681,7 +681,7 @@ int error, firsttx, nexttx, lasttx = 1, ofree, seg; DPRINTF(sc, ("%s: tlp_start: sc_flags 0x%08x, if_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags, ifp->if_flags)); + device_xname(sc->sc_dev), sc->sc_flags, ifp->if_flags)); /* * If we want a filter setup, it means no more descriptors were @@ -706,7 +706,7 @@ firsttx = sc->sc_txnext; DPRINTF(sc, ("%s: tlp_start: txfree %d, txnext %d\n", - device_xname(&sc->sc_dev), ofree, firsttx)); + device_xname(sc->sc_dev), ofree, firsttx)); /* * Loop through the send queue, setting up transmit descriptors @@ -742,7 +742,7 @@ BUS_DMA_WRITE|BUS_DMA_NOWAIT) != 0) { MGETHDR(m, M_DONTWAIT, MT_DATA); if (m == NULL) { - aprint_error_dev(&sc->sc_dev, "unable to allocate Tx mbuf\n"); + aprint_error_dev(sc->sc_dev, "unable to allocate Tx mbuf\n"); break; } MCLAIM(m, &sc->sc_ethercom.ec_tx_mowner); @@ -750,7 +750,7 @@ MCLGET(m, M_DONTWAIT); if ((m->m_flags & M_EXT) == 0) { printf("%s: unable to allocate Tx " - "cluster\n", device_xname(&sc->sc_dev)); + "cluster\n", device_xname(sc->sc_dev)); m_freem(m); break; } @@ -761,7 +761,7 @@ m, BUS_DMA_WRITE|BUS_DMA_NOWAIT); if (error) { printf("%s: unable to load Tx buffer, " - "error = %d\n", device_xname(&sc->sc_dev), error); + "error = %d\n", device_xname(sc->sc_dev), error); break; } } @@ -890,7 +890,7 @@ if (sc->sc_txfree != ofree) { DPRINTF(sc, ("%s: packets enqueued, IC on %d, OWN on %d\n", - device_xname(&sc->sc_dev), lasttx, firsttx)); + device_xname(sc->sc_dev), lasttx, firsttx)); /* * Cause a transmit interrupt to happen on the * last packet we enqueued. @@ -944,15 +944,15 @@ doing_transmit = (! SIMPLEQ_EMPTY(&sc->sc_txdirtyq)); if (doing_setup && doing_transmit) { - printf("%s: filter setup and transmit timeout\n", device_xname(&sc->sc_dev)); + printf("%s: filter setup and transmit timeout\n", device_xname(sc->sc_dev)); ifp->if_oerrors++; } else if (doing_transmit) { - printf("%s: transmit timeout\n", device_xname(&sc->sc_dev)); + printf("%s: transmit timeout\n", device_xname(sc->sc_dev)); ifp->if_oerrors++; } else if (doing_setup) - printf("%s: filter setup timeout\n", device_xname(&sc->sc_dev)); + printf("%s: filter setup timeout\n", device_xname(sc->sc_dev)); else - printf("%s: spurious watchdog timeout\n", device_xname(&sc->sc_dev)); + printf("%s: spurious watchdog timeout\n", device_xname(sc->sc_dev)); (void) tlp_init(ifp); @@ -1034,11 +1034,11 @@ uint32_t status, rxstatus, txstatus; int handled = 0, txthresh; - DPRINTF(sc, ("%s: tlp_intr\n", device_xname(&sc->sc_dev))); + DPRINTF(sc, ("%s: tlp_intr\n", device_xname(sc->sc_dev))); #ifdef DEBUG if (TULIP_IS_ENABLED(sc) == 0) - panic("%s: tlp_intr: not enabled", device_xname(&sc->sc_dev)); + panic("%s: tlp_intr: not enabled", device_xname(sc->sc_dev)); #endif /* @@ -1046,7 +1046,7 @@ * possibly have come from us. */ if ((ifp->if_flags & IFF_RUNNING) == 0 || - !device_is_active(&sc->sc_dev)) + !device_is_active(sc->sc_dev)) return (0); /* Disable interrupts on the DM9102 (interrupt edge bug). */ @@ -1080,11 +1080,11 @@ if (rxstatus & STATUS_RWT) printf("%s: receive watchdog timeout\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); if (rxstatus & STATUS_RU) { printf("%s: receive ring overrun\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); /* Get the receive process going again. */ if (sc->sc_tdctl_er != TDCTL_ER) { tlp_idle(sc, OPMODE_SR); @@ -1104,7 +1104,7 @@ if (txstatus & STATUS_TJT) printf("%s: transmit jabber timeout\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); if (txstatus & STATUS_UNF) { /* @@ -1122,7 +1122,7 @@ sc->sc_txth[txthresh].txth_opmode; printf("%s: transmit underrun; new " "threshold: %s\n", - device_xname(&sc->sc_dev), + device_xname(sc->sc_dev), sc->sc_txth[txthresh].txth_name); /* @@ -1142,10 +1142,10 @@ if (status & (STATUS_TPS|STATUS_RPS)) { if (status & STATUS_TPS) printf("%s: transmit process stopped\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); if (status & STATUS_RPS) printf("%s: receive process stopped\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); (void) tlp_init(ifp); break; } @@ -1169,7 +1169,7 @@ str = "unknown error"; break; } - aprint_error_dev(&sc->sc_dev, "fatal system error: %s\n", + aprint_error_dev(sc->sc_dev, "fatal system error: %s\n", str); (void) tlp_init(ifp); break; @@ -1252,7 +1252,7 @@ if ((rxstat & (TDSTAT_Rx_FS|TDSTAT_Rx_LS)) != (TDSTAT_Rx_FS|TDSTAT_Rx_LS)) { printf("%s: incoming packet spilled, resetting\n", - device_xname(&sc->sc_dev)); + device_xname(sc->sc_dev)); (void) tlp_init(ifp); return; } @@ -1287,7 +1287,7 @@ rxstat &= errors; #define PRINTERR(bit, str) \ if (rxstat & (bit)) \ - aprint_error_dev(&sc->sc_dev, "receive error: %s\n", \ + aprint_error_dev(sc->sc_dev, "receive error: %s\n", \ str) ifp->if_ierrors++; PRINTERR(TDSTAT_Rx_DE, "descriptor error"); @@ -1432,7 +1432,7 @@ uint32_t txstat; DPRINTF(sc, ("%s: tlp_txintr: sc_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags)); + device_xname(sc->sc_dev), sc->sc_flags)); ifp->if_flags &= ~IFF_OACTIVE; @@ -1544,7 +1544,7 @@ { printf("%s: tx_uf %lu, tx_to %lu, tx_ec %lu, tx_lc %lu\n", - device_xname(&sc->sc_dev), + device_xname(sc->sc_dev), sc->sc_stats.ts_tx_uf, sc->sc_stats.ts_tx_to, sc->sc_stats.ts_tx_ec, sc->sc_stats.ts_tx_lc); } @@ -1594,7 +1594,7 @@ } if (TULIP_ISSET(sc, CSR_BUSMODE, BUSMODE_SWR)) - aprint_error_dev(&sc->sc_dev, "reset failed to complete\n"); + aprint_error_dev(sc->sc_dev, "reset failed to complete\n"); delay(1000); @@ -1826,7 +1826,7 @@ rxs = &sc->sc_rxsoft[i]; if (rxs->rxs_mbuf == NULL) { if ((error = tlp_add_rxbuf(sc, i)) != 0) { - aprint_error_dev(&sc->sc_dev, "unable to allocate or map rx " + aprint_error_dev(sc->sc_dev, "unable to allocate or map rx " "buffer %d, error = %d\n", i, error); /* @@ -1971,7 +1971,7 @@ if (error) { ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); ifp->if_timer = 0; - printf("%s: interface not running\n", device_xname(&sc->sc_dev)); + printf("%s: interface not running\n", device_xname(sc->sc_dev)); } return (error); } @@ -1987,7 +1987,7 @@ if (TULIP_IS_ENABLED(sc) == 0 && sc->sc_enable != NULL) { if ((*sc->sc_enable)(sc) != 0) { - aprint_error_dev(&sc->sc_dev, "device enable failed\n"); + aprint_error_dev(sc->sc_dev, "device enable failed\n"); return (EIO); } sc->sc_flags |= TULIPF_ENABLED; @@ -2187,13 +2187,13 @@ SROM_EMIT(sc, 0); if (x < 4 || x > 12) { - aprint_debug_dev(&sc->sc_dev, "broken MicroWire interface detected; " + aprint_debug_dev(sc->sc_dev, "broken MicroWire interface detected; " "setting SROM size to 1Kb\n"); return (6); } else { if (tlp_srom_debug) printf("%s: SROM size is 2^%d*16 bits (%d bytes)\n", - device_xname(&sc->sc_dev), x, (1 << (x + 4)) >> 3); + device_xname(sc->sc_dev), x, (1 << (x + 4)) >> 3); return (x); } } @@ -2323,7 +2323,7 @@ m->m_ext.ext_buf, m->m_ext.ext_size, NULL, BUS_DMA_READ|BUS_DMA_NOWAIT); if (error) { - aprint_error_dev(&sc->sc_dev, "can't load rx DMA map %d, error = %d\n", + aprint_error_dev(sc->sc_dev, "can't load rx DMA map %d, error = %d\n", idx, error); panic("tlp_add_rxbuf"); /* XXX */ } @@ -2581,7 +2581,7 @@ int cnt, nexttx; DPRINTF(sc, ("%s: tlp_filter_setup: sc_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags)); + device_xname(sc->sc_dev), sc->sc_flags)); memcpy(enaddr, CLLADDR(ifp->if_sadl), ETHER_ADDR_LEN); @@ -2593,7 +2593,7 @@ (sc->sc_flags & TULIPF_DOING_SETUP) != 0) { sc->sc_flags |= TULIPF_WANT_SETUP; DPRINTF(sc, ("%s: tlp_filter_setup: deferring\n", - device_xname(&sc->sc_dev))); + device_xname(sc->sc_dev))); return; } sc->sc_flags &= ~TULIPF_WANT_SETUP; @@ -2827,7 +2827,7 @@ /* Set up a watchdog timer in case the chip flakes out. */ ifp->if_timer = 5; - DPRINTF(sc, ("%s: tlp_filter_setup: returning\n", device_xname(&sc->sc_dev))); + DPRINTF(sc, ("%s: tlp_filter_setup: returning\n", device_xname(sc->sc_dev))); } /* @@ -2845,7 +2845,7 @@ uint32_t hash, mchash[2]; DPRINTF(sc, ("%s: tlp_winb_filter_setup: sc_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags)); + device_xname(sc->sc_dev), sc->sc_flags)); sc->sc_opmode &= ~(OPMODE_WINB_APP|OPMODE_WINB_AMP|OPMODE_WINB_ABP); @@ -2898,7 +2898,7 @@ TULIP_WRITE(sc, CSR_WINB_CMA1, mchash[1]); TULIP_WRITE(sc, CSR_OPMODE, sc->sc_opmode); DPRINTF(sc, ("%s: tlp_winb_filter_setup: returning\n", - device_xname(&sc->sc_dev))); + device_xname(sc->sc_dev))); } /* @@ -2927,7 +2927,7 @@ } DPRINTF(sc, ("%s: tlp_al981_filter_setup: sc_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags)); + device_xname(sc->sc_dev), sc->sc_flags)); sc->sc_opmode &= ~(OPMODE_PR|OPMODE_PM); @@ -2968,7 +2968,7 @@ bus_space_write_4(sc->sc_st, sc->sc_sh, CSR_ADM_MAR1, mchash[1]); TULIP_WRITE(sc, CSR_OPMODE, sc->sc_opmode); DPRINTF(sc, ("%s: tlp_al981_filter_setup: returning\n", - device_xname(&sc->sc_dev))); + device_xname(sc->sc_dev))); } /* @@ -2986,7 +2986,7 @@ uint32_t hash, mchash[2]; DPRINTF(sc, ("%s: tlp_asix_filter_setup: sc_flags 0x%08x\n", - device_xname(&sc->sc_dev), sc->sc_flags)); + device_xname(sc->sc_dev), sc->sc_flags)); sc->sc_opmode &= ~(OPMODE_PM|OPMODE_AX_RB|OPMODE_PR); @@ -3038,7 +3038,7 @@ TULIP_WRITE(sc, CSR_AX_FILTDATA, mchash[1]); TULIP_WRITE(sc, CSR_OPMODE, sc->sc_opmode); DPRINTF(sc, ("%s: tlp_asix_filter_setup: returning\n", - device_xname(&sc->sc_dev))); + device_xname(sc->sc_dev))); } @@ -3135,7 +3135,7 @@ break; default: printf("%s: transmit process failed to idle: " - "state %s\n", device_xname(&sc->sc_dev), + "state %s\n", device_xname(sc->sc_dev), tx_state_names[(csr & STATUS_TS) >> 20]); } } @@ -3152,7 +3152,7 @@ break; default: printf("%s: receive process failed to idle: " - "state %s\n", device_xname(&sc->sc_dev), + "state %s\n", device_xname(sc->sc_dev), rx_state_names[(csr & STATUS_RS) >> 17]); } } @@ -3213,7 +3213,7 @@ struct tulip_softc *sc = arg; int s; - if (!device_is_active(&sc->sc_dev)) + if (!device_is_active(sc->sc_dev)) return; s = splnet(); @@ -3433,7 +3433,7 @@ return (val & PNIC_MII_DATA); } } - printf("%s: MII read timed out\n", device_xname(&sc->sc_dev)); + printf("%s: MII read timed out\n", device_xname(sc->sc_dev)); return (0); } @@ -3458,7 +3458,7 @@ if (TULIP_ISSET(sc, CSR_PNIC_MII, PNIC_MII_BUSY) == 0) return; } - printf("%s: MII write timed out\n", device_xname(&sc->sc_dev)); + printf("%s: MII write timed out\n", device_xname(sc->sc_dev)); } static const bus_addr_t tlp_al981_phy_regmap[] = { @@ -4029,7 +4029,7 @@ #define PRINT(str) printf("%s%s", sep, str); sep = ", " - printf("%s: ", device_xname(&sc->sc_dev)); + printf("%s: ", device_xname(sc->sc_dev)); for (ife = TAILQ_FIRST(&sc->sc_mii.mii_media.ifm_list); ife != NULL; ife = TAILQ_NEXT(ife, ifm_list)) { tm = ife->ifm_aux; @@ -4534,7 +4534,7 @@ default: printf("%s: unknown media code 0x%02x\n", - device_xname(&sc->sc_dev), + device_xname(sc->sc_dev), mb & TULIP_ROM_MB_MEDIA_CODE); free(tm, M_DEVBUF); } @@ -4645,7 +4645,7 @@ } if (i == devcnt) { - aprint_error_dev(&sc->sc_dev, "unable to locate info leaf in SROM\n"); + aprint_error_dev(sc->sc_dev, "unable to locate info leaf in SROM\n"); return; } @@ -4821,7 +4821,7 @@ * particularly care; the MII code just likes to * search the whole thing anyhow. */ - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, tm->tm_phyno, 0); /* @@ -4836,7 +4836,7 @@ if (phy->mii_offset == tm->tm_phyno) break; if (phy == NULL) { - aprint_error_dev(&sc->sc_dev, "unable to configure MII\n"); + aprint_error_dev(sc->sc_dev, "unable to configure MII\n"); break; } @@ -4978,7 +4978,7 @@ * particularly care; the MII code just likes to * search the whole thing anyhow. */ - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, tm->tm_phyno, 0); /* @@ -4993,7 +4993,7 @@ if (phy->mii_offset == tm->tm_phyno) break; if (phy == NULL) { - aprint_error_dev(&sc->sc_dev, "unable to configure MII\n"); + aprint_error_dev(sc->sc_dev, "unable to configure MII\n"); break; } @@ -5069,12 +5069,12 @@ break; case TULIP_ROM_MB_21143_RESET: - printf("%s: 21143 reset block\n", device_xname(&sc->sc_dev)); + printf("%s: 21143 reset block\n", device_xname(sc->sc_dev)); break; default: printf("%s: unknown ISV media block type 0x%02x\n", - device_xname(&sc->sc_dev), type); + device_xname(sc->sc_dev), type); } } @@ -5082,7 +5082,7 @@ * Deal with the case where no media is configured. */ if (TAILQ_FIRST(&sc->sc_mii.mii_media.ifm_list) == NULL) { - printf("%s: no media found!\n", device_xname(&sc->sc_dev)); + printf("%s: no media found!\n", device_xname(sc->sc_dev)); ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER|IFM_NONE, 0, NULL); ifmedia_set(&sc->sc_mii.mii_media, IFM_ETHER|IFM_NONE); return; @@ -5190,7 +5190,7 @@ struct mii_data *mii = &sc->sc_mii; int s, ticks; - if (!device_is_active(&sc->sc_dev)) + if (!device_is_active(sc->sc_dev)) return; s = splnet(); @@ -5283,7 +5283,7 @@ */ if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO && ife->ifm_data != mii->mii_media_active) { - (*sc->sc_statchg)(&sc->sc_dev); + (*sc->sc_statchg)(sc->sc_dev); ife->ifm_data = mii->mii_media_active; } return (0); @@ -5453,7 +5453,7 @@ sc->sc_mii.mii_statchg = sc->sc_statchg; ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL) { ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER|IFM_NONE, 0, NULL); @@ -5500,11 +5500,11 @@ sc->sc_mii.mii_statchg = sc->sc_statchg; ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL) { /* XXX What about AUI/BNC support? */ - printf("%s: ", device_xname(&sc->sc_dev)); + printf("%s: ", device_xname(sc->sc_dev)); tlp_pnic_nway_reset(sc); @@ -5625,7 +5625,7 @@ struct tulip_softc *sc = arg; int s; - if (!device_is_active(&sc->sc_dev)) + if (!device_is_active(sc->sc_dev)) return; s = splnet(); @@ -5706,7 +5706,7 @@ if ((sc->sc_nway_active == NULL || sc->sc_nway_active->ifm_media != mii->mii_media_active) || cmd == MII_MEDIACHG) { - (*sc->sc_statchg)(&sc->sc_dev); + (*sc->sc_statchg)(sc->sc_dev); tlp_nway_activate(sc, mii->mii_media_active); } return (0); @@ -5744,7 +5744,7 @@ } #if 0 if ((reg & PNIC_NWAY_LPAR_MASK) == 0) - aprint_error_dev(&sc->sc_dev, "autonegotiation failed to complete\n"); + aprint_error_dev(sc->sc_dev, "autonegotiation failed to complete\n"); #endif /* @@ -5780,7 +5780,7 @@ reg = TULIP_READ(sc, CSR_PNIC_NWAY); #if 0 if ((reg & PNIC_NWAY_LPAR_MASK) == 0) - aprint_error_dev(&sc->sc_dev, "autonegotiation failed to complete\n"); + aprint_error_dev(sc->sc_dev, "autonegotiation failed to complete\n"); #endif tlp_pnic_nway_acomp(sc); @@ -5896,7 +5896,7 @@ tlp_mediastatus); if (sc->sc_chip == TULIP_CHIP_MX98713 || sc->sc_chip == TULIP_CHIP_MX98713A) { - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) != NULL) { sc->sc_flags |= TULIPF_HAS_MII; @@ -5969,7 +5969,7 @@ sc->sc_mii.mii_statchg = sc->sc_statchg; ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL) { ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER|IFM_NONE, 0, NULL); @@ -6004,7 +6004,7 @@ sc->sc_mii.mii_statchg = sc->sc_statchg; ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, 1, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, 1, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL) { ifmedia_add(&sc->sc_mii.mii_media, IFM_ETHER|IFM_NONE, 0, NULL); @@ -6064,7 +6064,7 @@ TULIP_WRITE(sc, CSR_OPMODE, opmode); /* Now, probe the internal MII for the internal PHY. */ - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); /* @@ -6141,7 +6141,7 @@ TULIP_WRITE(sc, CSR_OPMODE, opmode); /* Now, probe the internal MII for the internal PHY. */ - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); /* XXX Figure how to handle the PHY. */ @@ -6208,7 +6208,7 @@ * The RS7112 reports a PHY at 0 (possibly HomePNA?) * and 1 (ethernet). We attach ethernet only. */ - mii_attach(&sc->sc_dev, &sc->sc_mii, 0xffffffff, 1, + mii_attach(sc->sc_dev, &sc->sc_mii, 0xffffffff, 1, MII_OFFSET_ANY, 0); if (LIST_FIRST(&sc->sc_mii.mii_phys) == NULL) { Index: src/sys/dev/ic/tulipvar.h diff -u src/sys/dev/ic/tulipvar.h:1.62 src/sys/dev/ic/tulipvar.h:1.63 --- src/sys/dev/ic/tulipvar.h:1.62 Fri Apr 17 08:30:55 2009 +++ src/sys/dev/ic/tulipvar.h Fri Apr 17 10:20:33 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: tulipvar.h,v 1.62 2009/04/17 08:30:55 cegger Exp $ */ +/* $NetBSD: tulipvar.h,v 1.63 2009/04/17 10:20:33 cegger Exp $ */ /*- * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -330,7 +330,7 @@ * Software state per device. */ struct tulip_softc { - struct device sc_dev; /* generic device information */ + device_t sc_dev; /* generic device information */ bus_space_tag_t sc_st; /* bus space tag */ bus_space_handle_t sc_sh; /* bus space handle */ bus_dma_tag_t sc_dmat; /* bus DMA tag */ Index: src/sys/dev/pci/if_tlp_pci.c diff -u src/sys/dev/pci/if_tlp_pci.c:1.106 src/sys/dev/pci/if_tlp_pci.c:1.107 --- src/sys/dev/pci/if_tlp_pci.c:1.106 Sun Jun 8 18:18:34 2008 +++ src/sys/dev/pci/if_tlp_pci.c Fri Apr 17 10:20:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tlp_pci.c,v 1.106 2008/06/08 18:18:34 tsutsui Exp $ */ +/* $NetBSD: if_tlp_pci.c,v 1.107 2009/04/17 10:20:32 cegger Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tlp_pci.c,v 1.106 2008/06/08 18:18:34 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tlp_pci.c,v 1.107 2009/04/17 10:20:32 cegger Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -108,7 +108,7 @@ static int tlp_pci_match(device_t, struct cfdata *, void *); static void tlp_pci_attach(device_t, device_t, void *); -CFATTACH_DECL(tlp_pci, sizeof(struct tulip_pci_softc), +CFATTACH_DECL_NEW(tlp_pci, sizeof(struct tulip_pci_softc), tlp_pci_match, tlp_pci_attach, NULL, NULL); static const struct tulip_pci_product { @@ -310,8 +310,8 @@ for (i = 0; i < tlp_cd.cd_ndevs; i++) { if ((cur = device_lookup_private(&tlp_cd, i)) == NULL) continue; - if (device_parent(&cur->sc_tulip.sc_dev) != - device_parent(&sc->sc_dev)) + if (device_parent(cur->sc_tulip.sc_dev) != + device_parent(sc->sc_dev)) continue; if ((cur->sc_flags & shared) == 0) continue; @@ -329,7 +329,7 @@ } static int -tlp_pci_match(device_t parent, struct cfdata *match, void *aux) +tlp_pci_match(device_t parent, cfdata_t match, void *aux) { struct pci_attach_args *pa = aux; @@ -358,6 +358,7 @@ pcireg_t reg; int error; + sc->sc_dev = self; sc->sc_devno = pa->pa_device; psc->sc_pc = pa->pa_pc; psc->sc_pcitag = pa->pa_tag; @@ -466,7 +467,7 @@ case TULIP_CHIP_21040: if (sc->sc_rev < 0x20) { printf("%s: 21040 must be at least pass 2.0\n", - device_xname(&sc->sc_dev)); + device_xname(self)); return; } break; @@ -474,7 +475,7 @@ case TULIP_CHIP_21140: if (sc->sc_rev < 0x11) { printf("%s: 21140 must be at least pass 1.1\n", - device_xname(&sc->sc_dev)); + device_xname(self)); return; } break; @@ -520,7 +521,7 @@ /* power up chip */ if ((error = pci_activate(pa->pa_pc, pa->pa_tag, self, NULL)) && error != EOPNOTSUPP) { - aprint_error_dev(&sc->sc_dev, "cannot activate %d\n", + aprint_error_dev(self, "cannot activate %d\n", error); return; } @@ -542,7 +543,7 @@ sc->sc_st = iot; sc->sc_sh = ioh; } else { - aprint_error_dev(&sc->sc_dev, "unable to map device registers\n"); + aprint_error_dev(self, "unable to map device registers\n"); return; } @@ -611,7 +612,7 @@ } if (val & PNIC_MIIROM_BUSY) { printf("%s: EEPROM timed out\n", - device_xname(&sc->sc_dev)); + device_xname(self)); return; } val &= PNIC_MIIROM_DATA; @@ -630,7 +631,7 @@ * XXX logic, and for now we can at least remove a machine- * XXX dependent wart from the PCI front-end. */ - ea = prop_dictionary_get(device_properties(&sc->sc_dev), + ea = prop_dictionary_get(device_properties(self), "mac-addr"); if (ea != NULL) { extern int tlp_srom_debug; @@ -967,7 +968,7 @@ default: cant_cope: printf("%s: sorry, unable to handle your board\n", - device_xname(&sc->sc_dev)); + device_xname(self)); return; } @@ -989,14 +990,14 @@ if (psc->sc_flags & TULIP_PCI_SLAVEINTR) { printf("%s: sharing interrupt with %s\n", - device_xname(&sc->sc_dev), - device_xname(&psc->sc_master->sc_tulip.sc_dev)); + device_xname(self), + device_xname(psc->sc_master->sc_tulip.sc_dev)); } else { /* * Map and establish our interrupt. */ if (pci_intr_map(pa, &ih)) { - aprint_error_dev(&sc->sc_dev, "unable to map interrupt\n"); + aprint_error_dev(self, "unable to map interrupt\n"); return; } intrstr = pci_intr_string(pc, ih); @@ -1004,13 +1005,13 @@ (psc->sc_flags & TULIP_PCI_SHAREDINTR) ? tlp_pci_shared_intr : tlp_intr, sc); if (psc->sc_ih == NULL) { - aprint_error_dev(&sc->sc_dev, "unable to establish interrupt"); + aprint_error_dev(self, "unable to establish interrupt"); if (intrstr != NULL) printf(" at %s", intrstr); printf("\n"); return; } - printf("%s: interrupting at %s\n", device_xname(&sc->sc_dev), + printf("%s: interrupting at %s\n", device_xname(self), intrstr); } @@ -1156,7 +1157,7 @@ case 0x2b: /* ZX244 */ case 0x2c: /* ZX424 */ case 0x2e: /* ZX422 */ - printf("%s: QS6611 PHY\n", device_xname(&sc->sc_dev)); + printf("%s: QS6611 PHY\n", device_xname(sc->sc_dev)); sc->sc_reset = tlp_pci_znyx_21142_qs6611_reset; break; } @@ -1350,7 +1351,7 @@ ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - printf("%s: ", device_xname(&sc->sc_dev)); + printf("%s: ", device_xname(sc->sc_dev)); #define ADD(m, c) \ tm = malloc(sizeof(*tm), M_DEVBUF, M_WAITOK|M_ZERO); \ @@ -1510,7 +1511,7 @@ default: printf("%s: unknown Cogent board ID 0x%02x\n", - device_xname(&sc->sc_dev), id0); + device_xname(sc->sc_dev), id0); } return; } @@ -1543,7 +1544,7 @@ default: unknown: printf("%s: unknown Adaptec/Cogent board ID 0x%04x/0x%04x\n", - device_xname(&sc->sc_dev), id1, id2); + device_xname(sc->sc_dev), id1, id2); } } @@ -1559,7 +1560,7 @@ ifmedia_init(&sc->sc_mii.mii_media, 0, tlp_mediachange, tlp_mediastatus); - printf("%s: ", device_xname(&sc->sc_dev)); + printf("%s: ", device_xname(sc->sc_dev)); #define ADD(m, c) \ tm = malloc(sizeof(*tm), M_DEVBUF, M_WAITOK|M_ZERO); \