Module Name:    src
Committed By:   jakllsch
Date:           Mon Jul 19 15:46:38 UTC 2010

Modified Files:
        src/sys/dev/pci: if_wm.c

Log Message:
Omit U+00AE "REGISTERED SIGN" in a product name due to its non-ASCII nature.
wm_release_hw_control() in wm_detach() before we unmap the registers we need.
Unmap I/O space during detach.


To generate a diff of this commit:
cvs rdiff -u -r1.211 -r1.212 src/sys/dev/pci/if_wm.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/pci/if_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.211 src/sys/dev/pci/if_wm.c:1.212
--- src/sys/dev/pci/if_wm.c:1.211	Wed Jul 14 00:11:06 2010
+++ src/sys/dev/pci/if_wm.c	Mon Jul 19 15:46:37 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_wm.c,v 1.211 2010/07/14 00:11:06 msaitoh Exp $	*/
+/*	$NetBSD: if_wm.c,v 1.212 2010/07/19 15:46:37 jakllsch Exp $	*/
 
 /*
  * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.211 2010/07/14 00:11:06 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.212 2010/07/19 15:46:37 jakllsch Exp $");
 
 #include "rnd.h"
 
@@ -252,6 +252,7 @@
 	bus_size_t sc_ss;		/* bus space size */
 	bus_space_tag_t sc_iot;		/* I/O space tag */
 	bus_space_handle_t sc_ioh;	/* I/O space handle */
+	bus_size_t sc_ios;		/* I/O space size */
 	bus_space_tag_t sc_flasht;	/* flash registers space tag */
 	bus_space_handle_t sc_flashh;	/* flash registers space handle */
 	bus_dma_tag_t sc_dmat;		/* bus DMA tag */
@@ -785,7 +786,7 @@
 	  WM_T_82572,		WMP_F_1000T },
 
 	{ PCI_VENDOR_INTEL,	PCI_PRODUCT_INTEL_82571GB_QUAD_COPPER,
-	  "IntelĀ® PRO/1000 PT Quad Port Server Adapter",
+	  "Intel PRO/1000 PT Quad Port Server Adapter",
 	  WM_T_82571,		WMP_F_1000T, },
 
 	{ PCI_VENDOR_INTEL,	PCI_PRODUCT_INTEL_82572EI_FIBER,
@@ -1200,7 +1201,7 @@
 				    "WARNING: I/O BAR at zero.\n");
 			} else if (pci_mapreg_map(pa, i, PCI_MAPREG_TYPE_IO,
 					0, &sc->sc_iot, &sc->sc_ioh,
-					NULL, NULL) == 0) {
+					NULL, &sc->sc_ios) == 0) {
 				sc->sc_flags |= WM_F_IOH_VALID;
 			} else {
 				aprint_error_dev(sc->sc_dev,
@@ -2038,6 +2039,7 @@
 
 	/* Tell the firmware about the release */
 	wm_release_manageability(sc);
+	wm_release_hw_control(sc);
 
 	mii_detach(&sc->sc_mii, MII_PHY_ANY, MII_OFFSET_ANY);
 
@@ -2074,13 +2076,16 @@
 		sc->sc_ih = NULL;
 	}
 
-	/* Unmap the register */
+	/* Unmap the registers */
 	if (sc->sc_ss) {
 		bus_space_unmap(sc->sc_st, sc->sc_sh, sc->sc_ss);
 		sc->sc_ss = 0;
 	}
 
-	wm_release_hw_control(sc);
+	if (sc->sc_ios) {
+		bus_space_unmap(sc->sc_iot, sc->sc_ioh, sc->sc_ios);
+		sc->sc_ios = 0;
+	}
 
 	return 0;
 }

Reply via email to