UPDATED NON-ROOT METHOD: Identify the binning of the SoC on your HTC One..

What is your ACPU PVS number #?


  • Total voters
    527
  • Poll closed .
Search This thread

Turbotab

Senior Member
May 2, 2011
902
819
UPDATE - Shox22 +1 has confirmed an easy method that doesn't need ROOT.

METHOD
- Reboot the phone twice

- With a File Explorer (FX File Explorer works well)

- Go to system /proc/last_kmsg

- Search the last_kmsg for a string 'acpu' You're looking for the following

[ 0.359957] c0 1 acpuclk-8064 acpuclk-8064: SPEED BIN: 1
[ 0.359957] c0 1 acpuclk-8064 acpuclk-8064: ACPU PVS: 4



There seems to be a bit of confusion, about the significance of the PVS value. They relate to Process Corners, and in part to threshold voltage, there is a lot more to it than that, but I'll keep it simple.

So far we've seen PVS values of between 0 to 6.

0 seems to indicate a SLOW corner, this means that its leakage current is lower than a 6, but its timings are slower. In theory, this chip should be good for power consumption, but offer less overclocking potential.

So, 6 means a FAST corner, this means that its leakage current is higher than a 0, but its timings are faster. Again, theoretically this chip offers good overclocking potential, at the expense of possibly higher power consumption.

Firstly, don't worry about it, all these chips have to pass Qualcomm's quality assurance, and lastly a higher PVS number is not necessarily the best, it depends on your priorities.

Alternative for ROOTED devices

You need to use a Terminal app, I use the following "Terminal Emulator"
https://play.google.com/store/apps/...idterm&feature=nav_result#?t=W251bGwsMSwyLDNd

Also Busybox must be installed for the 'grep' command
https://play.google.com/store/apps/...t=W251bGwsMSwxLDEsInN0ZXJpY3Nvbi5idXN5Ym94Il0.

1 - Open Terminal Emulator

2 - Type su & enter on keyboard

3 - Reboot phone

3 - Open Terminal Emulator and enter su (this gives the shell root access)

4 - Type the following

dmesg | grep acpuclk

press enter * hopefully profit:)

IF THAT DOESN'T WORK, a failsafe method is

1 - Open Terminal Emulator

2 - Type su & enter on keyboard

3 - Reboot phone

3 - Open Terminal Emulator and enter su (this gives the shell root access)

4 - Type the following

dmesg > /sdcard/dmesg.txt

With a file explorer check the sdcard for a file called dmesg.txt. Open it and search for 'acpuclk'. You're looking for 2 values listed below "SPEED BIN" & "ACPU PVS"


On 8064 (S4 Pro) devices there were 4 classes of SoC, depending on the result the kernel would load a different voltage table.
Slow / Nominal / Fast / Faster

On the HTC One / Snapdragon 600, the PVS is listing numerically, not by name. All S4 Pro that I've seen listed are marked as SPEED BIN 0, whereas all Snapdragon 600s are listed (so far) as SPEED BIN 1.

Thanks to recent HTC One Kernel Source release, I can can confirm that a Snapdragon 600 can have 1 of 7 possible PVS values: A higher PVS value is better.

0 / 1 / 2 / 3 / 4 / 5 / 6

So far, we have only see PVS values of # 2 / 3 / 4 / 5 in shipping devices

PVS 2

static struct acpu_level tbl_PVS2_1700MHz[] __initdata = {
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000 },
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
{ 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 925000 },
{ 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
{ 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 937500 },
{ 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 950000 },
{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 975000 },
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1000000 },
{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1012500 },
{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1037500 },
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1075000 },
{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1100000 },
{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1137500 },
{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1162500 },
{ 0, { 0 } }
};

vs

PVS 5

static struct acpu_level tbl_PVS5_1700MHz[] __initdata = {
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
{ 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
{ 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
{ 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
{ 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 937500 },
{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 950000 },
{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 962500 },
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 987500 },
{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1012500 },
{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1050000 },
{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1075000 },
{ 0, { 0 } }
};
Anyway, if this works on your HTC One, please share your results.
 
Last edited:

djbenny1

Senior Member
Apr 9, 2011
1,299
311
This info comes from other Qualcomm device forums, but it should still apply to the Snapdragon 600 in the HTC One. Your HTC One must be ROOTED.

Each SoC Qualcomm makes is tested (binned), the closer it comes to the ideal the better, these superior chips are described as higher binned. A higher binned chip will requires less voltage, to achieve a certain frequency than a lower performing part.

This means that the 'superior chips can be overclocked further or undervolted more aggressively, so this info is important for overclockers / modders.

You need to use a Terminal app, I use the following "Terminal Emulator"
https://play.google.com/store/apps/...idterm&feature=nav_result#?t=W251bGwsMSwyLDNd

Also Busybox for the 'grep' command
https://play.google.com/store/apps/...t=W251bGwsMSwxLDEsInN0ZXJpY3Nvbi5idXN5Ym94Il0.

1 - Open Terminal Emulator

2 - Type su & enter on keyboard

3 - Reboot phone

3 - Open Terminal Emulator and enter su (this gives the shell root access)

4 - Type the following
dmesg | grep PVS

press enter * hopefully profit:)

On 8064 devices there were 4 classes of SoC, depending on the result the kernel would load a different voltage table.

Slow
Nominal
Fast
Faster

Anyway, if this works on your HTC One, please share your results.
:eek: not all Ones were created equal

but what is the outcome we are looking for from terminal?
 
