PERFORCE change 50753 for review

Warner Losh imp at FreeBSD.org
Fri Apr 9 15:00:12 PDT 2004


http://perforce.freebsd.org/chv.cgi?CH=50753

Change 50753 by imp at imp_pacopaco on 2004/04/09 14:59:54

	IFC @50746

Affected files ...

.. //depot/projects/power/sys/dev/acpica/acpi_acad.c#5 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_button.c#5 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_cmbat.c#5 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_cpu.c#6 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_ec.c#5 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_isab.c#2 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_lid.c#4 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_pci.c#12 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_pcib_pci.c#2 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_resource.c#5 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_thermal.c#7 integrate
.. //depot/projects/power/sys/dev/acpica/acpi_timer.c#3 integrate
.. //depot/projects/power/sys/dev/pccard/pccarddevs#7 integrate
.. //depot/projects/power/sys/dev/pccard/pccarddevs.h#7 integrate
.. //depot/projects/power/sys/dev/pci/pci.c#11 integrate
.. //depot/projects/power/sys/dev/xe/if_xe_pccard.c#5 integrate
.. //depot/projects/power/sys/dev/xe/if_xevar.h#3 integrate
.. //depot/projects/power/sys/i386/i386/identcpu.c#6 integrate

Differences ...

==== //depot/projects/power/sys/dev/acpica/acpi_acad.c#5 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.21 2004/03/03 18:34:42 njl Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.22 2004/04/09 18:14:32 njl Exp $
  */
 
 #include "opt_acpi.h"
@@ -83,6 +83,7 @@
 
 static devclass_t acpi_acad_devclass;
 DRIVER_MODULE(acpi_acad, acpi, acpi_acad_driver, acpi_acad_devclass, 0, 0);
+MODULE_DEPEND(acpi_acad, acpi, 1, 1, 1);
 
 static void
 acpi_acad_get_status(void *context)

==== //depot/projects/power/sys/dev/acpica/acpi_button.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.20 2004/02/19 18:16:34 njl Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.21 2004/04/09 18:14:32 njl Exp $
  */
 
 #include "opt_acpi.h"
@@ -83,6 +83,7 @@
 static devclass_t acpi_button_devclass;
 DRIVER_MODULE(acpi_button, acpi, acpi_button_driver, acpi_button_devclass,
 	      0, 0);
+MODULE_DEPEND(acpi_button, acpi, 1, 1, 1);
 
 static int
 acpi_button_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_cmbat.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.27 2003/12/23 18:27:35 njl Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.28 2004/04/09 18:14:32 njl Exp $
  */
 
 #include "opt_acpi.h"
@@ -110,6 +110,7 @@
 
 static devclass_t acpi_cmbat_devclass;
 DRIVER_MODULE(acpi_cmbat, acpi, acpi_cmbat_driver, acpi_cmbat_devclass, 0, 0);
+MODULE_DEPEND(acpi_cmbat, acpi, 1, 1, 1);
 
 static int
 acpi_cmbat_info_expired(struct timespec *lastupdated)

==== //depot/projects/power/sys/dev/acpica/acpi_cpu.c#6 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.32 2004/03/17 21:49:47 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.33 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -184,6 +184,7 @@
 
 static devclass_t acpi_cpu_devclass;
 DRIVER_MODULE(acpi_cpu, acpi, acpi_cpu_driver, acpi_cpu_devclass, 0, 0);
+MODULE_DEPEND(acpi_cpu, acpi, 1, 1, 1);
 
 static int
 acpi_cpu_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_ec.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.45 2004/03/17 17:50:24 njl Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.46 2004/04/09 18:14:32 njl Exp $
  */
 /******************************************************************************
  *
@@ -137,7 +137,7 @@
  *****************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.45 2004/03/17 17:50:24 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.46 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -352,6 +352,7 @@
 
 static devclass_t acpi_ec_devclass;
 DRIVER_MODULE(acpi_ec, acpi, acpi_ec_driver, acpi_ec_devclass, 0, 0);
+MODULE_DEPEND(acpi_ec, acpi, 1, 1, 1);
 
 /*
  * Look for an ECDT and if we find one, set up default GPE and 

==== //depot/projects/power/sys/dev/acpica/acpi_isab.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.4 2003/08/24 17:48:01 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.5 2004/04/09 18:14:32 njl Exp $");
 
 /*
  * ISA Bridge driver for Generic ISA Bus Devices.  See section 10.7 of the
@@ -88,6 +88,7 @@
 };
 
 DRIVER_MODULE(acpi_isab, acpi, acpi_isab_driver, isab_devclass, 0, 0);
+MODULE_DEPEND(acpi_isab, acpi, 1, 1, 1);
 
 static int
 acpi_isab_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_lid.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.16 2004/03/03 18:34:42 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.17 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -75,6 +75,7 @@
 
 static devclass_t acpi_lid_devclass;
 DRIVER_MODULE(acpi_lid, acpi, acpi_lid_driver, acpi_lid_devclass, 0, 0);
+MODULE_DEPEND(acpi_lid, acpi, 1, 1, 1);
 
 static int
 acpi_lid_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_pci.c#12 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.11 2004/04/09 15:44:34 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.12 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_bus.h"
 
@@ -123,8 +123,9 @@
 };
 
 DRIVER_MODULE(acpi_pci, pcib, acpi_pci_driver, pci_devclass, 0, 0);
+MODULE_DEPEND(acpi_pci, acpi, 1, 1, 1);
+MODULE_DEPEND(acpi_pci, pci, 1, 1, 1);
 MODULE_VERSION(acpi_pci, 1);
-MODULE_DEPEND(acpi_pci, pci, 1, 1, 1);
 
 static int
 acpi_pci_read_ivar(device_t dev, device_t child, int which, uintptr_t *result)

==== //depot/projects/power/sys/dev/acpica/acpi_pcib_acpi.c#4 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.31 2004/04/09 15:44:34 imp Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.32 2004/04/09 18:14:32 njl Exp $
  */
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -110,6 +110,7 @@
 };
 
 DRIVER_MODULE(acpi_pcib, acpi, acpi_pcib_acpi_driver, pcib_devclass, 0, 0);
