i win :VManaged to run Slingshot Extreme Unlimited OpenGL. It throttled a little bit on GPU down to 764MHz at the end, and throttled a lot on CPU. So yeah, there is potential.
View attachment 5646113
i win :VManaged to run Slingshot Extreme Unlimited OpenGL. It throttled a little bit on GPU down to 764MHz at the end, and throttled a lot on CPU. So yeah, there is potential.
View attachment 5646113
About time
What about ACE in the hole of Galaxy S8 Kernel development?Well, maybe I should change the thread title in "Hardcore Overclockers and Modding for the S8"![]()
Many, MANY people still use the S8. And the presence of your Kernel to prolong the lifetime of this device is surely welcomed.I've noticed that since I've released the first GPU OC kernel this thread gained again more hits per day like 3 years ago. Actually it has over 1000 hits per day, this is not so bad for a 5 years old phone lol.
<6>dvfs_type : dvfs_mif - id : 0
<6> num_of_lv : 12
<6> num_of_members : 4
<6> lv : [2093000], volt = 0 uV
<6> lv : [2002000], volt = 0 uV
<6> lv : [1794000], volt = 762500 uV
<6> lv : [1540000], volt = 712500 uV
<6> lv : [1352000], volt = 675000 uV
<6> lv : [1014000], volt = 637500 uV
<6> lv : [ 845000], volt = 606250 uV
<6> lv : [ 676000], volt = 593750 uV
<6> lv : [ 546000], volt = 587500 uV
<6> lv : [ 421000], volt = 581250 uV
<6> lv : [ 286000], volt = 581250 uV
<6> lv : [ 208000], volt = 581250 uV
<6>dvfs_type : dvfs_int - id : 1
<6> num_of_lv : 7
<6> num_of_members : 16
<6> lv : [ 667000], volt = 781250 uV
<6> lv : [ 533000], volt = 756250 uV
<6> lv : [ 400000], volt = 643750 uV
<6> lv : [ 333000], volt = 612500 uV
<6> lv : [ 267000], volt = 587500 uV
<6> lv : [ 178000], volt = 575000 uV
<6> lv : [ 107000], volt = 575000 uV
<6>dvfs_type : dvfs_cpucl0 - id : 2
<6> num_of_lv : 18
<6> num_of_members : 1
<6> lv : [2808000], volt = 1206250 uV
<6> lv : [2704000], volt = 1150000 uV
<6> lv : [2652000], volt = 1125000 uV
<6> lv : [2574000], volt = 1081250 uV
<6> lv : [2496000], volt = 1037500 uV
<6> lv : [2314000], volt = 962500 uV
<6> lv : [2158000], volt = 906250 uV
<6> lv : [2002000], volt = 868750 uV
<6> lv : [1937000], volt = 850000 uV
<6> lv : [1807000], volt = 812500 uV
<6> lv : [1703000], volt = 781250 uV
<6> lv : [1469000], volt = 737500 uV
<6> lv : [1261000], volt = 706250 uV
<6> lv : [1170000], volt = 687500 uV
<6> lv : [1066000], volt = 668750 uV
<6> lv : [ 962000], volt = 656250 uV
<6> lv : [ 858000], volt = 643750 uV
<6> lv : [ 741000], volt = 625000 uV
<6>dvfs_type : dvfs_cpucl1 - id : 3
<6> num_of_lv : 12
<6> num_of_members : 1
<6> lv : [2002000], volt = 1137500 uV
<6> lv : [1898000], volt = 1137500 uV
<6> lv : [1794000], volt = 1137500 uV
<6> lv : [1690000], volt = 1062500 uV
<6> lv : [1456000], volt = 937500 uV
<6> lv : [1248000], volt = 831250 uV
<6> lv : [1053000], volt = 775000 uV
<6> lv : [ 949000], volt = 743750 uV
<6> lv : [ 832000], volt = 712500 uV
<6> lv : [ 715000], volt = 675000 uV
<6> lv : [ 598000], volt = 643750 uV
<6> lv : [ 455000], volt = 618750 uV
<6>dvfs_type : dvfs_g3d - id : 4
<6> num_of_lv : 9
<6> num_of_members : 1
<6> lv : [ 839000], volt = 0 uV
<6> lv : [ 764000], volt = 0 uV
<6> lv : [ 683000], volt = 0 uV
<6> lv : [ 572000], volt = 718750 uV
<6> lv : [ 546000], volt = 706250 uV
<6> lv : [ 455000], volt = 693750 uV
<6> lv : [ 385000], volt = 693750 uV
<6> lv : [ 338000], volt = 693750 uV
<6> lv : [ 260000], volt = 693750 uV
<6>dvfs_type : dvfs_intcam - id : 5
<6> num_of_lv : 4
<6> num_of_members : 4
<6> lv : [ 690000], volt = 812500 uV
<6> lv : [ 680000], volt = 687500 uV
<6> lv : [ 670000], volt = 637500 uV
<6> lv : [ 640000], volt = 575000 uV
<6>dvfs_type : dvfs_cam - id : 6
<6> num_of_lv : 7
<6> num_of_members : 22
<6> lv : [ 690000], volt = 793750 uV
<6> lv : [ 680000], volt = 793750 uV
<6> lv : [ 670000], volt = 756250 uV
<6> lv : [ 660000], volt = 693750 uV
<6> lv : [ 650000], volt = 693750 uV
<6> lv : [ 640000], volt = 575000 uV
<6> lv : [ 630000], volt = 575000 uV
<6>dvfs_type : dvfs_disp - id : 7
<6> num_of_lv : 5
<6> num_of_members : 2
<6> lv : [ 630000], volt = 750000 uV
<6> lv : [ 533000], volt = 712500 uV
<6> lv : [ 356000], volt = 631250 uV
<6> lv : [ 214000], volt = 587500 uV
<6> lv : [ 134000], volt = 575000 uV
<6>dvfs_type : dvs_g3dm - id : 8
<6> num_of_lv : 9
<6> num_of_members : 1
<6> lv : [ 839000], volt = 0 uV
<6> lv : [ 764000], volt = 0 uV
<6> lv : [ 683000], volt = 0 uV
<6> lv : [ 572000], volt = 718750 uV
<6> lv : [ 546000], volt = 712500 uV
<6> lv : [ 455000], volt = 700000 uV
<6> lv : [ 385000], volt = 700000 uV
<6> lv : [ 338000], volt = 700000 uV
<6> lv : [ 260000], volt = 700000 uV
<6>dvfs_type : dvs_cp - id : 9
<6> num_of_lv : 3
<6> num_of_members : 1
<6> lv : [1500000], volt = 850000 uV
<6> lv : [1066000], volt = 731250 uV
<6> lv : [ 800000], volt = 731250 uV
Yeah as I said in the past, your stock voltages are lower than my stock table. Also I agree, not much benefit in tryharding to unlock RAM at 2093MHz on this. While GPU may benefit a bit from the extra bandwidth, I doubt it would behave like a Ryzen iGPU (The more bandwidth, the merrier, essentially) since the Mali G71 MP20 is much slower and I doubt it would ever run into bandwidth issues even running at 839MHz. That could be an issue with the Exynos 9810, since I heard that its GPU shares a lot with the CPU.@TechNoobForSale
btw this is my stock dvfs table:
Code:<6>dvfs_type : dvfs_mif - id : 0 <6> num_of_lv : 12 <6> num_of_members : 4 <6> lv : [2093000], volt = 0 uV <6> lv : [2002000], volt = 0 uV <6> lv : [1794000], volt = 762500 uV <6> lv : [1540000], volt = 712500 uV <6> lv : [1352000], volt = 675000 uV <6> lv : [1014000], volt = 637500 uV <6> lv : [ 845000], volt = 606250 uV <6> lv : [ 676000], volt = 593750 uV <6> lv : [ 546000], volt = 587500 uV <6> lv : [ 421000], volt = 581250 uV <6> lv : [ 286000], volt = 581250 uV <6> lv : [ 208000], volt = 581250 uV <6>dvfs_type : dvfs_int - id : 1 <6> num_of_lv : 7 <6> num_of_members : 16 <6> lv : [ 667000], volt = 781250 uV <6> lv : [ 533000], volt = 756250 uV <6> lv : [ 400000], volt = 643750 uV <6> lv : [ 333000], volt = 612500 uV <6> lv : [ 267000], volt = 587500 uV <6> lv : [ 178000], volt = 575000 uV <6> lv : [ 107000], volt = 575000 uV <6>dvfs_type : dvfs_cpucl0 - id : 2 <6> num_of_lv : 18 <6> num_of_members : 1 <6> lv : [2808000], volt = 1206250 uV <6> lv : [2704000], volt = 1150000 uV <6> lv : [2652000], volt = 1125000 uV <6> lv : [2574000], volt = 1081250 uV <6> lv : [2496000], volt = 1037500 uV <6> lv : [2314000], volt = 962500 uV <6> lv : [2158000], volt = 906250 uV <6> lv : [2002000], volt = 868750 uV <6> lv : [1937000], volt = 850000 uV <6> lv : [1807000], volt = 812500 uV <6> lv : [1703000], volt = 781250 uV <6> lv : [1469000], volt = 737500 uV <6> lv : [1261000], volt = 706250 uV <6> lv : [1170000], volt = 687500 uV <6> lv : [1066000], volt = 668750 uV <6> lv : [ 962000], volt = 656250 uV <6> lv : [ 858000], volt = 643750 uV <6> lv : [ 741000], volt = 625000 uV <6>dvfs_type : dvfs_cpucl1 - id : 3 <6> num_of_lv : 12 <6> num_of_members : 1 <6> lv : [2002000], volt = 1137500 uV <6> lv : [1898000], volt = 1137500 uV <6> lv : [1794000], volt = 1137500 uV <6> lv : [1690000], volt = 1062500 uV <6> lv : [1456000], volt = 937500 uV <6> lv : [1248000], volt = 831250 uV <6> lv : [1053000], volt = 775000 uV <6> lv : [ 949000], volt = 743750 uV <6> lv : [ 832000], volt = 712500 uV <6> lv : [ 715000], volt = 675000 uV <6> lv : [ 598000], volt = 643750 uV <6> lv : [ 455000], volt = 618750 uV <6>dvfs_type : dvfs_g3d - id : 4 <6> num_of_lv : 9 <6> num_of_members : 1 <6> lv : [ 839000], volt = 0 uV <6> lv : [ 764000], volt = 0 uV <6> lv : [ 683000], volt = 0 uV <6> lv : [ 572000], volt = 718750 uV <6> lv : [ 546000], volt = 706250 uV <6> lv : [ 455000], volt = 693750 uV <6> lv : [ 385000], volt = 693750 uV <6> lv : [ 338000], volt = 693750 uV <6> lv : [ 260000], volt = 693750 uV <6>dvfs_type : dvfs_intcam - id : 5 <6> num_of_lv : 4 <6> num_of_members : 4 <6> lv : [ 690000], volt = 812500 uV <6> lv : [ 680000], volt = 687500 uV <6> lv : [ 670000], volt = 637500 uV <6> lv : [ 640000], volt = 575000 uV <6>dvfs_type : dvfs_cam - id : 6 <6> num_of_lv : 7 <6> num_of_members : 22 <6> lv : [ 690000], volt = 793750 uV <6> lv : [ 680000], volt = 793750 uV <6> lv : [ 670000], volt = 756250 uV <6> lv : [ 660000], volt = 693750 uV <6> lv : [ 650000], volt = 693750 uV <6> lv : [ 640000], volt = 575000 uV <6> lv : [ 630000], volt = 575000 uV <6>dvfs_type : dvfs_disp - id : 7 <6> num_of_lv : 5 <6> num_of_members : 2 <6> lv : [ 630000], volt = 750000 uV <6> lv : [ 533000], volt = 712500 uV <6> lv : [ 356000], volt = 631250 uV <6> lv : [ 214000], volt = 587500 uV <6> lv : [ 134000], volt = 575000 uV <6>dvfs_type : dvs_g3dm - id : 8 <6> num_of_lv : 9 <6> num_of_members : 1 <6> lv : [ 839000], volt = 0 uV <6> lv : [ 764000], volt = 0 uV <6> lv : [ 683000], volt = 0 uV <6> lv : [ 572000], volt = 718750 uV <6> lv : [ 546000], volt = 712500 uV <6> lv : [ 455000], volt = 700000 uV <6> lv : [ 385000], volt = 700000 uV <6> lv : [ 338000], volt = 700000 uV <6> lv : [ 260000], volt = 700000 uV <6>dvfs_type : dvs_cp - id : 9 <6> num_of_lv : 3 <6> num_of_members : 1 <6> lv : [1500000], volt = 850000 uV <6> lv : [1066000], volt = 731250 uV <6> lv : [ 800000], volt = 731250 uV
the table you see on post #3 is already auto optimized from latest kernel for the better stablity. (e.g. little CPU @ 2GHz stable)
As you can see MIF voltage for the first 2 steps is just "0", I've added voltage as well, but it doesn't accept max_freq above our stock max. Or maybe my phone just can't handle it. Anyway, honestly I don't care much, as I don't think that would bring much more speed. Our stock max freq is already fast enough. Working on new test kernel lol.
until it can beat all s9 seriesWell, maybe I should change the thread title in "Hardcore Overclockers and Modding for the S8"![]()
the more transistor and more small the transistor that make a SOC, CPU, or GPU faster like if you have 3 transistor at 100mhz it can lose by 6 transistor at 50mhzYeah as I said in the past, your stock voltages are lower than my stock table. Also I agree, not much benefit in tryharding to unlock RAM at 2093MHz on this. While GPU may benefit a bit from the extra bandwidth, I doubt it would behave like a Ryzen iGPU (The more bandwidth, the merrier, essentially since the Mali G71 MP20 is much slower and I doubt it would ever run into bandwidth issues even running at 839MHz. That could be an issue with the Exynos 9810, since I heard that its GPU shares a lot with the CPU.
Yes but that’s not my point at all.the more transistor and more small the transistor that make a SOC, CPU, or GPU faster like if you have 3 transistor at 100mhz it can lose by 6 transistor at 50mhz
Well, I don’t want to be “that guy”. We DID just match or slightly beat the S9 series GPU at stock and we wreck it in user experience thanks to Ace’s effort. But we have no hope of matching the CPU. It’s too far ahead. 2808MHz would get us remotely close but said frequency is nearly impossible to achieve AND sustain.
cd /dev/cpuset/top-app
cat cpus
echo 0-6 > cpus
cd /dev/cpuset/top-app
echo 0-7 > cpus
@TechNoobForSale
The trick with current limitation on voltage regulator didn't work, but I've found something interesting.
I've run Geekbench 5 and passed 2,8 GHz stable by testing the 4 M2 cores one by one lol.
As it turned out, all 4 cores are able to run the whole benchmark stable with stock voltage 1206250 uV. So it's power issue from PRCMU itself. (like you said)
Funny thing is, it works stable @ 3 x 2,8 GHz with stock voltage.
So if someone have stable 2,7 GHz and can't run 2,8 GHz stable, you guys can try to get rid of 1 core when running very high Freq like 2,8 GHz. To run only 3 M2 cores instead 4 cores, run this cmd:
Code:cd /dev/cpuset/top-app cat cpus echo 0-6 > cpus
To revert set again the old value, so:
Code:cd /dev/cpuset/top-app echo 0-7 > cpus
Note: after an reboot you need to run the cmd again or just move the cmd to your init.d script. Only for testing. Maybe it can benefit when running some games, otherwise 4 x 2,7 GHz should be better than 3 x 2,8 GHz.
Also I've build a new test kernel for testing the following stuff:
1. test 12v input voltage for USB-PB @rtyuakatsuki
2. connect DEX and use it for 1 minute then generate logcat & dmesg and post it here @rtyuakatsuki @Pistero07
And removed hardcoded OV for big CPU (for 2652 MHz and up).
Still 9v@TechNoobForSale
The trick with current limitation on voltage regulator didn't work, but I've found something interesting.
I've run Geekbench 5 and passed 2,8 GHz stable by testing the 4 M2 cores one by one lol.
As it turned out, all 4 cores are able to run the whole benchmark stable with stock voltage 1206250 uV. So it's power issue from PRCMU itself. (like you said)
Funny thing is, it works stable @ 3 x 2,8 GHz with stock voltage.
So if someone have stable 2,7 GHz and can't run 2,8 GHz stable, you guys can try to get rid of 1 core when running very high Freq like 2,8 GHz. To run only 3 M2 cores instead 4 cores, run this cmd:
Code:cd /dev/cpuset/top-app cat cpus echo 0-6 > cpus
To revert set again the old value, so:
Code:cd /dev/cpuset/top-app echo 0-7 > cpus
Note: after an reboot you need to run the cmd again or just move the cmd to your init.d script. Only for testing. Maybe it can benefit when running some games, otherwise 4 x 2,7 GHz should be better than 3 x 2,8 GHz.
Also I've build a new test kernel for testing the following stuff:
1. test 12v input voltage for USB-PB @rtyuakatsuki
2. connect DEX and use it for 1 minute then generate logcat & dmesg and post it here @rtyuakatsuki @Pistero07
And removed hardcoded OV for big CPU (for 2652 MHz and up).
Well then that's your limit. Anyway this phone and kernel supports even 12V chargers. So if you want it to give a try you can do, but so far I've no one confirmation that someone tried this.
I had just enabled support in kernel and thats it. Never tested by me, because I don't own such a charger.
So try at your own risk like always.
Maybe at 12V it can help with OC stability ... who knows ?
Yeah likely due to dex itself. Also I do assume that you are using higher resolution than that default FHD+ 1080. So that's the reason.
No sorry, only Windows emulator apps works. But you can download kernel source code and enable KVM support by yourself
Do you know how i could build the kernel with KVM supportWell then that's your limit. Anyway this phone and kernel supports even 12V chargers. So if you want it to give a try you can do, but so far I've no one confirmation that someone tried this.
I had just enabled support in kernel and thats it. Never tested by me, because I don't own such a charger.
So try at your own risk like always.
Maybe at 12V it can help with OC stability ... who knows ?
Yeah likely due to dex itself. Also I do assume that you are using higher resolution than that default FHD+ 1080. So that's the reason.
No sorry, only Windows emulator apps works. But you can download kernel source code and enable KVM support by yourself.
Isn’t 12V a bit excessive?@TechNoobForSale
The trick with current limitation on voltage regulator didn't work, but I've found something interesting.
I've run Geekbench 5 and passed 2,8 GHz stable by testing the 4 M2 cores one by one lol.
As it turned out, all 4 cores are able to run the whole benchmark stable with stock voltage 1206250 uV. So it's power issue from PRCMU itself. (like you said)
Funny thing is, it works stable @ 3 x 2,8 GHz with stock voltage.
So if someone have stable 2,7 GHz and can't run 2,8 GHz stable, you guys can try to get rid of 1 core when running very high Freq like 2,8 GHz. To run only 3 M2 cores instead 4 cores, run this cmd:
Code:cd /dev/cpuset/top-app cat cpus echo 0-6 > cpus
To revert set again the old value, so:
Code:cd /dev/cpuset/top-app echo 0-7 > cpus
Note: after an reboot you need to run the cmd again or just move the cmd to your init.d script. Only for testing. Maybe it can benefit when running some games, otherwise 4 x 2,7 GHz should be better than 3 x 2,8 GHz.
Also I've build a new test kernel for testing the following stuff:
1. test 12v input voltage for USB-PB @rtyuakatsuki
2. connect DEX and use it for 1 minute then generate logcat & dmesg and post it here @rtyuakatsuki @Pistero07
And removed hardcoded OV for big CPU (for 2652 MHz and up).
Do you know how i could build the kernel with KVM support
I have git cloned the source code for the kernel
How could i enable it for Note 8
XD Im a Noob
Thanks
oh ok@ up
Probably not really needed and therefore Samsung didn't enable it in kernel. But since it was half implemented and in source code it seems that our hardware support it and there are USB-PD with 12v output, then it's nice to have it working. E.g. you have USB-PD with 5/9/12v output and 9v output is broken, so you still can use 12v.
Sorry, but if I say build it yourself, it means that i'm not interested in KVM at all and therefore no help from me.
Oh I see. Well then if it’s possible to unlock it, maybe no more instability at 839MHz GPU when fast charging.@ up
Probably not really needed and therefore Samsung didn't enable it in kernel. But since it was half implemented and in source code it seems that our hardware support it and there are USB-PD with 12v output, then it's nice to have it working. E.g. you have USB-PD with 5/9/12v output and 9v output is broken, so you still can use 12v.
Sorry, but if I say build it yourself, it means that i'm not interested in KVM at all and therefore no help from me.
Yes but probably it's locked like all the other clocks it was. So it needs first some hacks like always. I remember on Ace 2 we OC'ed lcd_clk from 50 MHz up to 100 MHz. 100 MHz was sometimes unstable, but 80 MHz worked stable. Now that "50" is just LCD_CLK not refresh_rate. Also I don't know how it should be calculated ... 50 MHz = 60 hz and @ 100 Mhz = 120 Hz lol. Anyway at 80 MHz, probably around 100 Hz was it possible to scroll text without to cause eye cancer. Here on S8 there is also such LCD_CLK, but even increasing it, I don't see any difference, maybe I'll try this once again. There is also refresh value = 60, but even changing this @ 100, just changes nothing, so I suspect it's locked like I said.Hey @ace2nutzer. I have a question. It’s just a random one out of curiosity though, theory. I don’t ask to have it implemented because I know it isnt worth it at all.
But would AMOLED overclock be possible? Could somebody make S8’s screen go from say 60hz to 65hz? Or is 60hz hardware limit?
Yes, that's right, because it gets out of sync. @ 80 or 100 hz it'll run probably smooth without the need to adapt other stuff in ROM, which is way more complicated.I was see the option when using mhl in screen option there 75hz rate for monitor but that reduce quality of the screen i mean the color get washed but in reality screen that still 60hz sometime i face glitch when use 75hz
Good idea, I'll see if I can do something.hello guys, could someone help me and tell me how I can mount a usb hdd in ntfs format? I have the ntfs option activated but the unit does not appear, I think I need to mount it, how could I do it?
Nope, this is not how it should be done. You need Linux OS (e.g. Lubuntu) with installed "git" versioning system.
#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# NOTE! Please use 'git ls-files -i --exclude-standard'
# command after changing this file, to see if there are
# any tracked files which get ignored after the change.
#
# Normal rules
#
.*
*.o
*.o.*
*.a
*.s
*.ko
*.so
*.so.dbg
*.mod.c
*.i
*.lst
*.symtypes
*.order
*.elf
*.bin
*.tar
*.gz
*.bz2
*.lzma
*.xz
*.lz4
*.lzo
*.patch
*.gcno
*.ll
modules.builtin
Module.symvers
*.dwo
*.su
#
# Top-level generic files
#
/tags
/TAGS
/linux
/vmlinux
/vmlinux.32
/vmlinux-gdb.py
/vmlinuz
/System.map
/Module.markers
#
# Debian directory (make deb-pkg)
#
/debian/
#
# tar directory (make tar*-pkg)
#
/tar-install/
#
# git files that we don't want to ignore even it they are dot-files
#
!.gitignore
!.mailmap
#
# Generated include files
#
include/config
include/generated
arch/*/include/generated
# stgit generated dirs
patches-*
# quilt's files
patches
series
# cscope files
cscope.*
ncscope.*
# gnu global files
GPATH
GRTAGS
GSYMS
GTAGS
# id-utils files
ID
*.orig
*~
\#*#
#
# Leavings from module signing
#
extra_certificates
signing_key.pem
signing_key.priv
signing_key.x509
x509.genkey
# Kconfig presets
all.config
# Kdevelop4
*.kdev4
# platform specific
scripts/rkp_cfp/common.pyc
scripts/rkp_cfp/tmp/
# custom files
clean
arch/arm64/boot/Image
*.dtb
rejects
git init
git add .
git commit -am "initial commit"
git remote add master https://github.com/opensourcefreak/KOLUMN_Kernel.git
git push --set-upstream master master
git commit -am "CPU: added OC support"
git push
This man is unstoppable@TechNoobForSale @rtyuakatsuki and others !
HERE WE GO AGAIN
First boot with OC'ed RAM 1,8 GHz @ 2,0 GHz:
Code:dreamlte:/sys/class/devfreq/17000010.devfreq_mif $ cat time_in_state 2093000 0 2002000 174816 1794000 4206 1540000 7140 1352000 11904 1014000 1614 845000 58046 676000 0 546000 0 421000 0 286000 0 208000 0
2,1 GHz should work as well ...
you are right about the usage of this kernel by users; it will be futile to go through all the trouble for no significant benefits. i was wondering if through CPU undervolting we could squeeze out a bit more battery life. perhaps you could add voltage sliders starting from base frequency 2314Mhz up to 2808Mhz for big cores and the same for little in the future if you get free time at your hands.Not much benefit i think. Also I don't know how many users still use this kernel and how many of them want CPU voltage control. Also the request was not specific, should it be only for OC Freqs ? Anyway, I'm working on new release ... maybe OC will be more stable.
su // only for termux app
cd /sys/module/abox/parameters
cat user_pm_qos_lit // check current value
echo 949000 > user_pm_qos_lit // e.g. set to 949 MHz
# To apply the change at boot, like always, copy paste the cmds to
# /system/etc/init.d/99_user without the "su" cmd of course.
adb shell
su
cd /sys/power
# print dvfs table so we can see current votlage table !
echo 1 > print_dvfs_table
dmesg
[ 5808.312763] dvfs_type : dvfs_mif - id : 0
[ 5808.312784] num_of_lv : 12
[ 5808.312791] num_of_members : 4
[ 5808.312802] lv : [2093000], volt = 850000 uV
[ 5808.312814] lv : [2002000], volt = 850000 uV
[ 5808.312825] lv : [1794000], volt = 762500 uV
[ 5808.312835] lv : [1540000], volt = 712500 uV
[ 5808.312846] lv : [1352000], volt = 675000 uV
[ 5808.312856] lv : [1014000], volt = 637500 uV
[ 5808.312867] lv : [ 845000], volt = 606250 uV
[ 5808.312877] lv : [ 676000], volt = 593750 uV
[ 5808.312887] lv : [ 546000], volt = 587500 uV
[ 5808.312896] lv : [ 421000], volt = 581250 uV
[ 5808.312907] lv : [ 286000], volt = 581250 uV
[ 5808.312917] lv : [ 208000], volt = 581250 uV
[ 5808.312938] dvfs_type : dvfs_int - id : 1
[ 5808.312945] num_of_lv : 7
[ 5808.312951] num_of_members : 16
[ 5808.312962] lv : [ 667000], volt = 781250 uV
[ 5808.312972] lv : [ 533000], volt = 756250 uV
[ 5808.312982] lv : [ 400000], volt = 643750 uV
[ 5808.312991] lv : [ 333000], volt = 612500 uV
[ 5808.313001] lv : [ 267000], volt = 587500 uV
[ 5808.313011] lv : [ 178000], volt = 575000 uV
[ 5808.313020] lv : [ 107000], volt = 575000 uV
[ 5808.313040] dvfs_type : dvfs_cpucl0 - id : 2
[ 5808.313047] num_of_lv : 18
[ 5808.313053] num_of_members : 1
[ 5808.313062] lv : [2808000], volt = 1300000 uV
[ 5808.313071] lv : [2704000], volt = 1175000 uV
[ 5808.313082] lv : [2652000], volt = 1150000 uV
[ 5808.313092] lv : [2574000], volt = 1081250 uV
[ 5808.313102] lv : [2496000], volt = 1037500 uV
[ 5808.313113] lv : [2314000], volt = 962500 uV
[ 5808.313123] lv : [2158000], volt = 906250 uV
[ 5808.313133] lv : [2002000], volt = 868750 uV
[ 5808.313144] lv : [1937000], volt = 850000 uV
[ 5808.313154] lv : [1807000], volt = 812500 uV
[ 5808.313164] lv : [1703000], volt = 781250 uV
[ 5808.313175] lv : [1469000], volt = 737500 uV
[ 5808.313185] lv : [1261000], volt = 706250 uV
[ 5808.313196] lv : [1170000], volt = 687500 uV
[ 5808.313206] lv : [1066000], volt = 668750 uV
[ 5808.313216] lv : [ 962000], volt = 656250 uV
[ 5808.313227] lv : [ 858000], volt = 643750 uV
[ 5808.313237] lv : [ 741000], volt = 625000 uV
[ 5808.313256] dvfs_type : dvfs_cpucl1 - id : 3
[ 5808.313262] num_of_lv : 12
[ 5808.313268] num_of_members : 1
[ 5808.313279] lv : [2002000], volt = 1300000 uV
[ 5808.313289] lv : [1898000], volt = 1200000 uV
[ 5808.313300] lv : [1794000], volt = 1137500 uV
[ 5808.313310] lv : [1690000], volt = 1062500 uV
[ 5808.313321] lv : [1456000], volt = 937500 uV
[ 5808.313331] lv : [1248000], volt = 831250 uV
[ 5808.313342] lv : [1053000], volt = 775000 uV
[ 5808.313352] lv : [ 949000], volt = 743750 uV
[ 5808.313363] lv : [ 832000], volt = 712500 uV
[ 5808.313373] lv : [ 715000], volt = 675000 uV
[ 5808.313384] lv : [ 598000], volt = 643750 uV
[ 5808.313394] lv : [ 455000], volt = 618750 uV
[ 5808.313413] dvfs_type : dvfs_g3d - id : 4
[ 5808.313419] num_of_lv : 9
[ 5808.313426] num_of_members : 1
[ 5808.313436] lv : [ 839000], volt = 750000 uV
[ 5808.313447] lv : [ 764000], volt = 750000 uV
[ 5808.313457] lv : [ 683000], volt = 700000 uV
[ 5808.313467] lv : [ 572000], volt = 718750 uV
[ 5808.313478] lv : [ 546000], volt = 706250 uV
[ 5808.313488] lv : [ 455000], volt = 693750 uV
[ 5808.313499] lv : [ 385000], volt = 693750 uV
[ 5808.313509] lv : [ 338000], volt = 693750 uV
[ 5808.313520] lv : [ 260000], volt = 693750 uV
[ 5808.313539] dvfs_type : dvfs_intcam - id : 5
[ 5808.313545] num_of_lv : 4
[ 5808.313551] num_of_members : 4
[ 5808.313561] lv : [ 690000], volt = 812500 uV
[ 5808.313572] lv : [ 680000], volt = 687500 uV
[ 5808.313583] lv : [ 670000], volt = 637500 uV
[ 5808.313593] lv : [ 640000], volt = 575000 uV
[ 5808.313610] dvfs_type : dvfs_cam - id : 6
[ 5808.313616] num_of_lv : 7
[ 5808.313623] num_of_members : 22
[ 5808.313633] lv : [ 690000], volt = 793750 uV
[ 5808.313644] lv : [ 680000], volt = 793750 uV
[ 5808.313654] lv : [ 670000], volt = 756250 uV
[ 5808.313665] lv : [ 660000], volt = 693750 uV
[ 5808.313675] lv : [ 650000], volt = 693750 uV
[ 5808.313685] lv : [ 640000], volt = 575000 uV
[ 5808.313696] lv : [ 630000], volt = 575000 uV
[ 5808.313713] dvfs_type : dvfs_disp - id : 7
[ 5808.313719] num_of_lv : 5
[ 5808.313725] num_of_members : 2
[ 5808.313735] lv : [ 630000], volt = 750000 uV
[ 5808.313746] lv : [ 533000], volt = 712500 uV
[ 5808.313756] lv : [ 356000], volt = 631250 uV
[ 5808.313767] lv : [ 214000], volt = 587500 uV
[ 5808.313777] lv : [ 134000], volt = 575000 uV
[ 5808.313794] dvfs_type : dvs_g3dm - id : 8
[ 5808.313800] num_of_lv : 9
[ 5808.313807] num_of_members : 1
[ 5808.313817] lv : [ 839000], volt = 0 uV
[ 5808.313827] lv : [ 764000], volt = 0 uV
[ 5808.313837] lv : [ 683000], volt = 0 uV
[ 5808.313847] lv : [ 572000], volt = 718750 uV
[ 5808.313858] lv : [ 546000], volt = 712500 uV
[ 5808.313869] lv : [ 455000], volt = 700000 uV
[ 5808.313880] lv : [ 385000], volt = 700000 uV
[ 5808.313890] lv : [ 338000], volt = 700000 uV
[ 5808.313900] lv : [ 260000], volt = 700000 uV
[ 5808.313917] dvfs_type : dvs_cp - id : 9
[ 5808.313924] num_of_lv : 3
[ 5808.313930] num_of_members : 1
[ 5808.313940] lv : [1500000], volt = 850000 uV
[ 5808.313951] lv : [1066000], volt = 731250 uV
[ 5808.313961] lv : [ 800000], volt = 731250 uV
# lets say you want to undervolt big CPU Freq step 2314 MHz @ 900 mV:
# the format string is here: "rate volt" (KHz uV)
echo "2314000 900000" > cpu_big_volt
# after that you could again print the dvfs table to verify if new voltage was successfully applied.
echo 1 > print_dvfs_table
dmesg
# now lets say you want to undervolt little CPU Freq step 1690 MHz @ 950 mV:
# the format string is here: "rate volt" (KHz uV)
echo "1690000 950000" > cpu_lit_volt
# now likely you want to undervolt GPU Freq step 546 MHz @ 650 mV:
# the format string is here: "rate volt" (KHz uV)
cd /sys/kernel/gpu
# first check current GPU volt table:
cat gpu_asv_table
GPU, vol, min, max, down_stay, mif, cpu0, cpu1
839000, 750000, 43, 75, 1, 2093000, 0, 0
764000, 750000, 42, 75, 1, 2093000, 0, 0
683000, 700000, 38, 75, 1, 2093000, 0, 0
572000, 718750, 47, 75, 1, 2093000, 0, 0
546000, 706250, 37, 75, 1, 2093000, 0, 0
455000, 693750, 38, 75, 1, 2093000, 0, 0
385000, 693750, 41, 75, 1, 2093000, 0, 0
338000, 693750, 33, 75, 1, 2093000, 0, 0
260000, 693750, 33, 75, 1, 1352000, 0, 0
echo "546000 650000" > gpu_volt
# and check ...
cat gpu_asv_table
GPU, vol, min, max, down_stay, mif, cpu0, cpu1
839000, 750000, 43, 75, 1, 2093000, 0, 0
764000, 750000, 42, 75, 1, 2093000, 0, 0
683000, 700000, 38, 75, 1, 2093000, 0, 0
572000, 718750, 47, 75, 1, 2093000, 0, 0
546000, 650000, 37, 75, 1, 2093000, 0, 0
455000, 693750, 38, 75, 1, 2093000, 0, 0
385000, 693750, 41, 75, 1, 2093000, 0, 0
338000, 693750, 33, 75, 1, 2093000, 0, 0
260000, 693750, 33, 75, 1, 1352000, 0, 0
# you can undervolt every single step, so lets undervolt 455 MHz step as well @ 650 mV:
echo "455000 650000" > gpu_volt
# now maybe you want even to undervolt RAM.
# we need to go again to /sys/power ...
cd /sys/power
# take a look at the dvfs table, the very first entry "dvfs_mif - id : 0"
this is RAM freq - volt table and our max_freq is 1794 MHz.
# we will undervolt Freq step 1794 MHz @ 700 mV:
# the format string is here: "id rate volt" (intent KHz uV)
# this sysfs interface is universal and you can undervolt any voltage table you want by using the corresponding "id":
echo "0 1794000 700000" > update_dvfs_table
# and verify:
echo 1 > print_dvfs_table
dmesg
# id 4 would be for GPU (dvfs_g3d) and so on ...
# to run all the cmds for undervolting at boot, just do something like this:
# open the script /system/etc/init.d.a2n/a2n_user and copy paste your cmds:
cd /sys/power
echo "2314000 900000" > cpu_big_volt
echo "1690000 950000" > cpu_lit_volt
echo "0 1794000 700000" > update_dvfs_table
cd /sys/kernel/gpu
echo "546000 650000" > gpu_volt
echo "455000 650000" > gpu_volt
# under the line: "# A2N init.d Script"
# save and enjoy !