diff --git a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
index 326a4c8..34a227e 100644
--- a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
+++ b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c
@@ -23,6 +23,7 @@
 #define EPS_BRAND_C7	1
 #define EPS_BRAND_EDEN	2
 #define EPS_BRAND_C3	3
+#define EPS_BRAND_C7D	4
 
 struct eps_cpu_data {
 	u32 fsb;
@@ -54,6 +55,7 @@
 {
 	struct cpufreq_freqs freqs;
 	u32 lo, hi;
+	u8 current_multiplier, current_voltage;
 	int err = 0;
 	int i;
 
@@ -93,6 +95,15 @@
 	rdmsr(MSR_IA32_PERF_STATUS, lo, hi);
 	freqs.new = centaur->fsb * ((lo >> 8) & 0xff);
 
+	/* Print voltage and multiplier */
+	rdmsr(MSR_IA32_PERF_STATUS, lo, hi);
+	current_voltage = lo & 0xff;
+	printk(KERN_INFO "eps: Current voltage = %dmV\n",
+		current_voltage * 16 + 700);
+	current_multiplier = (lo >> 8) & 0xff;
+	printk(KERN_INFO "eps: Current multiplier = %d\n",
+		current_multiplier);
+
 	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
 	return err;
 }
@@ -141,9 +152,10 @@
 	u8 current_multiplier, current_voltage;
 	u8 max_multiplier, max_voltage;
 	u8 min_multiplier, min_voltage;
-	u8 brand;
+	u8 brand = 0;
 	u32 fsb;
 	struct eps_cpu_data *centaur;
+	struct cpuinfo_x86 *c = &cpu_data(0);
 	struct cpufreq_frequency_table *f_table;
 	int k, step, voltage;
 	int ret;
@@ -154,8 +166,20 @@
 
 	/* Check brand */
 	printk("eps: Detected VIA ");
-	rdmsr(0x1153, lo, hi);
-	brand = (((lo >> 2) ^ lo) >> 18) & 3;
+
+	switch (c->x86_model) {
+	case 10:
+		rdmsr(0x1153, lo, hi);
+		brand = (((lo >> 2) ^ lo) >> 18) & 3;
+		printk(KERN_CONT "Model A ");
+		break;
+	case 13:
+		rdmsr(0x1154, lo, hi);
+		brand = (((lo >> 4) ^ (lo >> 2))) & 0x000000ff;
+		printk(KERN_CONT "Model D ");
+		break;
+	}
+
 	switch(brand) {
 	case EPS_BRAND_C7M:
 		printk("C7-M\n");
@@ -166,6 +190,9 @@
 	case EPS_BRAND_EDEN:
 		printk("Eden\n");
 		break;
+	case EPS_BRAND_C7D:
+		printk(KERN_CONT "C7-D\n");
+		break;
 	case EPS_BRAND_C3:
 		printk("C3\n");
 		return -ENODEV;
@@ -208,7 +235,7 @@
 	if (current_multiplier > max_multiplier
 	    || max_multiplier <= min_multiplier)
 		return -EINVAL;
-	if (current_voltage > 0x1c || max_voltage > 0x1c)
+	if (current_voltage > 0x1f || max_voltage > 0x1f)
 		return -EINVAL;
 	if (max_voltage < min_voltage)
 		return -EINVAL;
@@ -310,7 +337,7 @@
 	/* This driver will work only on Centaur C7 processors with
 	 * Enhanced SpeedStep/PowerSaver registers */
 	if (c->x86_vendor != X86_VENDOR_CENTAUR
-	    || c->x86 != 6 || c->x86_model != 10)
+	    || c->x86 != 6 || c->x86_model < 10)
 		return -ENODEV;
 	if (!cpu_has(c, X86_FEATURE_EST))
 		return -ENODEV;
