this is a total hack of a patch to let me force specific vids for a processor which the bios doesn't have the right table for. -dean Index: linux/arch/i386/kernel/cpu/cpufreq/powernow-k8.c =================================================================== --- linux.orig/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2006-09-02 15:50:34.000000000 -0700 +++ linux/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2006-09-02 16:05:24.000000000 -0700 @@ -49,6 +49,15 @@ #define VERSION "version 1.60.2" #include "powernow-k8.h" +#define MAX_OVERRIDE (16) +static int override_fid[MAX_OVERRIDE] = { [0 ... MAX_OVERRIDE-1] = -1 };; +static int override_vid[MAX_OVERRIDE] = { [0 ... MAX_OVERRIDE-1] = -1 };; +module_param_array(override_fid, int, NULL, 0); +module_param_array(override_vid, int, NULL, 0); +MODULE_PARM_DESC(override_fid, "override FID table"); +MODULE_PARM_DESC(override_vid, "override VID table"); + + /* serialize freq changes */ static DEFINE_MUTEX(fidvid_mutex); @@ -758,6 +767,13 @@ vid = (data->acpi_data.states[i].control >> VID_SHIFT) & VID_MASK; } + if (i < MAX_OVERRIDE && override_fid[i] != -1) { + fid = override_fid[i]; + } + if (i < MAX_OVERRIDE && override_vid[i] != -1) { + vid = override_vid[i]; + } + dprintk(" %d : fid 0x%x, vid 0x%x\n", i, fid, vid); powernow_table[i].index = fid; /* lower 8 bits */