Module Name:    src
Committed By:   tsutsui
Date:           Sun May 17 00:40:44 UTC 2009

Modified Files:
        src/sys/dev/ic: hme.c hmevar.h
        src/sys/dev/pci: if_hme_pci.c
        src/sys/dev/sbus: if_hme_sbus.c

Log Message:
Split device_t/softc.
Tested PCI HME on i386.  Sbus HME is compile test only.


To generate a diff of this commit:
cvs rdiff -u -r1.78 -r1.79 src/sys/dev/ic/hme.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ic/hmevar.h
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/pci/if_hme_pci.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/sbus/if_hme_sbus.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/ic/hme.c
diff -u src/sys/dev/ic/hme.c:1.78 src/sys/dev/ic/hme.c:1.79
--- src/sys/dev/ic/hme.c:1.78	Tue May 12 14:25:17 2009
+++ src/sys/dev/ic/hme.c	Sun May 17 00:40:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: hme.c,v 1.78 2009/05/12 14:25:17 cegger Exp $	*/
+/*	$NetBSD: hme.c,v 1.79 2009/05/17 00:40:43 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hme.c,v 1.78 2009/05/12 14:25:17 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hme.c,v 1.79 2009/05/17 00:40:43 tsutsui Exp $");
 
 /* #define HMEDEBUG */
 
@@ -196,7 +196,7 @@
 	if ((error = bus_dmamem_alloc(dmatag, size,
 				      2048, 0,
 				      &seg, 1, &rseg, BUS_DMA_NOWAIT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "DMA buffer alloc error %d\n",
+		aprint_error_dev(sc->sc_dev, "DMA buffer alloc error %d\n",
 			error);
 		return;
 	}
@@ -205,7 +205,7 @@
 	if ((error = bus_dmamem_map(dmatag, &seg, rseg, size,
 				    &sc->sc_rb.rb_membase,
 				    BUS_DMA_NOWAIT|BUS_DMA_COHERENT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "DMA buffer map error %d\n",
+		aprint_error_dev(sc->sc_dev, "DMA buffer map error %d\n",
 			error);
 		bus_dmamap_unload(dmatag, sc->sc_dmamap);
 		bus_dmamem_free(dmatag, &seg, rseg);
@@ -214,7 +214,7 @@
 
 	if ((error = bus_dmamap_create(dmatag, size, 1, size, 0,
 				    BUS_DMA_NOWAIT, &sc->sc_dmamap)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "DMA map create error %d\n",
+		aprint_error_dev(sc->sc_dev, "DMA map create error %d\n",
 			error);
 		return;
 	}
@@ -223,18 +223,18 @@
 	if ((error = bus_dmamap_load(dmatag, sc->sc_dmamap,
 	    sc->sc_rb.rb_membase, size, NULL,
 	    BUS_DMA_NOWAIT|BUS_DMA_COHERENT)) != 0) {
-		aprint_error_dev(&sc->sc_dev, "DMA buffer map load error %d\n",
+		aprint_error_dev(sc->sc_dev, "DMA buffer map load error %d\n",
 			error);
 		bus_dmamem_free(dmatag, &seg, rseg);
 		return;
 	}
 	sc->sc_rb.rb_dmabase = sc->sc_dmamap->dm_segs[0].ds_addr;
 
-	printf("%s: Ethernet address %s\n", device_xname(&sc->sc_dev),
+	aprint_normal_dev(sc->sc_dev, "Ethernet address %s\n",
 	    ether_sprintf(sc->sc_enaddr));
 
 	/* Initialize ifnet structure. */
-	strlcpy(ifp->if_xname, device_xname(&sc->sc_dev), IFNAMSIZ);
+	strlcpy(ifp->if_xname, device_xname(sc->sc_dev), IFNAMSIZ);
 	ifp->if_softc = sc;
 	ifp->if_start = hme_start;
 	ifp->if_ioctl = hme_ioctl;
@@ -263,9 +263,9 @@
 	 * the RJ45 (internal) PHY first, so that the MII PHY is always
 	 * instance 1.
 	 */
-	mii_attach(&sc->sc_dev, mii, 0xffffffff,
+	mii_attach(sc->sc_dev, mii, 0xffffffff,
 			HME_PHYAD_INTERNAL, MII_OFFSET_ANY, MIIF_FORCEANEG);
-	mii_attach(&sc->sc_dev, mii, 0xffffffff,
+	mii_attach(sc->sc_dev, mii, 0xffffffff,
 			HME_PHYAD_EXTERNAL, MII_OFFSET_ANY, MIIF_FORCEANEG);
 
 	child = LIST_FIRST(&mii->mii_phys);
@@ -288,7 +288,8 @@
 			 * connector.
 			 */
 			if (child->mii_phy > 1 || child->mii_inst > 1) {
-				aprint_error_dev(&sc->sc_dev, "cannot accommodate MII device %s"
+				aprint_error_dev(sc->sc_dev,
+				    "cannot accommodate MII device %s"
 				       " at phy %d, instance %d\n",
 				       device_xname(child->mii_dev),
 				       child->mii_phy, child->mii_inst);
@@ -323,7 +324,7 @@
 		panic("hme_config: can't establish shutdownhook");
 
 #if NRND > 0
-	rnd_attach_source(&sc->rnd_source, device_xname(&sc->sc_dev),
+	rnd_attach_source(&sc->rnd_source, device_xname(sc->sc_dev),
 			  RND_TYPE_NET, 0);
 #endif
 
@@ -379,7 +380,7 @@
 		DELAY(20);
 	}
 
-	printf("%s: hme_stop: reset failed\n", device_xname(&sc->sc_dev));
+	printf("%s: hme_stop: reset failed\n", device_xname(sc->sc_dev));
 }
 
 void
@@ -862,7 +863,7 @@
 	    ETHERMTU + sizeof(struct ether_header))) {
 #ifdef HMEDEBUG
 		printf("%s: invalid packet size %d; dropping\n",
-		    device_xname(&sc->sc_dev), len);
+		    device_xname(sc->sc_dev), len);
 #endif
 		ifp->if_ierrors++;
 		return;
@@ -893,7 +894,7 @@
 void
 hme_start(struct ifnet *ifp)
 {
-	struct hme_softc *sc = (struct hme_softc *)ifp->if_softc;
+	struct hme_softc *sc = ifp->if_softc;
 	void *txd = sc->sc_rb.rb_txd;
 	struct mbuf *m;
 	unsigned int txflags;
@@ -1064,7 +1065,7 @@
 
 		if (flags & HME_XD_OFL) {
 			printf("%s: buffer overflow, ri=%d; flags=0x%x\n",
-					device_xname(&sc->sc_dev), ri, flags);
+					device_xname(sc->sc_dev), ri, flags);
 		} else
 			hme_read(sc, ri, flags);
 
@@ -1107,7 +1108,7 @@
 		st = bus_space_read_4(t, mif, HME_MIFI_STAT);
 		sm = bus_space_read_4(t, mif, HME_MIFI_SM);
 		printf("%s: XXXlink status changed: cfg=%x, stat %x, sm %x\n",
-			device_xname(&sc->sc_dev), cf, st, sm);
+			device_xname(sc->sc_dev), cf, st, sm);
 		return (1);
 	}
 
@@ -1126,7 +1127,7 @@
 		hme_reset(sc);
 
 	snprintb(bits, sizeof(bits), HME_SEB_STAT_BITS, status);
-	printf("%s: status=%s\n", device_xname(&sc->sc_dev), bits);
+	printf("%s: status=%s\n", device_xname(sc->sc_dev), bits);
 		
 	return (1);
 }
@@ -1134,7 +1135,7 @@
 int
 hme_intr(void *v)
 {
-	struct hme_softc *sc = (struct hme_softc *)v;
+	struct hme_softc *sc = v;
 	bus_space_tag_t t = sc->sc_bustag;
 	bus_space_handle_t seb = sc->sc_seb;
 	uint32_t status;
@@ -1164,7 +1165,7 @@
 {
 	struct hme_softc *sc = ifp->if_softc;
 
-	log(LOG_ERR, "%s: device timeout\n", device_xname(&sc->sc_dev));
+	log(LOG_ERR, "%s: device timeout\n", device_xname(sc->sc_dev));
 	++ifp->if_oerrors;
 
 	hme_reset(sc);
@@ -1209,7 +1210,7 @@
 static int
 hme_mii_readreg(device_t self, int phy, int reg)
 {
-	struct hme_softc *sc = (void *)self;
+	struct hme_softc *sc = device_private(self);
 	bus_space_tag_t t = sc->sc_bustag;
 	bus_space_handle_t mif = sc->sc_mif;
 	bus_space_handle_t mac = sc->sc_mac;
@@ -1267,7 +1268,7 @@
 	}
 
 	v = 0;
-	printf("%s: mii_read timeout\n", device_xname(&sc->sc_dev));
+	printf("%s: mii_read timeout\n", device_xname(sc->sc_dev));
 
 out:
 	/* Restore MIFI_CFG register */
@@ -1280,7 +1281,7 @@
 static void
 hme_mii_writereg(device_t self, int phy, int reg, int val)
 {
-	struct hme_softc *sc = (void *)self;
+	struct hme_softc *sc = device_private(self);
 	bus_space_tag_t t = sc->sc_bustag;
 	bus_space_handle_t mif = sc->sc_mif;
 	bus_space_handle_t mac = sc->sc_mac;
@@ -1336,7 +1337,7 @@
 			goto out;
 	}
 
-	printf("%s: mii_write timeout\n", device_xname(&sc->sc_dev));
+	printf("%s: mii_write timeout\n", device_xname(sc->sc_dev));
 out:
 	/* Restore MIFI_CFG register */
 	bus_space_write_4(t, mif, HME_MIFI_CFG, mifi_cfg);
@@ -1347,7 +1348,7 @@
 static void
 hme_mii_statchg(device_t dev)
 {
-	struct hme_softc *sc = (void *)dev;
+	struct hme_softc *sc = device_private(dev);
 	bus_space_tag_t t = sc->sc_bustag;
 	bus_space_handle_t mac = sc->sc_mac;
 	uint32_t v;
@@ -1520,8 +1521,10 @@
 void
 hme_shutdown(void *arg)
 {
+	struct hme_softc *sc;
 
-	hme_stop((struct hme_softc *)arg, false);
+	sc = arg;
+	hme_stop(sc, false);
 }
 
 /*

Index: src/sys/dev/ic/hmevar.h
diff -u src/sys/dev/ic/hmevar.h:1.18 src/sys/dev/ic/hmevar.h:1.19
--- src/sys/dev/ic/hmevar.h:1.18	Thu Apr 16 14:08:18 2009
+++ src/sys/dev/ic/hmevar.h	Sun May 17 00:40:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: hmevar.h,v 1.18 2009/04/16 14:08:18 tsutsui Exp $	*/
+/*	$NetBSD: hmevar.h,v 1.19 2009/05/17 00:40:43 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
 };
 
 struct hme_softc {
-	struct device	sc_dev;		/* boilerplate device view */
+	device_t	sc_dev;		/* boilerplate device view */
 	struct ethercom	sc_ethercom;	/* Ethernet common part */
 	struct mii_data	sc_mii;		/* MII media control */
 	struct callout	sc_tick_ch;	/* tick callout */

Index: src/sys/dev/pci/if_hme_pci.c
diff -u src/sys/dev/pci/if_hme_pci.c:1.28 src/sys/dev/pci/if_hme_pci.c:1.29
--- src/sys/dev/pci/if_hme_pci.c:1.28	Tue May 12 08:23:00 2009
+++ src/sys/dev/pci/if_hme_pci.c	Sun May 17 00:40:43 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_hme_pci.c,v 1.28 2009/05/12 08:23:00 cegger Exp $	*/
+/*	$NetBSD: if_hme_pci.c,v 1.29 2009/05/17 00:40:43 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 2000 Matthew R. Green
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_hme_pci.c,v 1.28 2009/05/12 08:23:00 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_hme_pci.c,v 1.29 2009/05/17 00:40:43 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -77,7 +77,7 @@
 int	hmematch_pci(device_t, cfdata_t, void *);
 void	hmeattach_pci(device_t, device_t, void *);
 
-CFATTACH_DECL(hme_pci, sizeof(struct hme_pci_softc),
+CFATTACH_DECL_NEW(hme_pci, sizeof(struct hme_pci_softc),
     hmematch_pci, hmeattach_pci, NULL, NULL);
 
 int
@@ -152,7 +152,9 @@
 #define PROMDATA_DATA2		0x0a
 #endif	/* HME_USE_LOCAL_MAC_ADDRESS */
 
-	printf(": Sun Happy Meal Ethernet, rev. %d\n",
+	sc->sc_dev = self;
+
+	aprint_normal(": Sun Happy Meal Ethernet, rev. %d\n",
 	    PCI_REVISION(pa->pa_class));
 
 	/*
@@ -192,30 +194,29 @@
 
 #define PCI_HME_BASEADDR	0x10
 	if (pci_mapreg_map(pa, PCI_HME_BASEADDR, type, 0,
-	    &hsc->hsc_memt, &hsc->hsc_memh, NULL, NULL) != 0)
-	{
-		aprint_error_dev(&sc->sc_dev, "unable to map device registers\n");
+	    &hsc->hsc_memt, &hsc->hsc_memh, NULL, NULL) != 0) {
+		aprint_error_dev(self, "unable to map device registers\n");
 		return;
 	}
 	sc->sc_seb = hsc->hsc_memh;
 	if (bus_space_subregion(hsc->hsc_memt, hsc->hsc_memh, 0x2000,
 	    0x1000, &sc->sc_etx)) {
-		aprint_error_dev(&sc->sc_dev, "unable to subregion ETX registers\n");
+		aprint_error_dev(self, "unable to subregion ETX registers\n");
 		return;
 	}
 	if (bus_space_subregion(hsc->hsc_memt, hsc->hsc_memh, 0x4000,
 	    0x1000, &sc->sc_erx)) {
-		aprint_error_dev(&sc->sc_dev, "unable to subregion ERX registers\n");
+		aprint_error_dev(self, "unable to subregion ERX registers\n");
 		return;
 	}
 	if (bus_space_subregion(hsc->hsc_memt, hsc->hsc_memh, 0x6000,
 	    0x1000, &sc->sc_mac)) {
-		aprint_error_dev(&sc->sc_dev, "unable to subregion MAC registers\n");
+		aprint_error_dev(self, "unable to subregion MAC registers\n");
 		return;
 	}
 	if (bus_space_subregion(hsc->hsc_memt, hsc->hsc_memh, 0x7000,
 	    0x1000, &sc->sc_mif)) {
-		aprint_error_dev(&sc->sc_dev, "unable to subregion MIF registers\n");
+		aprint_error_dev(self, "unable to subregion MIF registers\n");
 		return;
 	}
 
@@ -297,26 +298,26 @@
 #ifdef __sparc__
 		prom_getether(PCITAG_NODE(pa->pa_tag), sc->sc_enaddr);
 #else
-		printf("%s: no Ethernet address found\n", device_xname(&sc->sc_dev));
+		printf("%s: no Ethernet address found\n", device_xname(self));
 #endif
 
 	/*
 	 * Map and establish our interrupt.
 	 */
 	if (pci_intr_map(pa, &ih) != 0) {
-		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(pa->pa_pc, ih);
 	hsc->hsc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_NET, hme_intr, sc);
 	if (hsc->hsc_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");
+			aprint_error(" at %s", intrstr);
+		aprint_error("\n");
 		return;
 	}
-	printf("%s: interrupting at %s\n", device_xname(&sc->sc_dev), intrstr);
+	aprint_normal_dev(self, "interrupting at %s\n", intrstr);
 
 	sc->sc_burst = 16;	/* XXX */
 

Index: src/sys/dev/sbus/if_hme_sbus.c
diff -u src/sys/dev/sbus/if_hme_sbus.c:1.29 src/sys/dev/sbus/if_hme_sbus.c:1.30
--- src/sys/dev/sbus/if_hme_sbus.c:1.29	Sun May 17 00:28:35 2009
+++ src/sys/dev/sbus/if_hme_sbus.c	Sun May 17 00:40:44 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_hme_sbus.c,v 1.29 2009/05/17 00:28:35 tsutsui Exp $	*/
+/*	$NetBSD: if_hme_sbus.c,v 1.30 2009/05/17 00:40:44 tsutsui Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_hme_sbus.c,v 1.29 2009/05/17 00:28:35 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_hme_sbus.c,v 1.30 2009/05/17 00:40:44 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -66,7 +66,7 @@
 int	hmematch_sbus(device_t, cfdata_t, void *);
 void	hmeattach_sbus(device_t, device_t, void *);
 
-CFATTACH_DECL(hme_sbus, sizeof(struct hmesbus_softc),
+CFATTACH_DECL_NEW(hme_sbus, sizeof(struct hmesbus_softc),
     hmematch_sbus, hmeattach_sbus, NULL, NULL);
 
 int
@@ -83,25 +83,26 @@
 hmeattach_sbus(device_t parent, device_t self, void *aux)
 {
 	struct sbus_attach_args *sa = aux;
-	struct hmesbus_softc *hsc = (void *)self;
+	struct hmesbus_softc *hsc = device_private(self);
 	struct hme_softc *sc = &hsc->hsc_hme;
 	struct sbus_softc *sbsc = device_private(parent);
 	struct sbusdev *sd = &hsc->hsc_sbus;
 	u_int32_t burst, sbusburst;
 	int node;
 
+	sc->sc_dev = self;
 	node = sa->sa_node;
 
 	/* Pass on the bus tags */
 	sc->sc_bustag = sa->sa_bustag;
 	sc->sc_dmatag = sa->sa_dmatag;
 
-	printf(": Sun Happy Meal Ethernet (%s)\n",
+	aprint_normal(": Sun Happy Meal Ethernet (%s)\n",
 	    sa->sa_name);
 
 	if (sa->sa_nreg < 5) {
-		printf("%s: only %d register sets\n",
-			device_xname(self), sa->sa_nreg);
+		aprint_error_dev(self, "only %d register sets\n",
+		    sa->sa_nreg);
 		return;
 	}
 

Reply via email to