patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / arch / i386 / kernel / cpu / cpufreq / longhaul.h
index a14e823..2a495c1 100644 (file)
@@ -234,14 +234,15 @@ static int __initdata ezrat_eblcr[32] = {
 
 /*
  * VIA C3 Nehemiah */
-static int __initdata nehemiah_clock_ratio[32] = {
+static int __initdata nehemiah_a_clock_ratio[32] = {
        100, /* 0000 -> 10.0x */
        160, /* 0001 -> 16.0x */
-       -1,  /* 0010 -> RESERVED */
+       -1,  /* 0010 ->  RESERVED */
        90,  /* 0011 ->  9.0x */
        95,  /* 0100 ->  9.5x */
-       -1,  /* 0101 -> RESERVED */
-       -1,  /* 0110 -> RESERVED */
+       -1,  /* 0101 ->  RESERVED */
+       -1,  /* 0110 ->  RESERVED */
        55,  /* 0111 ->  5.5x */
        60,  /* 1000 ->  6.0x */
        70,  /* 1001 ->  7.0x */
@@ -250,8 +251,42 @@ static int __initdata nehemiah_clock_ratio[32] = {
        65,  /* 1100 ->  6.5x */
        75,  /* 1101 ->  7.5x */
        85,  /* 1110 ->  8.5x */
-       120, /* 1111 ->  12.0x */
+       120, /* 1111 -> 12.0x */
+       100, /* 0000 -> 10.0x */
+       -1,  /* 0001 -> RESERVED */
+       120, /* 0010 -> 12.0x */
+       90,  /* 0011 ->  9.0x */
+       105, /* 0100 -> 10.5x */
+       115, /* 0101 -> 11.5x */
+       125, /* 0110 -> 12.5x */
+       135, /* 0111 -> 13.5x */
+       140, /* 1000 -> 14.0x */
+       150, /* 1001 -> 15.0x */
+       160, /* 1010 -> 16.0x */
+       130, /* 1011 -> 13.0x */
+       145, /* 1100 -> 14.5x */
+       155, /* 1101 -> 15.5x */
+       -1,  /* 1110 -> RESERVED (13.0x) */
+       120, /* 1111 -> 12.0x */
+};
 
+static int __initdata  nehemiah_b_clock_ratio[32] = {
+       100, /* 0000 -> 10.0x */
+       160, /* 0001 -> 16.0x */
+       -1,  /* 0010 ->  RESERVED */
+       90,  /* 0011 ->  9.0x */
+       95,  /* 0100 ->  9.5x */
+       -1,  /* 0101 ->  RESERVED */
+       -1,  /* 0110 ->  RESERVED */
+       55,  /* 0111 ->  5.5x */
+       60,  /* 1000 ->  6.0x */
+       70,  /* 1001 ->  7.0x */
+       80,  /* 1010 ->  8.0x */
+       50,  /* 1011 ->  5.0x */
+       65,  /* 1100 ->  6.5x */
+       75,  /* 1101 ->  7.5x */
+       85,  /* 1110 ->  8.5x */
+       120, /* 1111 -> 12.0x */
        100, /* 0000 -> 10.0x */
        110, /* 0001 -> 11.0x */
        120, /* 0010 -> 12.0x */
@@ -266,18 +301,88 @@ static int __initdata nehemiah_clock_ratio[32] = {
        130, /* 1011 -> 13.0x */
        145, /* 1100 -> 14.5x */
        155, /* 1101 -> 15.5x */
-       -1,  /* 1110 -> RESERVED */
+       -1,  /* 1110 -> RESERVED (13.0x) */
        120, /* 1111 -> 12.0x */
 };
 
-static int __initdata nehemiah_eblcr[32] = {
+static int __initdata  nehemiah_c_clock_ratio[32] = {
+       100, /* 0000 -> 10.0x */
+       160, /* 0001 -> 16.0x */
+       40,  /* 0010 ->  RESERVED */
+       90,  /* 0011 ->  9.0x */
+       95,  /* 0100 ->  9.5x */
+       -1,  /* 0101 ->  RESERVED */
+       45,  /* 0110 ->  RESERVED */
+       55,  /* 0111 ->  5.5x */
+       60,  /* 1000 ->  6.0x */
+       70,  /* 1001 ->  7.0x */
+       80,  /* 1010 ->  8.0x */
+       50,  /* 1011 ->  5.0x */
+       65,  /* 1100 ->  6.5x */
+       75,  /* 1101 ->  7.5x */
+       85,  /* 1110 ->  8.5x */
+       120, /* 1111 -> 12.0x */
+       100, /* 0000 -> 10.0x */
+       110, /* 0001 -> 11.0x */
+       120, /* 0010 -> 12.0x */
+       90,  /* 0011 ->  9.0x */
+       105, /* 0100 -> 10.5x */
+       115, /* 0101 -> 11.5x */
+       125, /* 0110 -> 12.5x */
+       135, /* 0111 -> 13.5x */
+       140, /* 1000 -> 14.0x */
+       150, /* 1001 -> 15.0x */
+       160, /* 1010 -> 16.0x */
+       130, /* 1011 -> 13.0x */
+       145, /* 1100 -> 14.5x */
+       155, /* 1101 -> 15.5x */
+       -1,  /* 1110 -> RESERVED (13.0x) */
+       120, /* 1111 -> 12.0x */
+};
+
+static int __initdata nehemiah_a_eblcr[32] = {
        50,  /* 0000 ->  5.0x */
        160, /* 0001 -> 16.0x */
-       -1,  /* 0010 -> RESERVED */
+       -1,  /* 0010 ->  RESERVED */
        100, /* 0011 -> 10.0x */
        55,  /* 0100 ->  5.5x */
-       -1,  /* 0101 -> RESERVED */
-       -1,  /* 0110 -> RESERVED */
+       -1,  /* 0101 ->  RESERVED */
+       -1,  /* 0110 ->  RESERVED */
+       95,  /* 0111 ->  9.5x */
+       90,  /* 1000 ->  9.0x */
+       70,  /* 1001 ->  7.0x */
+       80,  /* 1010 ->  8.0x */
+       60,  /* 1011 ->  6.0x */
+       120, /* 1100 -> 12.0x */
+       75,  /* 1101 ->  7.5x */
+       85,  /* 1110 ->  8.5x */
+       65,  /* 1111 ->  6.5x */
+       90,  /* 0000 ->  9.0x */
+       -1,  /* 0001 -> RESERVED */
+       120, /* 0010 -> 12.0x */
+       100, /* 0011 -> 10.0x */
+       135, /* 0100 -> 13.5x */
+       115, /* 0101 -> 11.5x */
+       125, /* 0110 -> 12.5x */
+       105, /* 0111 -> 10.5x */
+       130, /* 1000 -> 13.0x */
+       150, /* 1001 -> 15.0x */
+       160, /* 1010 -> 16.0x */
+       140, /* 1011 -> 14.0x */
+       120, /* 1100 -> 12.0x */
+       155, /* 1101 -> 15.5x */
+       -1,  /* 1110 -> RESERVED (13.0x) */
+       145 /* 1111 -> 14.5x */
+   /* end of table  */
+};
+static int __initdata nehemiah_b_eblcr[32] = {
+       50,  /* 0000 ->  5.0x */
+       160, /* 0001 -> 16.0x */
+       -1,  /* 0010 ->  RESERVED */
+       100, /* 0011 -> 10.0x */
+       55,  /* 0100 ->  5.5x */
+       -1,  /* 0101 ->  RESERVED */
+       -1,  /* 0110 ->  RESERVED */
        95,  /* 0111 ->  9.5x */
        90,  /* 1000 ->  9.0x */
        70,  /* 1001 ->  7.0x */
@@ -287,7 +392,6 @@ static int __initdata nehemiah_eblcr[32] = {
        75,  /* 1101 ->  7.5x */
        85,  /* 1110 ->  8.5x */
        65,  /* 1111 ->  6.5x */
-
        90,  /* 0000 ->  9.0x */
        110, /* 0001 -> 11.0x */
        120, /* 0010 -> 12.0x */
@@ -302,9 +406,46 @@ static int __initdata nehemiah_eblcr[32] = {
        140, /* 1011 -> 14.0x */
        120, /* 1100 -> 12.0x */
        155, /* 1101 -> 15.5x */
-       -1,  /* 1110 -> RESERVED */
-       -1,  /* 1111 -> RESERVED */
+       -1,  /* 1110 -> RESERVED (13.0x) */
+       145 /* 1111 -> 14.5x */
+          /* end of table  */
 };
+static int __initdata nehemiah_c_eblcr[32] = {
+       50,  /* 0000 ->  5.0x */
+       160, /* 0001 -> 16.0x */
+       40,  /* 0010 ->  RESERVED */
+       100, /* 0011 -> 10.0x */
+       55,  /* 0100 ->  5.5x */
+       -1,  /* 0101 ->  RESERVED */
+       45,  /* 0110 ->  RESERVED */
+       95,  /* 0111 ->  9.5x */
+       90,  /* 1000 ->  9.0x */
+       70,  /* 1001 ->  7.0x */
+       80,  /* 1010 ->  8.0x */
+       60,  /* 1011 ->  6.0x */
+       120, /* 1100 -> 12.0x */
+       75,  /* 1101 ->  7.5x */
+       85,  /* 1110 ->  8.5x */
+       65,  /* 1111 ->  6.5x */
+       90,  /* 0000 ->  9.0x */
+       110, /* 0001 -> 11.0x */
+       120, /* 0010 -> 12.0x */
+       100, /* 0011 -> 10.0x */
+       135, /* 0100 -> 13.5x */
+       115, /* 0101 -> 11.5x */
+       125, /* 0110 -> 12.5x */
+       105, /* 0111 -> 10.5x */
+       130, /* 1000 -> 13.0x */
+       150, /* 1001 -> 15.0x */
+       160, /* 1010 -> 16.0x */
+       140, /* 1011 -> 14.0x */
+       120, /* 1100 -> 12.0x */
+       155, /* 1101 -> 15.5x */
+       -1,  /* 1110 -> RESERVED (13.0x) */
+       145 /* 1111 -> 14.5x */
+         /* end of table  */
+};
+
 /* 
  * Voltage scales. Div/Mod by 1000 to get actual voltage.
  * Which scale to use depends on the VRM type in use.