  • Like
Reactions: evolutioncsr

Turbotab

Senior Member
May 2, 2011
902
819
:eek: not all Ones were created equal

but what is the outcome we are looking for from terminal?

On 8064 devices (S4 Pro) you would see one of the following Slow / Nominal / Fast / Faster. I'm assuming this works on 8064T (Snapdragon 600) as well, I don't have a HTC One, so I can't be sure.

Example
<6>[ 0.426339] c0 1 [ACPU] get_pvs: ACPU PVS: Faster
 
  • Like
Reactions: djbenny1

djbenny1

Senior Member
Apr 9, 2011
1,299
311
On 8064 devices (S4 Pro) you would see one of the following Slow / Nominal / Fast / Faster. I'm assuming this works on 8064T (Snapdragon 600) as well, I don't have a HTC One, so I can't be sure.

Example
<6>[ 0.426339] c0 1 [ACPU] get_pvs: ACPU PVS: Faster
ah ok - i was going to root just now but then backed out as i cant be bothered replacing all my files again. looking forward to seeing what others turn up though
 

shox22

Senior Member
May 12, 2010
2,246
1,733
in the doc you posted i can see that u wrote: "dmesg \ grep pvs" in the console. Shouldnt that be : "dmesg | grep pvs"? Is their any difference if you use the "straight line" instead of the backslash?
 

djbenny1

Senior Member
Apr 9, 2011
1,299
311
Just a couple of checks, you've got busybox installed and ran the command after a reboot?

There was no text similar to my example? e.g.
<6>[ 0.426339] c0 1 [ACPU] get_pvs: ACPU PVS: Faster
yea i have busybox installed.

no it didnt say that - i uploaded the file for you to look at

i also tried using ¦ just now instead of \ but it didnt work
 

Turbotab

Senior Member
May 2, 2011
902
819
yea i have busybox installed.

no it didnt say that - i uploaded the file for you to look at

i also tried using ¦ just now instead of \ but it didnt work

OK cheers for trying, it may well be that Qualcomm have made more changes to the 8064T than we imagine, once people start looking into the kernel, we'll see if they still use multiple voltage tables.
 

Turbotab

Senior Member
May 2, 2011
902
819
friend of mine:

Acpu pvs: 5
Speed bin 1

with "my" method

Excellent lets keep the data coming. Shox you are non-rooted, correct? If so. would you mind sharing your method, using ADB I imagine?

OK, I have looked at the Cyanogen Kernel commits for the Snapdragon 600's brother, the S4 Pro (8064). It list PVS number from 0 to 6, the voltage required for a set frequency, in this case 1.89 GHz reduces the larger the PVS number.

https://github.com/CyanogenMod/andr...mmit/0a11e25b66ce6d621288c524e070cb3ab98280d7

PVS 0 - would use 1.3 volts at 1.89 GHz

PVS 5 - would use 1.125 volts at the same 1.89 GHz, no guessing which is the better candidate for overclocking:)

Assuming that Qualcomm maintains the same coding logic, the higher the PVS number, the lower the voltage.

All S4 Pro that I've seen listed are marked as SPEED BIN 0, whereas all Snapdragon 600s are listed (so far) as SPEED BIN 1. I wonder if Snapdragon 600, are really just better binned S4 Pros??, maybe but I doubt it.

This will only confirmed when we can dive into the kernel sources or input from a dev with better information.
 
Last edited:

shox22

Senior Member
May 12, 2010
2,246
1,733
Excellent lets keep the data coming. Shox you are non-rooted, correct? If so. would you mind sharing your method, using ADB I imagine?

Yep, i´m unrooted.

I did 2 restarts, then installed fx filemanager (just an example). Then i went in the proc folder and searched for the last_ksmg file. And there it was. Without root :good:

Update: Opened a thread in a german forum to get more data:
SPEED BIN: 1 | 1 | 1
ACPU PVS: 2 | 3 | 5
 
Last edited:
  • Like
Reactions: Turbotab