+MODULE_DEPEND(acpi_pcib, acpi, 1, 1, 1);
 
 static int
 acpi_pcib_acpi_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_pcib_pci.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_pci.c,v 1.5 2003/08/24 17:48:01 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib_pci.c,v 1.6 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 
@@ -106,6 +106,7 @@
 };
 
 DRIVER_MODULE(acpi_pcib, pci, acpi_pcib_pci_driver, pcib_devclass, 0, 0);
+MODULE_DEPEND(acpi_pcib, acpi, 1, 1, 1);
 
 static int
 acpi_pcib_pci_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_resource.c#5 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.22 2004/03/31 17:23:46 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.23 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -568,6 +568,7 @@
 static devclass_t acpi_sysresource_devclass;
 DRIVER_MODULE(acpi_sysresource, acpi, acpi_sysresource_driver,
 	      acpi_sysresource_devclass, 0, 0);
+MODULE_DEPEND(acpi_sysresource, acpi, 1, 1, 1);
 
 static int
 acpi_sysresource_probe(device_t dev)

==== //depot/projects/power/sys/dev/acpica/acpi_thermal.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.41 2004/04/09 06:55:50 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.42 2004/04/09 18:14:32 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -137,6 +137,7 @@
 
 static devclass_t acpi_tz_devclass;
 DRIVER_MODULE(acpi_tz, acpi, acpi_tz_driver, acpi_tz_devclass, 0, 0);
+MODULE_DEPEND(acpi_tz, acpi, 1, 1, 1);
 
 static struct sysctl_ctx_list	acpi_tz_sysctl_ctx;
 static struct sysctl_oid	*acpi_tz_sysctl_tree;

==== //depot/projects/power/sys/dev/acpica/acpi_timer.c#3 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/acpica/acpi_timer.c,v 1.27 2004/03/17 17:50:24 njl Exp $
+ *	$FreeBSD: src/sys/dev/acpica/acpi_timer.c,v 1.28 2004/04/09 18:14:32 njl Exp $
  */
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -87,6 +87,7 @@
 
 static devclass_t acpi_timer_devclass;
 DRIVER_MODULE(acpi_timer, acpi, acpi_timer_driver, acpi_timer_devclass, 0, 0);
+MODULE_DEPEND(acpi_timer, acpi, 1, 1, 1);
 
 static struct timecounter acpi_timer_timecounter = {
 	acpi_timer_get_timecount_safe,

==== //depot/projects/power/sys/dev/pccard/pccarddevs#7 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.82 2004/03/25 21:56:28 imp Exp $
+$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.83 2004/04/09 17:08:12 rsm Exp $
 /* $NetBSD: pcmciadevs,v 1.186 2003/09/16 08:26:37 onoe Exp $ */
 /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */
 
@@ -457,17 +457,23 @@
 /* Xircom Products */
 product XIRCOM CWE1130		0x0007 Xircom Wireless Ethernet Adapter 
 product XIRCOM CE		0x0108 Xircom CreditCard Ethernet
-product XIRCOM CE3		0x010a Xircom CreditCard 10/100 Ethernet
-product XIRCOM CE2		0x010b Xircom CreditCard Ethernet II
+product XIRCOM CE2		0x010a Xircom CreditCard Ethernet II
+product XIRCOM CE3		0x010a Xircom CreditCard Ethernet 10/100
+product XIRCOM CE2_2		0x010b Xircom CreditCard Ethernet II
 product XIRCOM XE2000		0x0153 Xircom XE2000 10/100 Ethernet
 product XIRCOM CNW_801		0x0801 Xircom CreditCard Netwave (Canada)
 product XIRCOM CNW_802		0x0802 Xircom CreditCard Netwave (US)
 product XIRCOM CT2		0x1101 Xircom CreditCard Token Ring II
 product XIRCOM CEM		0x110a Xircom CreditCard Ethernet + Modem
+product XIRCOM CEM2		0x110a Xircom CreditCard Ethernet + Modem
+product XIRCOM CEM56		0x110a Xircom CreditCard Ethernet + Modem 56
+product XIRCOM REM10		0x110a Xircom CreditCard Ethernet 10 + Modem 56
 product XIRCOM REM56		0x110a Xircom RealPort Ethernet 10/100 + Modem 56
-product XIRCOM CEM28		0x110b Xircom CreditCard Ethernet + Modem 28
-product XIRCOM CEM56		0x110b Xircom CreditCard Ethernet + Modem 56
-product XIRCOM CEM33		0x110d Xircom CreditCard Ethernet + Modem 33
+product XIRCOM XEM5600		0x110a Xircom 10/100 Network + 56K Modem PC Card
+product XIRCOM CEM28		0x110b Xircom CreditCard Ethernet + Modem 28.8
+product XIRCOM CEM56_2		0x110b Xircom CreditCard Ethernet + Modem 56
+product XIRCOM CEM33		0x110c Xircom CreditCard Ethernet + Modem 33.6
+product XIRCOM CEM33_2		0x110d Xircom CreditCard Ethernet + Modem 33.6
 
 /* ZONET */
 product ZONET ZEN		0x0100	Zonet Zen 10/10

==== //depot/projects/power/sys/dev/pccard/pccarddevs.h#7 (text+ko) ====

@@ -1,10 +1,10 @@
-/*	$FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.82 2004/03/25 21:56:43 imp Exp $	*/
+/*	$FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.83 2004/04/09 17:10:12 rsm Exp $	*/
 
 /*
  * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.
  *
  * generated from:
- *	FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.82 2004/03/25 21:56:28 imp Exp 
+ *	FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.83 2004/04/09 17:08:12 rsm Exp 
  */
 /* $NetBSD: pcmciadevs,v 1.186 2003/09/16 08:26:37 onoe Exp $ */
 /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */
@@ -802,12 +802,15 @@
 #define	PCMCIA_CIS_XIRCOM_CE	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_CE	0x0108
 #define	PCMCIA_STR_XIRCOM_CE	"Xircom CreditCard Ethernet"
+#define	PCMCIA_CIS_XIRCOM_CE2	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CE2	0x010a
+#define	PCMCIA_STR_XIRCOM_CE2	"Xircom CreditCard Ethernet II"
 #define	PCMCIA_CIS_XIRCOM_CE3	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_CE3	0x010a
-#define	PCMCIA_STR_XIRCOM_CE3	"Xircom CreditCard 10/100 Ethernet"
-#define	PCMCIA_CIS_XIRCOM_CE2	{ NULL, NULL, NULL, NULL }
-#define	PCMCIA_PRODUCT_XIRCOM_CE2	0x010b
-#define	PCMCIA_STR_XIRCOM_CE2	"Xircom CreditCard Ethernet II"
+#define	PCMCIA_STR_XIRCOM_CE3	"Xircom CreditCard Ethernet 10/100"
+#define	PCMCIA_CIS_XIRCOM_CE2_2	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CE2_2	0x010b
+#define	PCMCIA_STR_XIRCOM_CE2_2	"Xircom CreditCard Ethernet II"
 #define	PCMCIA_CIS_XIRCOM_XE2000	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_XE2000	0x0153
 #define	PCMCIA_STR_XIRCOM_XE2000	"Xircom XE2000 10/100 Ethernet"
@@ -823,18 +826,33 @@
 #define	PCMCIA_CIS_XIRCOM_CEM	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_CEM	0x110a
 #define	PCMCIA_STR_XIRCOM_CEM	"Xircom CreditCard Ethernet + Modem"
+#define	PCMCIA_CIS_XIRCOM_CEM2	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CEM2	0x110a
+#define	PCMCIA_STR_XIRCOM_CEM2	"Xircom CreditCard Ethernet + Modem"
+#define	PCMCIA_CIS_XIRCOM_CEM56	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CEM56	0x110a
+#define	PCMCIA_STR_XIRCOM_CEM56	"Xircom CreditCard Ethernet + Modem 56"
+#define	PCMCIA_CIS_XIRCOM_REM10	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_REM10	0x110a
+#define	PCMCIA_STR_XIRCOM_REM10	"Xircom CreditCard Ethernet 10 + Modem 56"
 #define	PCMCIA_CIS_XIRCOM_REM56	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_REM56	0x110a
 #define	PCMCIA_STR_XIRCOM_REM56	"Xircom RealPort Ethernet 10/100 + Modem 56"
+#define	PCMCIA_CIS_XIRCOM_XEM5600	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_XEM5600	0x110a
+#define	PCMCIA_STR_XIRCOM_XEM5600	"Xircom 10/100 Network + 56K Modem PC Card"
 #define	PCMCIA_CIS_XIRCOM_CEM28	{ NULL, NULL, NULL, NULL }
 #define	PCMCIA_PRODUCT_XIRCOM_CEM28	0x110b
-#define	PCMCIA_STR_XIRCOM_CEM28	"Xircom CreditCard Ethernet + Modem 28"
-#define	PCMCIA_CIS_XIRCOM_CEM56	{ NULL, NULL, NULL, NULL }
-#define	PCMCIA_PRODUCT_XIRCOM_CEM56	0x110b
-#define	PCMCIA_STR_XIRCOM_CEM56	"Xircom CreditCard Ethernet + Modem 56"
+#define	PCMCIA_STR_XIRCOM_CEM28	"Xircom CreditCard Ethernet + Modem 28.8"
+#define	PCMCIA_CIS_XIRCOM_CEM56_2	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CEM56_2	0x110b
+#define	PCMCIA_STR_XIRCOM_CEM56_2	"Xircom CreditCard Ethernet + Modem 56"
 #define	PCMCIA_CIS_XIRCOM_CEM33	{ NULL, NULL, NULL, NULL }
-#define	PCMCIA_PRODUCT_XIRCOM_CEM33	0x110d
-#define	PCMCIA_STR_XIRCOM_CEM33	"Xircom CreditCard Ethernet + Modem 33"
+#define	PCMCIA_PRODUCT_XIRCOM_CEM33	0x110c
+#define	PCMCIA_STR_XIRCOM_CEM33	"Xircom CreditCard Ethernet + Modem 33.6"
+#define	PCMCIA_CIS_XIRCOM_CEM33_2	{ NULL, NULL, NULL, NULL }
+#define	PCMCIA_PRODUCT_XIRCOM_CEM33_2	0x110d
+#define	PCMCIA_STR_XIRCOM_CEM33_2	"Xircom CreditCard Ethernet + Modem 33.6"
 
 /* ZONET */
 #define	PCMCIA_CIS_ZONET_ZEN	{ NULL, NULL, NULL, NULL }

==== //depot/projects/power/sys/dev/pci/pci.c#11 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/pci/pci.c,v 1.238 2004/04/09 15:44:33 imp Exp $
+ * $FreeBSD: src/sys/dev/pci/pci.c,v 1.239 2004/04/09 20:41:18 imp Exp $
  *
  */
 
@@ -1703,9 +1703,11 @@
 	 */
 	if (dinfo->cfg.hdrtype != 0)
 		return;
-	printf("pci%d:%d:%d: setting power state D0\n", dinfo->cfg.bus,
-	    dinfo->cfg.slot, dinfo->cfg.func);
-	pci_set_powerstate(dev, PCI_POWERSTATE_D0);
+	if (pci_get_powerstate(dev) != PCI_POWERSTATE_D0) {
+		printf("pci%d:%d:%d: setting power state D0\n", dinfo->cfg.bus,
+		    dinfo->cfg.slot, dinfo->cfg.func);
+		pci_set_powerstate(dev, PCI_POWERSTATE_D0);
+	}
 	for (i = 0; i < dinfo->cfg.nummaps; i++)
 		pci_write_config(dev, PCIR_MAPS + i * 4, dinfo->cfg.bar[i], 4);
 	pci_write_config(dev, PCIR_BIOS, dinfo->cfg.bios, 4);
@@ -1768,8 +1770,10 @@
 	 */
 	cls = pci_get_class(dev);
 	if (setstate && cls != PCIC_DISPLAY && cls != PCIC_MEMORY) {
-		pci_set_powerstate(dev, PCI_POWERSTATE_D3);
-		printf("pci%d:%d:%d: setting power state D3\n", dinfo->cfg.bus,
-		    dinfo->cfg.slot, dinfo->cfg.func);
+		if (pci_get_powerstate(dev) != PCI_POWERSTATE_D3) {
+			printf("pci%d:%d:%d: setting power state D3\n", dinfo->cfg.bus,
+			    dinfo->cfg.slot, dinfo->cfg.func);
+			pci_set_powerstate(dev, PCI_POWERSTATE_D3);
+		}
 	}
 }

==== //depot/projects/power/sys/dev/xe/if_xe_pccard.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/xe/if_xe_pccard.c,v 1.14 2003/11/04 21:09:37 rsm Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/xe/if_xe_pccard.c,v 1.16 2004/04/09 17:34:54 rsm Exp $");
 
 /* xe pccard interface driver */
 
@@ -53,6 +53,7 @@
 
 #include <dev/pccard/pccardvar.h>
 #include <dev/pccard/pccarddevs.h>
+#include <dev/pccard/pccard_cis.h>
 #include "card_if.h"
 
 /*
@@ -75,63 +76,55 @@
 #endif
 
 
-struct xe_vendor_table {
-	u_int32_t vendor_id;
-	char *vendor_desc;
-} xe_vendor_devs[] = {
-	{ PCMCIA_VENDOR_XIRCOM, "Xircom" },
-	{ PCMCIA_VENDOR_COMPAQ, "Compaq" },
-	{ PCMCIA_VENDOR_COMPAQ2, "Compaq" },   /* Maybe Paralon Techologies, Inc */
-	{ PCMCIA_VENDOR_INTEL, "Intel" },
-	{ 0, "Unknown" }
-};
-
 #define XE_CARD_TYPE_FLAGS_NO 0x0
 #define XE_CARD_TYPE_FLAGS_CE2 0x1
 #define XE_CARD_TYPE_FLAGS_MOHAWK 0x2
 #define XE_CARD_TYPE_FLAGS_DINGO 0x4
-#define XE_PROD_UMASK 0x11000f
-#define XE_PROD_ETHER_UMASK 0x010000
-#define XE_PROD_MODEM_UMASK 0x100000
-#define XE_PROD_SINGLE_ID1 0x010001
-#define XE_PROD_SINGLE_ID2 0x010002
-#define XE_PROD_SINGLE_ID3 0x010003
-#define XE_PROD_MULTI_ID1 0x110001
-#define XE_PROD_MULTI_ID2 0x110002
-#define XE_PROD_MULTI_ID3 0x110003
-#define XE_PROD_MULTI_ID4 0x110004
-#define XE_PROD_MULTI_ID5 0x110005
-#define XE_PROD_MULTI_ID6 0x110006 
-#define XE_PROD_MULTI_ID7 0x110007  
+#define XE_PROD_ETHER_MASK 0x0100
+#define XE_PROD_MODEM_MASK 0x1000
+
+#define XE_BOGUS_MAC_OFFSET 0x90
+
+/* MAC vendor prefix used by most Xircom cards is 00:80:c7 */
+#define XE_MAC_ADDR_0 0x00
+#define XE_MAC_ADDR_1 0x80
+#define XE_MAC_ADDR_2 0xc7
+
+/* Some (all?) REM56 cards have vendor prefix 00:10:a4 */
+#define XE_REM56_MAC_ADDR_0 0x00
+#define XE_REM56_MAC_ADDR_1 0x10
+#define XE_REM56_MAC_ADDR_2 0xa4
+
+
+struct xe_pccard_product {
+	struct pccard_product product;
+	u_int16_t prodext;
+	u_int16_t flags;
+};
 
-struct xe_card_type_table {
-	u_int32_t prod_type;
-	char *card_type_desc;
-	u_int32_t flags;
-} xe_card_type_devs[] = {
-	{ XE_PROD_MULTI_ID1, "CEM", XE_CARD_TYPE_FLAGS_NO },
-	{ XE_PROD_MULTI_ID2, "CEM2", XE_CARD_TYPE_FLAGS_CE2 },
-	{ XE_PROD_MULTI_ID3, "CEM3", XE_CARD_TYPE_FLAGS_CE2 },
-	{ XE_PROD_MULTI_ID4, "CEM33", XE_CARD_TYPE_FLAGS_CE2 },
-	{ XE_PROD_MULTI_ID5, "CEM56M", XE_CARD_TYPE_FLAGS_MOHAWK },
-	{ XE_PROD_MULTI_ID6, "CEM56", XE_CARD_TYPE_FLAGS_MOHAWK |
-					XE_CARD_TYPE_FLAGS_DINGO },
-	{ XE_PROD_MULTI_ID7, "CEM56", XE_CARD_TYPE_FLAGS_MOHAWK |
-					XE_CARD_TYPE_FLAGS_DINGO },
-	{ XE_PROD_SINGLE_ID1, "CE", XE_CARD_TYPE_FLAGS_NO },
-	{ XE_PROD_SINGLE_ID2, "CE2", XE_CARD_TYPE_FLAGS_CE2 },
-	{ XE_PROD_SINGLE_ID3, "CE3", XE_CARD_TYPE_FLAGS_MOHAWK },
-	{ 0, NULL,  -1 }
+static const struct xe_pccard_product xe_pccard_products[] = {
+	{ PCMCIA_CARD_D(ACCTON, EN2226, 0),      0x43, XE_CARD_TYPE_FLAGS_MOHAWK },
+	{ PCMCIA_CARD_D(COMPAQ2, CPQ_10_100, 0), 0x43, XE_CARD_TYPE_FLAGS_MOHAWK },
+	{ PCMCIA_CARD_D(INTEL, EEPRO100, 0),     0x43, XE_CARD_TYPE_FLAGS_MOHAWK },
+	{ PCMCIA_CARD_D(XIRCOM, CE, 0),          0x41, XE_CARD_TYPE_FLAGS_NO },
+	{ PCMCIA_CARD_D(XIRCOM, CE2, 0),         0x41, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CE2, 0),         0x42, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CE2_2, 0),       0x41, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CE2_2, 0),       0x42, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CE3, 0),         0x43, XE_CARD_TYPE_FLAGS_MOHAWK },
+	{ PCMCIA_CARD_D(XIRCOM, CEM, 0),         0x41, XE_CARD_TYPE_FLAGS_NO },
+	{ PCMCIA_CARD_D(XIRCOM, CEM2, 0),        0x42, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CEM28, 0),       0x43, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CEM33, 0),       0x44, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CEM33_2, 0),     0x44, XE_CARD_TYPE_FLAGS_CE2 },
+	{ PCMCIA_CARD_D(XIRCOM, CEM56, 0),       0x45, XE_CARD_TYPE_FLAGS_DINGO },
+	{ PCMCIA_CARD_D(XIRCOM, CEM56_2, 0),     0x46, XE_CARD_TYPE_FLAGS_DINGO },
+	{ PCMCIA_CARD_D(XIRCOM, REM56, 0),       0x46, XE_CARD_TYPE_FLAGS_DINGO },
+	{ PCMCIA_CARD_D(XIRCOM, REM10, 0),       0x47, XE_CARD_TYPE_FLAGS_DINGO },
+	{ PCMCIA_CARD_D(XIRCOM, XEM5600, 0),     0x56, XE_CARD_TYPE_FLAGS_DINGO },
+	{ { NULL }, 0, 0 }	
 };
 
-/*
- * Prototypes
- */
-static int xe_cemfix(device_t dev);
-static struct xe_vendor_table *xe_vendor_lookup(u_int32_t devid,
-					struct xe_vendor_table *tbl);
-static struct xe_card_type_table *xe_card_type_lookup(u_int32_t devid,
-					struct xe_card_type_table *tbl);
 
 /*
  * Fixing for CEM2, CEM3 and CEM56/REM56 cards.  These need some magic to
@@ -191,26 +184,71 @@
 	return (0);
 }
 
-static struct xe_vendor_table *
-xe_vendor_lookup(u_int32_t devid, struct xe_vendor_table *tbl)
+/*
+ * Fixing for CE2-class cards with bogus CIS entry for MAC address.  This
+ * should be in a type 0x22 tuple, but some cards seem to use 0x89.
+ * This function looks for a sensible MAC address tuple starting at the given
+ * offset in attribute memory, ignoring the tuple type field.
+ */
+static int
+xe_macfix(device_t dev, int offset)
 {
-	while(tbl->vendor_id) {
-		if(tbl->vendor_id == devid)
-			return (tbl);
-		tbl++;
-	}       
-	return (tbl); /* return Unknown */
-}
-      
-static struct xe_card_type_table *
-xe_card_type_lookup(u_int32_t devid, struct xe_card_type_table *tbl)
-{
-	while(tbl->prod_type) {
-		if(tbl->prod_type == (devid & XE_PROD_UMASK))
-			return (tbl);
-		tbl++;
+	struct xe_softc *sc = (struct xe_softc *) device_get_softc(dev);
+	bus_space_tag_t bst;
+	bus_space_handle_t bsh;
+	struct resource *r;
+	int rid, i;
+	u_int8_t cisdata[9];
+	u_int8_t required[6] = { 0x08, PCCARD_TPLFE_TYPE_LAN_NID, ETHER_ADDR_LEN,
+				 XE_MAC_ADDR_0, XE_MAC_ADDR_1, XE_MAC_ADDR_2 };
+
+	DEVPRINTF(2, (dev, "macfix\n"));
+
+	rid = 0;
+	r = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0,
+			       ~0, 4 << 10, RF_ACTIVE);
+	if (!r) {
+		device_printf(dev, "macfix: Can't map in attribute memory\n");
+		return (-1);
+	}
+
+	bsh = rman_get_bushandle(r);
+	bst = rman_get_bustag(r);
+
+	CARD_SET_RES_FLAGS(device_get_parent(dev), dev, SYS_RES_MEMORY, rid,
+			   PCCARD_A_MEM_ATTR);
+
+	/*
+	 * Looking for (relative to offset):
+	 *
+	 *  0x00	0x??	Tuple type (ignored)
+	 *  0x02 	0x08	Tuple length (must be 8)
+	 *  0x04	0x04	Address type? (must be 4)
+	 *  0x06	0x06	Address length (must be 6)
+	 *  0x08	0x00	Manufacturer ID, byte 1
+	 *  0x0a	0x80	Manufacturer ID, byte 2
+	 *  0x0c	0xc7	Manufacturer ID, byte 3
+	 *  0x0e	0x??	Card ID, byte 1
+	 *  0x10	0x??	Card ID, byte 2
+	 *  0x12	0x??	Card ID, byte 3
+	 */
+	for (i = 0; i < 9; i++) {
+		cisdata[i] = bus_space_read_1(bst, bsh, offset + (2 * i) + 2);
+		if (i < 6 && required[i] != cisdata[i]) {
+			device_printf(dev, "macfix: Can't find valid MAC address\n");
+			bus_release_resource(dev, SYS_RES_MEMORY, rid, r);
+			return (-1);
+		}
+	}
+	
+	for (i = 0; i < ETHER_ADDR_LEN; i++) {
+		sc->arpcom.ac_enaddr[i] = cisdata[i + 3];
 	}
-	return (NULL);
+	    
+	bus_release_resource(dev, SYS_RES_MEMORY, rid, r);
+
+	/* success! */
+	return (0);
 }
 
 /*
@@ -222,20 +260,18 @@
 xe_pccard_probe(device_t dev)
 {
 	struct xe_softc *scp = (struct xe_softc *) device_get_softc(dev);
-	u_int32_t vendor,prodid,prod;
+	u_int32_t vendor,product;
 	u_int16_t prodext;
 	const char* vendor_str = NULL;
 	const char* product_str = NULL;
 	const char* cis4_str = NULL;
 	const char *cis3_str=NULL;
-	struct xe_vendor_table *vendor_itm;
-	struct xe_card_type_table *card_itm;
-	int i;
+	const struct xe_pccard_product *xpp;
 
 	DEVPRINTF(2, (dev, "pccard_probe\n"));
 
 	pccard_get_vendor(dev, &vendor);
-	pccard_get_product(dev, &prodid);
+	pccard_get_product(dev, &product);
 	pccard_get_prodext(dev, &prodext);
 	pccard_get_vendor_str(dev, &vendor_str);
 	pccard_get_product_str(dev, &product_str);
@@ -243,63 +279,70 @@
 	pccard_get_cis4_str(dev, &cis4_str);
 
 	DEVPRINTF(1, (dev, "vendor = 0x%04x\n", vendor));
-	DEVPRINTF(1, (dev, "product = 0x%04x\n", prodid));
+	DEVPRINTF(1, (dev, "product = 0x%04x\n", product));
 	DEVPRINTF(1, (dev, "prodext = 0x%02x\n", prodext));
 	DEVPRINTF(1, (dev, "vendor_str = %s\n", vendor_str));
 	DEVPRINTF(1, (dev, "product_str = %s\n", product_str));
 	DEVPRINTF(1, (dev, "cis3_str = %s\n", cis3_str));
 	DEVPRINTF(1, (dev, "cis4_str = %s\n", cis4_str));
 
+
 	/*
-	 * PCCARD_CISTPL_MANFID = 0x20
+	 * Possibly already did this search in xe_pccard_match(),
+	 * but we need to do it here anyway to figure out which
+	 * card we have.
 	 */
-	pccard_get_vendor(dev, &vendor);
-	vendor_itm = xe_vendor_lookup(vendor, &xe_vendor_devs[0]);
-	if (vendor_itm == NULL)
+	for (xpp = xe_pccard_products; xpp->product.pp_vendor != 0; xpp++) {
+		if (vendor == xpp->product.pp_vendor &&
+		    product == xpp->product.pp_product &&
+		    prodext == xpp->prodext)
+			break;
+	}
+
+	/* Found a match? */
+	if (xpp->product.pp_vendor == 0)
 		return (ENODEV);
-	scp->vendor = vendor_itm->vendor_desc;
-	pccard_get_product(dev, &prodid);
-	pccard_get_prodext(dev, &prodext);
-	/*
-	 * prod(new) =  rev, media, prod(old)
-	 * prod(new) =  (don't care), (care 0x10 bit), (care 0x0f bit)
-	 */
-	prod = (prodid << 8) | prodext;
-	card_itm = xe_card_type_lookup(prod, &xe_card_type_devs[0]);
-	if (card_itm == NULL)
+
+
+	/* Set card name for logging later */
+	if (xpp->product.pp_name != NULL)
+		device_set_desc(dev, xpp->product.pp_name);
+
+	/* Reject known but unsupported cards */
+	if (xpp->flags & XE_CARD_TYPE_FLAGS_NO) {
+		device_printf(dev, "Sorry, your %s %s card is not supported :(\n",
+				vendor_str, product_str);
 		return (ENODEV);
-	scp->card_type = card_itm->card_type_desc;
-	if (card_itm->prod_type & XE_PROD_MODEM_UMASK)
+	}
+
+	/* Set various card ID fields in softc */
+	scp->vendor = vendor_str;
+	scp->card_type = product_str;
+	if (xpp->flags & XE_CARD_TYPE_FLAGS_CE2)
+		scp->ce2 = 1;
+	if (xpp->flags & XE_CARD_TYPE_FLAGS_MOHAWK)
+		scp->mohawk = 1;
+	if (xpp->flags & XE_CARD_TYPE_FLAGS_DINGO) {
+		scp->dingo = 1;
+		scp->mohawk = 1;
+	}
+	if (xpp->product.pp_product & XE_PROD_MODEM_MASK)
 		scp->modem = 1;
-	for(i=1; i!=XE_CARD_TYPE_FLAGS_DINGO; i=i<<1) {
-		switch(i & card_itm->flags) {
-		case XE_CARD_TYPE_FLAGS_CE2:
-			scp->ce2 = 1; break;
-		case XE_CARD_TYPE_FLAGS_MOHAWK:
-			scp->mohawk = 1; break;
-		case XE_CARD_TYPE_FLAGS_DINGO:
-			scp->dingo = 1; break;
-		}
-	}
-	/*
-	 * PCCARD_CISTPL_VERS_1 = 0x15
-	 */
-	pccard_get_cis3_str(dev, &cis3_str);
-	if (strcmp(scp->card_type, "CE") == 0)
-		if (cis3_str != NULL && strcmp(cis3_str, "PS-CE2-10") == 0)
-			scp->card_type = "CE2"; /* Look for "CE2" string */
 
-	/*
-	 * PCCARD_CISTPL_FUNCE = 0x22
-	 */
+	/* Get MAC address */
 	pccard_get_ether(dev, scp->arpcom.ac_enaddr);
 
-	/* Reject unsupported cards */
-	if(strcmp(scp->card_type, "CE") == 0
-	|| strcmp(scp->card_type, "CEM") == 0) {
-		device_printf(dev, "Sorry, your %s card is not supported :(\n",
-				scp->card_type);
-		return (ENODEV);
+	/* Deal with bogus MAC address */
+	if (xpp->product.pp_vendor == PCMCIA_VENDOR_XIRCOM
+	    && scp->ce2
+	    && (scp->arpcom.ac_enaddr[0] != XE_MAC_ADDR_0
+		|| scp->arpcom.ac_enaddr[1] != XE_MAC_ADDR_1
+		|| scp->arpcom.ac_enaddr[2] != XE_MAC_ADDR_2)
+	    && xe_macfix(dev, XE_BOGUS_MAC_OFFSET) < 0) {
+		device_printf(dev,
+			      "Unable to find MAC address for your %s card\n",
+			      scp->card_type);
+		return (ENODEV);	    
 	}
 
 	/* Success */
@@ -322,8 +365,8 @@
          
 	/* Hack RealPorts into submission */
 	if (scp->modem && xe_cemfix(dev) < 0) {
-		device_printf(dev, "Unable to fix your %s combo card\n",
-					  scp->card_type);
+		device_printf(dev, "Unable to fix your %s %s combo card\n",
+					  scp->vendor, scp->card_type);
 		xe_deactivate(dev);
 		return (ENODEV);
 	}
@@ -353,20 +396,22 @@
 	return (0);
 }
 
-static const struct pccard_product xe_pccard_products[] = {
-	PCMCIA_CARD(ACCTON, EN2226, 0),
-	PCMCIA_CARD(COMPAQ2, CPQ_10_100, 0),
-	PCMCIA_CARD(INTEL, EEPRO100, 0),
-	PCMCIA_CARD(XIRCOM, CE, 0),
-	PCMCIA_CARD(XIRCOM, CE2, 0),
-	PCMCIA_CARD(XIRCOM, CE3, 0),
-	PCMCIA_CARD(XIRCOM, CEM, 0),
-	PCMCIA_CARD(XIRCOM, CEM28, 0),
-	PCMCIA_CARD(XIRCOM, CEM33, 0),
-	PCMCIA_CARD(XIRCOM, CEM56, 0),
-	PCMCIA_CARD(XIRCOM, REM56, 0),
-        { NULL }
-};
+static int
+xe_pccard_product_match(device_t dev, const struct pccard_product* ent, int vpfmatch)
+{
+	const struct xe_pccard_product* xpp;
+	u_int16_t prodext;
+
+	DEVPRINTF(2, (dev, "pccard_product_match\n"));
+
+	xpp = (const struct xe_pccard_product*)ent;
+	pccard_get_prodext(dev, &prodext);
+
+	if (xpp->prodext != prodext)
+		vpfmatch--;
+
+	return (vpfmatch);
+}
 
 static int
 xe_pccard_match(device_t dev)
@@ -375,12 +420,12 @@
 
 	DEVPRINTF(2, (dev, "pccard_match\n"));
 
-	if ((pp = pccard_product_lookup(dev, xe_pccard_products,
-		sizeof(xe_pccard_products[0]), NULL)) != NULL) {
-	    if (pp->pp_name != NULL)
-					device_set_desc(dev, pp->pp_name);
-			return (0);
-	}
+	pp = (const struct pccard_product*)xe_pccard_products;
+
+	if ((pp = pccard_product_lookup(dev, pp,
+	     sizeof(xe_pccard_products[0]), xe_pccard_product_match)) != NULL)
+		return (0);
+
 	return (EIO);
 }
 

==== //depot/projects/power/sys/dev/xe/if_xevar.h#3 (text+ko) ====

@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  *	$Id: if_xe.c,v 1.20 1999/06/13 19:17:40 scott Exp $
- * $FreeBSD: src/sys/dev/xe/if_xevar.h,v 1.4 2003/10/14 22:51:35 rsm Exp $
+ * $FreeBSD: src/sys/dev/xe/if_xevar.h,v 1.5 2004/04/09 17:27:36 rsm Exp $
  */
 #ifndef DEV_XE_IF_XEDEV_H
 #define DEV_XE_IF_XEDEV_H
@@ -39,8 +39,8 @@
   struct callout_handle chand;
   struct ifnet *ifp;
   struct ifmedia *ifm;
-  char *card_type;	/* Card model name */
-  char *vendor;		/* Card manufacturer */
+  const char *card_type;/* Card model name */
+  const char *vendor;	/* Card manufacturer */
   device_t dev;		/* Device */
   bus_space_tag_t bst;	/* Bus space tag for card */
   bus_space_handle_t bsh; /* Bus space handle for card */

==== //depot/projects/power/sys/i386/i386/identcpu.c#6 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.136 2004/04/09 15:01:44 markm Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.137 2004/04/09 17:00:03 markm Exp $");
 
 #include "opt_cpu.h"
 
@@ -546,10 +546,10 @@
 			strcpy(cpu_model, "VIA C3 Ezra-T");
 			break;
 		case 0x690:
+			strcpy(cpu_model, "VIA C3 Nehemiah");
 			do_cpuid(0xc0000000, regs);
 			if (regs[0] == 0xc0000001) {
 				do_cpuid(0xc0000001, regs);
-				strcpy(cpu_model, "VIA C3 Nehemiah");
 				if ((cpu_id & 0xf) >= 3)
 					if ((regs[3] & 0x0c) == 0x0c)
 						strcat(cpu_model, "+RNG");


More information about the p4-projects mailing list