svn commit: r200773 - in stable/7/sys: conf i386/cpufreq modules/cpufreq

Andriy Gapon avg at FreeBSD.org
Mon Dec 21 14:03:41 UTC 2009


Author: avg
Date: Mon Dec 21 14:03:40 2009
New Revision: 200773
URL: http://svn.freebsd.org/changeset/base/200773

Log:
  MFC r190501,190521,192029: Add support for Phenom (Family 10h) to cpufreq.
  
  This also has changes from r197070 (earlier partial MFC).

Added:
  stable/7/sys/i386/cpufreq/hwpstate.c
     - copied, changed from r190501, head/sys/i386/cpufreq/hwpstate.c
Modified:
  stable/7/sys/conf/files.amd64
  stable/7/sys/conf/files.i386
  stable/7/sys/modules/cpufreq/Makefile
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/conf/files.amd64
==============================================================================
--- stable/7/sys/conf/files.amd64	Mon Dec 21 13:53:33 2009	(r200772)
+++ stable/7/sys/conf/files.amd64	Mon Dec 21 14:03:40 2009	(r200773)
@@ -272,6 +272,7 @@ i386/bios/smbios.c		optional	smbios
 i386/bios/vpd.c			optional	vpd
 i386/cpufreq/powernow.c		optional	cpufreq
 i386/cpufreq/est.c		optional	cpufreq
+i386/cpufreq/hwpstate.c		optional	cpufreq
 i386/cpufreq/p4tcc.c		optional	cpufreq
 #
 libkern/memset.c		standard

Modified: stable/7/sys/conf/files.i386
==============================================================================
--- stable/7/sys/conf/files.i386	Mon Dec 21 13:53:33 2009	(r200772)
+++ stable/7/sys/conf/files.i386	Mon Dec 21 14:03:40 2009	(r200773)
@@ -251,6 +251,7 @@ i386/bios/smapi_bios.S		optional smapi
 i386/bios/smbios.c		optional smbios
 i386/bios/vpd.c			optional vpd
 i386/cpufreq/est.c		optional cpufreq
+i386/cpufreq/hwpstate.c		optional cpufreq
 i386/cpufreq/p4tcc.c		optional cpufreq
 i386/cpufreq/powernow.c		optional cpufreq
 i386/cpufreq/smist.c		optional cpufreq

Copied and modified: stable/7/sys/i386/cpufreq/hwpstate.c (from r190501, head/sys/i386/cpufreq/hwpstate.c)
==============================================================================
--- head/sys/i386/cpufreq/hwpstate.c	Sat Mar 28 08:54:47 2009	(r190501, copy source)
+++ stable/7/sys/i386/cpufreq/hwpstate.c	Mon Dec 21 14:03:40 2009	(r200773)
@@ -8,7 +8,7 @@
  * Copyright (c) 2008-2009 Gen Otsuji
  *
  * This code is depending on kern_cpu.c, est.c, powernow.c, p4tcc.c, smist.c
- * in various parts. The authors of these files are
+ * in various parts. The authors of these files are Nate Lawson,
  * Colin Percival, Bruno Durcot, and FUKUDA Nobuhiko.
  * This code contains patches by Michael Reifenberger and Norikatsu Shigemura.
  * Thank you.
@@ -82,12 +82,6 @@ __FBSDID("$FreeBSD$");
 #define	AMD_10H_11H_CUR_DID(msr)		(((msr) >> 6) & 0x07)
 #define	AMD_10H_11H_CUR_FID(msr)		((msr) & 0x3F)
 
-#if defined(__amd64__)
-#define CPU_FAMILY(id)	AMD64_CPU_FAMILY(id)
-#elif defined(__i386__)
-#define CPU_FAMILY(id)	I386_CPU_FAMILY(id)
-#endif
-
 #define	HWPSTATE_DEBUG(dev, msg...)			\
 	do{						\
 		if(hwpstate_verbose)			\
@@ -161,7 +155,6 @@ DRIVER_MODULE(hwpstate, cpu, hwpstate_dr
 static int
 hwpstate_goto_pstate(device_t dev, int pstate)
 {
-	struct hwpstate_softc *sc;
 	struct pcpu *pc;
 	int i;
 	uint64_t msr;
@@ -170,7 +163,6 @@ hwpstate_goto_pstate(device_t dev, int p
 	int id = pstate;
 	int error;
 	
-	sc = device_get_softc(dev);
 	/* get the current pstate limit */
 	msr = rdmsr(MSR_AMD_10H_11H_LIMIT);
 	limit = AMD_10H_11H_GET_PSTATE_LIMIT(msr);
@@ -299,12 +291,11 @@ hwpstate_type(device_t dev, int *type)
 static void
 hwpstate_identify(driver_t *driver, device_t parent)
 {
-	device_t child;
 
 	if (device_find_child(parent, "hwpstate", -1) != NULL)
 		return;
 
-	if (cpu_vendor_id != CPU_VENDOR_AMD || CPU_FAMILY(cpu_id) < 0x10)
+	if (cpu_vendor_id != CPU_VENDOR_AMD || CPUID_TO_FAMILY(cpu_id) < 0x10)
 		return;
 
 	/*
@@ -318,7 +309,7 @@ hwpstate_identify(driver_t *driver, devi
 	if (resource_disabled("hwpstate", 0))
 		return;
 
-	if ((child = BUS_ADD_CHILD(parent, 10, "hwpstate", -1)) == NULL)
+	if (BUS_ADD_CHILD(parent, 10, "hwpstate", -1) == NULL)
 		device_printf(parent, "hwpstate: add child failed\n");
 }
 
@@ -407,7 +398,7 @@ hwpstate_get_info_from_msr(device_t dev)
 	uint64_t msr;
 	int family, i, fid, did;
 
-	family = CPU_FAMILY(cpu_id);
+	family = CPUID_TO_FAMILY(cpu_id);
 	sc = device_get_softc(dev);
 	/* Get pstate count */
 	msr = rdmsr(MSR_AMD_10H_11H_LIMIT);

Modified: stable/7/sys/modules/cpufreq/Makefile
==============================================================================
--- stable/7/sys/modules/cpufreq/Makefile	Mon Dec 21 13:53:33 2009	(r200772)
+++ stable/7/sys/modules/cpufreq/Makefile	Mon Dec 21 14:03:40 2009	(r200773)
@@ -12,7 +12,7 @@ SRCS+=	bus_if.h cpufreq_if.h device_if.h
 CFLAGS+= -I${.CURDIR}/../../contrib/dev/acpica
 
 SRCS+=	acpi_if.h opt_acpi.h
-SRCS+=	est.c p4tcc.c powernow.c
+SRCS+=	est.c hwpstate.c p4tcc.c powernow.c
 .endif
 
 .if ${MACHINE} == "i386"


More information about the svn-src-all mailing list