goulies

Senior Member
Apr 8, 2012
117
19
Shox22 method unrooted :)
SPEED BIN: 1
ACPU PVS: 3


Opened file system/proc/last_ksmg with edit option with fx file manager and used search function "acpu"
 
Last edited:

shox22

Senior Member
May 12, 2010
2,246
1,733
So i think the Speed bin will be 1 on every device?

Here is an summary of the results we got yet:

pvs: 4, 5, 3, 3, 2, 3, 5, 2, 3, 5, 5, 2

13 results:
0: -
1: -
2: 3
3: 5
4: 1
5: 4
6: -
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    UPDATE - Shox22 +1 has confirmed an easy method that doesn't need ROOT.

    METHOD
    - Reboot the phone twice

    - With a File Explorer (FX File Explorer works well)

    - Go to system /proc/last_kmsg

    - Search the last_kmsg for a string 'acpu' You're looking for the following

    [ 0.359957] c0 1 acpuclk-8064 acpuclk-8064: SPEED BIN: 1
    [ 0.359957] c0 1 acpuclk-8064 acpuclk-8064: ACPU PVS: 4



    There seems to be a bit of confusion, about the significance of the PVS value. They relate to Process Corners, and in part to threshold voltage, there is a lot more to it than that, but I'll keep it simple.

    So far we've seen PVS values of between 0 to 6.

    0 seems to indicate a SLOW corner, this means that its leakage current is lower than a 6, but its timings are slower. In theory, this chip should be good for power consumption, but offer less overclocking potential.

    So, 6 means a FAST corner, this means that its leakage current is higher than a 0, but its timings are faster. Again, theoretically this chip offers good overclocking potential, at the expense of possibly higher power consumption.

    Firstly, don't worry about it, all these chips have to pass Qualcomm's quality assurance, and lastly a higher PVS number is not necessarily the best, it depends on your priorities.

    Alternative for ROOTED devices

    You need to use a Terminal app, I use the following "Terminal Emulator"
    https://play.google.com/store/apps/...idterm&feature=nav_result#?t=W251bGwsMSwyLDNd

    Also Busybox must be installed for the 'grep' command
    https://play.google.com/store/apps/...t=W251bGwsMSwxLDEsInN0ZXJpY3Nvbi5idXN5Ym94Il0.

    1 - Open Terminal Emulator

    2 - Type su & enter on keyboard

    3 - Reboot phone

    3 - Open Terminal Emulator and enter su (this gives the shell root access)

    4 - Type the following

    dmesg | grep acpuclk

    press enter * hopefully profit:)

    IF THAT DOESN'T WORK, a failsafe method is

    1 - Open Terminal Emulator

    2 - Type su & enter on keyboard

    3 - Reboot phone

    3 - Open Terminal Emulator and enter su (this gives the shell root access)

    4 - Type the following

    dmesg > /sdcard/dmesg.txt

    With a file explorer check the sdcard for a file called dmesg.txt. Open it and search for 'acpuclk'. You're looking for 2 values listed below "SPEED BIN" & "ACPU PVS"


    On 8064 (S4 Pro) devices there were 4 classes of SoC, depending on the result the kernel would load a different voltage table.
    Slow / Nominal / Fast / Faster

    On the HTC One / Snapdragon 600, the PVS is listing numerically, not by name. All S4 Pro that I've seen listed are marked as SPEED BIN 0, whereas all Snapdragon 600s are listed (so far) as SPEED BIN 1.

    Thanks to recent HTC One Kernel Source release, I can can confirm that a Snapdragon 600 can have 1 of 7 possible PVS values: A higher PVS value is better.

    0 / 1 / 2 / 3 / 4 / 5 / 6

    So far, we have only see PVS values of # 2 / 3 / 4 / 5 in shipping devices

    PVS 2

    static struct acpu_level tbl_PVS2_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 925000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 937500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 950000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 975000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1000000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1012500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1037500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1075000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1100000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1137500 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1162500 },
    { 0, { 0 } }
    };

    vs

    PVS 5

    static struct acpu_level tbl_PVS5_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 937500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 950000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 962500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 987500 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1012500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1050000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1075000 },
    { 0, { 0 } }
    };
    Anyway, if this works on your HTC One, please share your results.
    7
    Some clarification from an engineer who works in the industry:

    "Slow/Nominal/Fast/Faster" does not actually refer to the clockable frequency of the chip. PVS = "process voltage split".

    What it refers to is the semiconductor manufacturing process split corner -- in simple terms, for the lot that your CPU came from, what was the density of negative/positive semiconductor ions doped in during the manufacturing process. "Fast" material will have more ions, and generally this correlates to the material being able to clock faster (within design timing constraints). We also sometimes call this material "hot" material. The downside to hot material is that it burns through and leaks through more current and thus has a higher power consumption (poorer battery life is what this means to you). Cold material is the opposite -- tighter speed/voltage margins, but also less current consumption/leakage. Generally manufacturing sites will do their best to target most material to be nominal.

    So in simple terms -- if your CPU is tagged "fast", it probably also means your battery life sucks more than average. If it's tagged slow, you're probably better off than average as long as it can run at spec speed, but you'll have little luck overclocking. I prefer the latter, personally.
    3
    There has been some interesting information about the PVS, although the names Slow, Nominal, Fast & Faster don't tell the full story as it doesn't tell us if it refers to the nfet or pfet or both.

    There is empirical evidence that the higher PVS SoC do overclock higher, as to battery life I am unsure. Either way, these chips are designed to strict tolerances, a PVS 1 won't steal your money and crash your car, likewise a PVS 6 won't grant you inner peace.

    Now a request, unless you are an Electronic Engineer / have expert knowledge of the semiconductor industry, please do not "interpret" the new information, it will just cause confusion. As I'm not the above, I won't comment further, I'll be reading up on the subject for my own knowledge.
    3
    Actual Voltage Table (Vodafon sources).
    I´m not sure which one we use? But it should be the 1700Mhz Version. The other one is for the 1,9 s600 devices? If this is the case, it seems like their low binned cpus are a bit better then ours. That equalizes in the high binned ones.
    PVS0:
    2000mhz table: { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1225000 },
    1700mhz table: { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1250000 },
    PVS6:

    static struct acpu_level tbl_PVS0_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 950000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 950000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 962500 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 1000000 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1025000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1037500 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1075000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1087500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1125000 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1150000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1175000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1225000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1250000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS1_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 950000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 950000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 962500 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 975000 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1000000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1012500 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1037500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1050000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1087500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1112500 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1150000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1187500 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1200000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS2_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 925000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 937500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 950000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 975000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1000000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1012500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1037500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1075000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1100000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1137500 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1162500 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS3_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 900000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 900000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 900000 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 925000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 950000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 975000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 987500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1000000 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1037500 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1062500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1100000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1125000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS4_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 950000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 962500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 975000 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1000000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1037500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1075000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1100000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS5_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 937500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 950000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 962500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 987500 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1012500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1050000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1075000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS6_1700MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 937500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 950000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 962500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 975000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(14), 1000000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(14), 1025000 },
    { 1, { 1728000, HFPLL, 1, 0x40 }, L2(14), 1050000 },
    { 0, { 0 } }
    };

    2000Mhz
    static struct acpu_level tbl_PVS0_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 950000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 950000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 950000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 962500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 975000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1000000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1025000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 1037500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 1062500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 1100000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1125000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1175000 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1225000 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1287500 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS1_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 925000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 937500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 950000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 975000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1000000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 1012500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 1037500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 1075000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1100000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1137500 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1187500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1250000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS2_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 900000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 900000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 912500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 925000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 950000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 975000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 987500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 1012500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 1050000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1075000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1112500 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1162500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1212500 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS3_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 900000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 900000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 900000 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 912500 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 937500 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 962500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 975000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 1000000 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 1025000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1050000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1087500 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1137500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1175000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS4_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 950000 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 962500 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 975000 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 1000000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1037500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1075000 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1112500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1150000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS5_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 937500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 950000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 962500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 987500 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1012500 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1050000 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1087500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1125000 },
    { 0, { 0 } }
    };

    static struct acpu_level tbl_PVS6_2000MHz[] __initdata = {
    { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000 },
    { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
    { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 875000 },
    { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 875000 },
    { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 887500 },
    { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 900000 },
    { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 925000 },
    { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 937500 },
    { 1, { 1242000, HFPLL, 1, 0x2E }, L2(15), 950000 },
    { 1, { 1350000, HFPLL, 1, 0x32 }, L2(15), 962500 },
    { 1, { 1458000, HFPLL, 1, 0x36 }, L2(15), 975000 },
    { 1, { 1566000, HFPLL, 1, 0x3A }, L2(15), 1000000 },
    { 1, { 1674000, HFPLL, 1, 0x3E }, L2(15), 1025000 },
    { 1, { 1782000, HFPLL, 1, 0x42 }, L2(15), 1062500 },
    { 1, { 1890000, HFPLL, 1, 0x46 }, L2(15), 1100000 },
    { 0, { 0 } }
    };
    2
    it seems htc has changed the read permissions for last_kmsg on the latest builds to r--r----- from r--r--r-- , hence user cant even read the file anymore, so i figure you need root to read it again

    yes, you need root to read it, but there is another solution. you can see it by using adb. "adb pull /proc/last_kmsg"
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone