How to Edit Frequencies in Exynos4412? - Galaxy Note II, Galaxy S III Developer Discussion

I've built a custom kernel for my Galaxy Tab 10.1 The link is in my signature. When I wanted to add custom frequencies to it, there was a very informative post that told me how to edit the frequency table to make the new clock speeds on tegra2 come out right and also how to edit the voltage tables. At least on the tegra2 it involved editing tegra2_clocks.c where you had to change the pll_x frequency table, change the pll_x max speed, virtual cpu max speed, sku max speed, and add an additional frequency table for your new clock speeds. The voltage was done in tegra2_dvfs.c where you added changed the min/max voltages accordingly and added in your new frequencies there.
I have looked all over the internet for a similar guide for my I9300. The cpufreq-4x12 looks nothing like the tegra one. It appears that every frequency has an entry in clkdiv_cpu0_4412 (for the S3 at least) with dividers for cryptic values like "divcore" "divcorem0". I've tried doing a grep search in the kernel source and couldn't find those names mentioned anywhere. There also appears to be another clkdiv_cpu1_4412 with even more cryptic values which don't appear in grep either. Then of course, there's yet another cryptic table that each frequency seems to go to called "apll_pms". It appears as the voltages go to the asv tables but how you accommodate new frequencies is beyond me. The L0,L1.. etc labels don't appear to follow the conventions stated earlier where 1800MHz is labelled L0 at the top but L-2 later.
I realize that many experienced developers probably take this information for granted and I wouldn't be asking for this if it was available somewhere else. The documentation folder in the kernel doesn't provide any information either.
Please help a startup enthusiast As a beginner, I've typically answered similar how to questions on my own thread in the beginning, when other people were interested in how to get their hands dirty with modifications. (Although now, people just seem to be interested in the final product which is fine too.)

Each divider value represents the real divider minus 1. So a value of 7 divides by 8. Populate the divider talbes with new entries like that. The registers have a limit so see the register maps in /mach/regs-clock.h. The dividers divide the final CPU clock. What values you give the dividers is up to you to decide.
The CPU clock is decided by the PLL as you saw. PMS decides the PLL frequency. The source quartz runs at 24MHz. The frequency is calculated by (P * Xtal) / (M << S).
Example 500MHz: ((125<<16)|(3<<8)|(0x1)), the format is ((P<<16)|(M<<8)|(S)).
(P * Xtal) = 125*24 MHz = 3000MHz
(M << S) = 3 << 1 = 6
End result is 3000MHz / 6 = 500MHz.
That's all you need to know. Alternatively, just copy what other devs have already done. Be careful with the Lx levels when you add new ones, you need shift all the existing ones throughout the file.

AndreiLux said:
Each divider value represents the real divider minus 1. So a value of 7 divides by 8. Populate the divider talbes with new entries like that. The registers have a limit so see the register maps in /mach/regs-clock.h. The dividers divide the final CPU clock. What values you give the dividers is up to you to decide.
The CPU clock is decided by the PLL as you saw. PMS decides the PLL frequency. The source quartz runs at 24MHz. The frequency is calculated by (P * Xtal) / (M << S).
Example 500MHz: ((125<<16)|(3<<8)|(0x1)), the format is ((P<<16)|(M<<8)|(S)).
(P * Xtal) = 125*24 MHz = 3000MHz
(M << S) = 3 << 1 = 6
End result is 3000MHz / 6 = 500MHz.
That's all you need to know. Alternatively, just copy what other devs have already done. Be careful with the Lx levels when you add new ones, you need shift all the existing ones throughout the file.
Click to expand...
Click to collapse
I'm a bit confused by what M << S means. From lookig at the example it looks like the formula is: P * 24 / ( M * 2^s)? Also, I'm assuming the voltage tables don't have to be touched. Thanks so much for the information. And... what fun would it be if you did a straight up copy and paste? :cyclops:

Ummm that's a bit-wise left-shift operation. And yes you also need to add entries in the voltage table.

AndreiLux said:
Be careful with the Lx levels when you add new ones, you need shift all the existing ones throughout the file.
Click to expand...
Click to collapse
And in any other files that reference levels... Namely any that contains a level-based DVFS lock.
I think much of Samsung's newer code does frequency-based locks with a frequency-to-level lookup, but in older 4210 kernels, there were lots of locks that called out specific levels. Some of these locks were in throttling code. Levels go from high freq to low freq.
So if L2 was originally 800 MHz, and L2 is now 1000 MHz, and thermal throttling code locks to a minimum level (maximum frequency) of L2... Whoops, now the thermal throttling is broken.

Hi again,
For some reason, the exynos4 sources seem to be much more fussy than the galaxy tab 10.1 tegra2 sources I messed with in the summer. Right of the bat (with no modifications), it refuses to compile giving me issues in the file arch/arm/mvp/mvpkm/mvpkm_main.o. I haven't touched anything or made any changes yet. I downlaoded the latest sources from Samsung. I tried switching toolchains and I get 1 of 2 errors. With an older toolchain I get
/tmp/ccC3yZT8.s:4865: Error: unknown pseudo-op: `.arch_extension'.
With a newer toolchain I get an error about making a pointer to int conversion without a cast. Wow, truly unbelievable!!!??? I just want to make a baseline run, haven't touched a character of code and it refuses. I tried compiling CM10.1's kernel (also with no modifications) but for some reasons the graphics are Pentium 1 slow. ADB shell with logcat keeps saying hwcompser can't do vsync and it attempts to fake it.
I don't remember it being this hard on my galaxy tab 10.1. Am I missing something obvious?
---------------------added-----------------
I got cm sources compiling correctly. I think i forgot to undo previous experiments

AndreiLux said:
Each divider value represents the real divider minus 1. So a value of 7 divides by 8. Populate the divider talbes with new entries like that. The registers have a limit so see the register maps in /mach/regs-clock.h. The dividers divide the final CPU clock. What values you give the dividers is up to you to decide.
The CPU clock is decided by the PLL as you saw. PMS decides the PLL frequency. The source quartz runs at 24MHz. The frequency is calculated by (P * Xtal) / (M << S).
Example 500MHz: ((125<<16)|(3<<8)|(0x1)), the format is ((P<<16)|(M<<8)|(S)).
(P * Xtal) = 125*24 MHz = 3000MHz
(M << S) = 3 << 1 = 6
End result is 3000MHz / 6 = 500MHz.
That's all you need to know. Alternatively, just copy what other devs have already done. Be careful with the Lx levels when you add new ones, you need shift all the existing ones throughout the file.
Click to expand...
Click to collapse
I have been meaning to thank you for this, I have not seen this information elsewhere. Could you please briefly explain how to set the values in cpufreq_clkdiv? I have noticed different kernels have different values for the same frequency, and I don't know which one is correct for me.
Example:
/*
* Clock divider value for following
* { DIVCORE, DIVCOREM0, DIVCOREM1, DIVPERIPH,
* DIVATB, DIVPCLK_DBG, DIVAPLL, DIVCORE2 }
*/
Samsung source (I believe)
/* ARM L0: 1600Mhz */
{ 0, 3, 7, 0, 6, 1, 2, 0 },
Perseus:
/* ARM L0: 1600Mhz */
{ 0, 4, 7, 0, 6, 1, 7, 0 },​

ffolkes said:
I have been meaning to thank you for this, I have not seen this information elsewhere. Could you please briefly explain how to set the values in cpufreq_clkdiv? I have noticed different kernels have different values for the same frequency, and I don't know which one is correct for me.
Example:
/*
* Clock divider value for following
* { DIVCORE, DIVCOREM0, DIVCOREM1, DIVPERIPH,
* DIVATB, DIVPCLK_DBG, DIVAPLL, DIVCORE2 }
*/
Samsung source (I believe)
/* ARM L0: 1600Mhz */
{ 0, 3, 7, 0, 6, 1, 2, 0 },
Perseus:
/* ARM L0: 1600Mhz */
{ 0, 4, 7, 0, 6, 1, 7, 0 },​
Click to expand...
Click to collapse
I don't have any exact technical explanation behind the physical CPU blocks that those auxiliary dividers are clocking.
Personally I just fired up Excel and adjusted them in to what seemed to me a reasonable curve with the rest of the frequency clocks which Samsung provided. These are the values I put in Perseus.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You could probably adjust M0 again beyond 1800 MHz to be somewhat lower.

Related

The overclock modules for HTC One XL, should be applicable on our One S

It can apply on phones running with Qualcomm MSM 8960 chipset.
Quoting from the OP:
One XL/AT&T/Rogers One X 1.8GHz overclock module
Please let me know about the module's compatibility with your phone. It has been reported to work on the latest AT&T version kernel, and I have a Rogers device myself.
Hey guys! I've created a kernel module that overclocks the MSM8960 Qualcomm Krait to over 1.8GHz. It also allows you to specify a custom voltage and frequency instead of 1.8GHz. This method works on ANY MSM8960-based rooted HTC One X, even on locked bootloader devices. This allows AT&T users to overclock, and others to overclock without necessarily needing to unlock the bootloader. This overclock makes the already tremendously fast MSM8960 about 20% faster.
Note that this mod is ONLY for the Qualcomm MSM8960-based Krait HTC One X and HTC One XL. This includes the AT&T HTC One X, Rogers HTC One X, and any phone branded as the HTC One XL.
The module is loaded using this command: insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000
The pll_l_val parameter determines how high the overclock is. Multiply this number by 27 to get the final clock speed in MHz. For example, 67*27 is 1809000, which is what the module defaults to.
The vdd_uv parameter determines the voltage used at the overclocked speed, in microvolts. The default for 1.5GHz is 1200000, and I was able to get a stable overclock at 1300000 at 1.8GHz. Raise the vdd_uv parameter if the overclock is unstable. The current maximum for this field is 1300000, so don't go higher than this. If your system crashes or is unstable at this frequency/voltage, lower the pll_l_val one by one until you reach stability. You can run rmmod krait_oc and then insmod krait_oc.ko with different parameters without having to reboot.
You'll also need a custom, tweaked thermald.conf. This thermald.conf raises thermal tolerances slightly (I've found that they're a little too strict, even at stock clocks and voltages). I've included this in the package, and instructions for installing it are below.
Video, demonstrating the overclock on a Rogers HTC One X:
YouTube Video
Screenshots
Source code is included in the package. If anyone has an HTC One S, this method will work on that, too. Please post below a dump of /system/lib/modules and I should be able to add support for any MSM8960-based HTC device with just that.
Instructions
First, determine which kernel module to use. Do an adb shell cat /proc/version and choose a ko file that matches your version number (these instructions assume you've renamed it to krait_oc.ko). 21/05/2012: If you don't see your kernel version here, try loading the module anyway. If it fails to load, please post a file from /system/lib/modules (any file) here and I will add support.
Install the overclock (only once):
1. Push the kernel module to your device:
adb push krait_oc.ko /data/local
2. Install the new thermald.conf, making sure to back up the old one, and reboot. The thermald.conf is included in the download. If you want to target a frequency other than 1809000 KHz, you should edit the thermald.conf and replace "1809000" to whatever frequency you want to target.
adb push thermald.conf /data/local
adb shell
su
mount -o rw,remount /system
cp /system/etc/thermald.conf /system/etc/thermald.conf.bak
rm -r /system/etc/thermald.conf
cp /data/local/thermald.conf /system/etc
reboot
Load the overclock (every time you reboot):
1. Load the kernel module (replace pll_l_val and vdd_uv with your desired voltages and L value as explained above. It defaults to 67 and 1300000 if you don't give it any parameters):
adb shell
su
insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000
2. Bring core 1 temporarily offline so it gets updated with the new max frequency:
echo 0 > /sys/devices/system/cpu/cpu1/online
3. You'll now have an additional CPU frequency! SetCPU can configure your maximum frequency up to this speed. You can also choose to keep running at 1.5GHz at any time - this method doesn't eliminate any available frequencies. Set the max at 1.8GHz to verify it's stable here.
4. Restart thermald by running "ps". Look for "thermald" in the list, and find thermald's pid (it's usually a number in the low hundreds, higher up in the list). Run "kill [thermald's PID]" in adb shell. The kernel does not currently have kernel-level temperature throttling turned on, so thermald is important for now.
Remove the overclock by restoring your backup of thermald.conf:
adb shell
su
mount -o rw,remount /system
rm -r /system/etc/thermald.conf
cp /system/etc/thermald.conf.bak /system/etc/thermald.conf
rm -r /system/etc/thermald.conf.bak
reboot
Rebooting clears any kernel modules that are loaded, so you're now clean. You can then delete anything left over in /data/local, but it doesn't matter.
If the module loads but the overclock doesn't seem to have any effect, even after putting max and min at 1.8GHz, your device might use a different SoC bin than the "nominal," and the kernel module is looking at the wrong place. Please reboot your device and post an adb shell dmesg right after the reboot so I can look at it.
Download current pack of modules:
http://www.setcpu.com/files/krait_oc_v2.zip (current)
http://www.setcpu.com/files/krait_oc.zip (old)
Finally, it'd be great if we as a community tried to work harder to encourage HTC to hurry up and 1. Release kernel source on time, all the time and 2. NOT cave into carrier pressure and stick to their written bootloader policy! S-OFF would be nice, too. 
Sent from my HTC One S using xda premium
LETS DO THIS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
It also allows you to specify a custom voltage and frequency instead of 1.8GHz
Hehe... I'll test it tonight and undervolt a bit...
Is there any additional modification is needed in order to make it work on One S?
Sent from my HTC One S using xda premium
I tried this on my T-Mobile US One S and the frequency shows up in SetCPU. My Antutu score jumped 500 points, so if it did actually do something it was only an 7-8% gain. Antutu does recognize the cpu as having 1809 MHz. All other benchmarks that I ran have improvements as well.
Also, on step 4, you can locate the thermald process easier by doing the following:
ps | grep thermald
Nice post btw!
Overclocked to 1.8 GHz just now. So far stable. Running Antutu Benchmark right now.
Works - it's here. Now let's see...
Ahhh, and for the guys not on Linux: Copy the thermald.conf to sd card via usb and from there to its destination folder e.g. with root explorer.
Not to be Capt. Obvious here, but is there a point to overclocking the One S?
We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.
This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?
nickmv said:
Not to be Capt. Obvious here, but is there a point to overclocking the One S?
We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.
This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?
Click to expand...
Click to collapse
I think it's purely 'because we can'
Like you said, not really any need to, or tangible benefit in doing so
nickmv said:
Not to be Capt. Obvious here, but is there a point to overclocking the One S?
We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.
This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?
Click to expand...
Click to collapse
IMHO we can benefit from undervolting in manners of battery life. The OC thing is a nice "side effect"
Gesendet von meinem HTC One S mit Tapatalk 2
hi i have tried to do this thing and i have gotten it to over clocked. the only thing i cant seem to find is the thermald thing to kill. all i see in the list ins system/bin/thermald. Is this the one im looking for or not?
I think I'd be more interested in slightly underclocking + altering voltage for a battery life boost
shinkinrui said:
I think I'd be more interested in slightly underclocking + altering voltage for a battery life boost
Click to expand...
Click to collapse
+1... even stock frequencies but with an undervolt possibility
I'm afraid we should wait a bit to get some sources...
Original OP here. You can undervolt more frequency steps with this method too, but you need to modify the sources. Most phones should have a "nominal" chip, but there's also a "fast" spec with lower voltages at each step.
I will write a proper tweakable undervolting driver for the 8960 when sources come out.
coolbho3000 said:
Original OP here. You can undervolt more frequency steps with this method too, but you need to modify the sources. Most phones should have a "nominal" chip, but there's also a "fast" spec with lower voltages at each step.
I will write a proper tweakable undervolting driver for the 8960 when sources come out.
Click to expand...
Click to collapse
As I'm not a dev... Could it be possible to override stock values in this struct, by specifying them manually?
Current one (in the source) :
/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};
Exemple "overriden" one :
/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
[...]
{ 1512000, 1000000 },
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};
Hi, can you add support for the EVO LTE?
kernel version is:
adb shell cat /proc/version
Linux version 3.0.8-01360-g3fd0422 ([email protected]) (gcc version 4.4.3 (GCC) ) #1 S
MP PREEMPT Sat Apr 28 05:10:07 CST 2012
here's a random file in case you still need it.
Correct me if Im wrong but the One S packs a MSM8260A.. No? The 8960 was mainly made for LTE capabilities
mmdl1001 said:
Correct me if Im wrong but the One S packs a MSM8260A.. No? The 8960 was mainly made for LTE capabilities
Click to expand...
Click to collapse
I don't know. My One S is using MSM 8960 and LTE connection is present in my phone as well. May be only Asia version use MSM 8260A?
Sent from my HTC One S using xda premium
plakers said:
As I'm not a dev... Could it be possible to override stock values in this struct, by specifying them manually?
Current one (in the source) :
/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};
Exemple "overriden" one :
/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
[...]
{ 1512000, 1000000 },
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};
Click to expand...
Click to collapse
Well, it may be possible, but modifying that table won't work. The module needs a little modification.
fxzy said:
I don't know. My One S is using MSM 8960 and LTE connection is present in my phone as well. May be only Asia version use MSM 8260A?
Sent from my HTC One S using xda premium
Click to expand...
Click to collapse
In Europe it´s the MSM8260A too with no LTE.
I´m from Spain. !

[PATCH] True Tablet UI (Apps+GUI) w/o DPI Change for Stock & CM10 - Update Oct11 2012

[PATCH] True Tablet UI (Apps+GUI) w/o DPI Change for Stock & CM10 - Update Oct11 2012
Note: I am no longer maintaining releases due to time constraints. If someone would like to pick up the op, please pm me.
Recent Changes
10/11 - Updating CM10 nightly links - see next post
9/6 - Added nighly CM10 builds - see next post
8/1 - Cleaning to OP out a bit
Downloads
If you don't care about all the technical stuff, skip down to post 2 for downloads
Intro
Goal of thread is to share details around how the trigger for Phone UI/Phablet UI/Tablet UI works, and provide a dpi independent patch for tablet ui. Hopefully this also eliminates the misinformation that changing lcd density is the only way to get Tablet UI.
What's "true" tablet UI vs what is called tablet UI in many roms? The Tablet UI actually defines how some apps work (e.g. dual-paned settings like in the screenshots below) vs the other solutions that simply draw the standard Nexus UI with tablet navigation/system bars.
The 'Triggers'
In 4.1.x, there are two files that need to be modified:
PhoneWindowManager.java, located in frameworks/base/policy/src/com/android/internal/policy/impl contains the code that determines which UI to present. During compile this is a part of android.policy.jar
WindowManagerService.java, located in frameworks/base/services/java/com/android/server/wm contains code that specifies the lowest DP settings and has the system select from either sw600 or sw720 presentations. It is a part of services.jar
PhoneWindowManager
Click below for details regarding the source code to edit, and modifications for these releases
The source code calculates a value for shortSizeDP, and compares it to
shortSizeDP < 600 = PhoneUI
601 720
shortSizeDP is calculated as follows:
take the short size of the screen resolution (our screen is 1280x800, so use 800) * DENSITY_DEFAULT (a constant of 160) * LCD Density (ro.sf.lcd_density value in build.prop)
example: on stock: 800 (N7 short resolution) * 160 / 213 (stock lcd_density) = 600.9
since 600.9 > 600 but less than 719, we get Phablet UI
using 170 as ro.sf.lcd_density: 800 * 160 / 170 = 752.9
since 752 > 720 we get Tablet UI
this explains why the threshold on our device is between 177 and 178
original source code:
Code:
// SystemUI (status bar) layout policy
int shortSizeDp = shortSize
* DisplayMetrics.DENSITY_DEFAULT
/ DisplayMetrics.DENSITY_DEVICE;
if (shortSizeDp < 600) {
// 0-599dp: "phone" UI with a separate status & navigation bar
mHasSystemNavBar = false;
mNavigationBarCanMove = true;
} else if (shortSizeDp < 720) {
// 600-719dp: "phone" UI with modifications for larger screens
mHasSystemNavBar = false;
mNavigationBarCanMove = false;
} else {
// 720dp: "tablet" UI with a single combined status & navigation bar
mHasSystemNavBar = true;
mNavigationBarCanMove = false;
}
}
Modification
Given the code above, there should be many programmatic ways to force TabletUI:
Editing the values of 600 or 719, removing the Phablet UI mid section, or just commentting everything out and set mHasSystemNavBar = true; mNavigationBarCanMove = false;...and plenty of other options
Current Alphas are hardcoded to
Code:
mHasSystemNavBar = true;
mNavigationBarCanMove = false;
WindowsManagerService
Click below for details regarding the source code to edit, and modifications for these releases
Changing the values above we enough to try and force the UI to use tablet features, but since the Nexus 7 uses tvdpi (same as google TV when displaying 720p) with a fallback to xhdpi, SystemUI did not contain the requisite framework files (xml and pngs) and was force closing. Further, the sizing was mapped to the sw600 folders, which do not contain any of the tablet pngs/xmls.
Thus, we needed to edit the code that defined what the minimum screen size was to force apps to show in tablet form.
original source code:
Code:
private void computeSizeRangesAndScreenLayout(boolean rotated, int dw, int dh,
float density, Configuration outConfig) {
// We need to determine the smallest width that will occur under normal
// operation. To this, start with the base screen size and compute the
// width under the different possible rotations. We need to un-rotate
// the current screen dimensions before doing this.
int unrotDw, unrotDh;
if (rotated) {
unrotDw = dh;
unrotDh = dw;
} else {
unrotDw = dw;
unrotDh = dh;
}
mSmallestDisplayWidth = 1
Downloads
An now on to the part folks care about, please read the below in full
Credits:
I want to thank +aaronpoweruser, +lithium76, +cdesai for all their help and coding guidance; +Racer Of All for the zips; +the3dman for the Launcher2 fix, +z1gackly and +Nark.GA60 for their help with the CM10 patch, +Rsotbiemrptson for the odexed version
Disclaimer: I am not responsible for damaging your brand new nexus 7. Do not do this if you're not willing to brick it. Usage of the following files can cause a rift in the time-space continuum, the appearance of 20 foot android monsters in your town, turn your first-born into slime, change the gender of your significant other, tsunamis on mars, etc etc etc
Pre-requisites:
1. This is designed for Stock or AOSP JRO03D or Based CM10 (tested on Sep 6 nightly). Many folks are trying other roms that will either not boot or work. Please use the search above for your rom name before posting. Note: My development will focus on a patch to AOSP. I'm more than willing to work with devs on their roms, but the information above should suffice for them to bake the tweaks in however they want to.
2. You SHOULD BE DEODEXED. If you don't know what that means, then you likely aren't - so run a deodexer like mine or do it yourself . Update: Sept 7 - Rsotbiemrptson released a odexed version post 514
3. You MUST WIPE CACHE AND DALVIK. Formatting system and data/factory reset is not needed
READ BEFORE FLASHING List of Issues / Add Bug Reports:
Please report your issue here with all the information above.
https://docs.google.com/spreadsheet/ccc?key=0Aq1C5kjO0c_tdDFrbWVsOF9ROXJOblNFVzFYR29CQkE
Latest Downloads:
10/11 - CM10 Nightly - credits z1gackly and Nark.GA60 post 534
Download: goo.im
8/1 - Alpha 3 for STOCK ROM JRO03D: fixed launcher (patch Launcher2.apk), adds lockscreen rotation (patch framework-res.apk)
Download: Mirror 1 Mirror 2
Alpha3 creates a backup during install, restore using the following script: Mirror 1
Issues Resolved: Patched Launcher has huge borders on bottom/top fixed
Note: these new changes will likely cause compatibility issues with CM/AOKP roms and customized roms. Alpha 1 may be better for you
Reporting Issues:
Many people are not fully reporting problems. If I don't have enough details, then it's very hard or impossible to help.
Please provide:
Rom: (e.g. Stock version JRO03D, JRO03H, j5, etc) - this is found in system/about tablet
Kernel: stock or modified - this is found in system/about tablet (you will know if you modified it)
Issue Description: Exact issue, exact error message, steps to replicate, screenshot (power + vol down at same time) for visual issues. Words like 'many', 'a lot', 'often' are not helpful. If there were a lot of issues then it wouldn't have been released. If you are on another rom/kernel, please verify that any play store issues are not sourced by that rom/kernel combo first without the mod.
Bootloops, Crashes: I *need* a logcat - see my signature
Next Steps:
- Settings toggle (WIP)
- Hybrid UI (stock UI in portratit, tablet in landscape)
Prior Versions:
7/26 - Alpha 2 - thank you +Racer Of All
Download: Mirror 1 Mirror 2
MD5: 1c85cc5fe772f687ce9beaa8dab57130
Issues Resolved: credit the3dman - Stock launcher width is too long due to mods and cause overscan of ~half icon on either side. Use Apex, Nova, Go Launcher.
7/21 - Alpha 1 released - thank you again +Racer Of All
Download: Mirror 1 Mirror 2
MD5: dbf20c71544dc19ac87c5d59a03c6f12
Alpha 1 does make a backup of your original files, if something goes wrong, flash the zip below to restore the files:
Mirror 1 Mirror 2
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I hope someone runs with this. I'm running a tablet ui JB rom on my Fire and love it but I didn't want to screw around with dpi changes on the N7 that make everything smaller and bork the market.
just run the nova launcher
patterone said:
just run the nova launcher
Click to expand...
Click to collapse
Launchers allow homescreen rotation, which is NOT the same as tablet ui.
patterone said:
just run the nova launcher
Click to expand...
Click to collapse
tablet ui is more than just a launcher or rotation...it changes how apps interact with the system, e.g. dual-pane in settings
neilrl79 said:
I hope someone runs with this. I'm running a tablet ui JB rom on my Fire and love it but I didn't want to screw around with dpi changes on the N7 that make everything smaller and bork the market.
Click to expand...
Click to collapse
no clue where you heard it borks the market.. i am running 160 dpi and everything is perfect. 10x better than having a 7 inch galaxy nexus.
oasis9389 said:
no clue where you heard it borks the market.. i am running 160 dpi and everything is perfect. 10x better than having a 7 inch galaxy nexus.
Click to expand...
Click to collapse
Every thread that discusses dpi change to allow tablet ui also has people posting how some apps begin to show as incompatible after the change, that, imo,borks the market.
Would love to have a notification bar like the tablets do, the one they have now is ok, but I like the other one way better. Tried 160 DPI but it did not look good to me.
Holy cow what a stupid way for Google to determine which UI to display. Fixed:
Code:
// SystemUI (status bar) layout policy
if (layoutType == 1) {
mHasSystemNavBar = false;
mNavigationBarCanMove = true;
} else if (layoutType == 2) {
mHasSystemNavBar = false;
mNavigationBarCanMove = false;
} else {
mHasSystemNavBar = true;
mNavigationBarCanMove = false;
}
The alternative would be "screenSize"
Manipulating values, multiplying by meaningless constants and using values that are derivatives of the number that actually matters? Google's code was just stupid. Write the code so developers can tell it what they want, not so it enforces your recommended layout.
guys - kindly keep all lcd_density dpi discussion, complaints and issues to the existing threads in Q&A or general, so this thread can focus on code change development...the whole point of this thread is to offer an alternative to that already...thanks!
qoncept said:
Holy cow what a stupid way for Google to determine which UI to display. Fixed:
Code:
// SystemUI (status bar) layout policy
if (layoutType == 1) {
mHasSystemNavBar = false;
mNavigationBarCanMove = true;
} else if (layoutType == 2) {
mHasSystemNavBar = false;
mNavigationBarCanMove = false;
} else {
mHasSystemNavBar = true;
mNavigationBarCanMove = false;
}
The alternative would be "screenSize"
Manipulating values, multiplying by meaningless constants and using values that are derivatives of the number that actually matters? Google's code was just stupid. Write the code so developers can tell it what they want, not so it enforces your recommended layout.
Click to expand...
Click to collapse
that's the direction i was thinking as well - define a new global variable, and let devs build a toggle to set it into the settings (for user selection) or as a constant (if they just want their rom one way)
Actually, I think it probably makes even more sense to set mHasSystemNavBar and mNavigationBarCanMove independently of each other. This bit of code doesn't need to exist; these variables should be set wherever shortSize was set. So instead of choosing whether you have a tablet or phone, you choose whether you want each option enabled.
Can't wait for this!
Well done sir
If I was to make the change myself, can someone tell me what app(s) to use and just where framework folder is located? It does not seem to be in / using ES File Exp.
Thanks!
neilrl79 said:
Every thread that discusses dpi change to allow tablet ui also has people posting how some apps begin to show as incompatible after the change, that, imo,borks the market.
Click to expand...
Click to collapse
yea and my N7 is a paper weight b/c some guy has a picture of it laying on a magazine.. again i have been running at 160 for a day now with heavy use. i have 0 issues, i have installed all my apps, ran all my apps, all my widgets. i am on 160 you are not.
now i messed wtih 170 and 177.. yes those don't work well.. 160 is not 170 177
---------- Post added at 08:44 PM ---------- Previous post was at 08:41 PM ----------
barrmulio said:
guys - kindly keep all lcd_density dpi discussion, complaints and issues to the existing threads in Q&A or general, so this thread can focus on code change development...the whole point of this thread is to offer an alternative to that already...thanks!
Click to expand...
Click to collapse
sorry just saw this.. carry on with the development.
oasis9389 said:
yea and my N7 is a paper weight b/c some guy has a picture of it laying on a magazine.. again i have been running at 160 for a day now with heavy use. i have 0 issues, i have installed all my apps, ran all my apps, all my widgets. i am on 160 you are not.
now i messed wtih 170 and 177.. yes those don't work well.. 160 is not 170 177
---------- Post added at 08:44 PM ---------- Previous post was at 08:41 PM ----------
sorry just saw this.. carry on with the development.
Click to expand...
Click to collapse
That's freaking awesome for you bro! :good:
That being said, there are people who have had things go wrong after changing DPI to 160. Plenty of threads in General and Q/A detailing this.
bsw11 said:
If I was to make the change myself, can someone tell me what app(s) to use and just where framework folder is located? It does not seem to be in / using ES File Exp.
Click to expand...
Click to collapse
java file edits are made before they are compiled into files our phones/tablets use, there are plenty of great threads out there on building android
Nexcellent said:
That's freaking awesome for you bro! :good:
That being said, there are people who have had things go wrong after changing DPI to 160. Plenty of threads in General and Q/A detailing this.
Click to expand...
Click to collapse
"plenty of threads"
lol lord.. there is one topic on it.. a few posts of issues with people using other than 160. 160 works, end of story.
update on development
my nexus doesn't like the the android.policy.odex that i'm compiling from aosp, even without any changes to any of the files from the repo...it will just stay on the nexus X boot screen (after the Google bootloader) until i copy the original android.policy.odex back and then it finishes booting up within a few seconds
if anyone has succesfully built a mod or otapackage from aosp for grouper (i've been using full_grouper-eng), let me know if there were any special settings for compiling that are needed to get it to boot

[Kernel] Bricked-Kernel Ville - Sense JB

Welcome to the most customizable 1S on xda
Bricked-Kernel 1S (ville)​
Features:
* Based upon HTCs source
* Various other fixes (look @ github)
* Compiled with linaro toolchain
* -O3 optimized
* Snapdragon S4 & CortexA15 optimizations
* Sweep2wake
* 192Mhz min clock
* replaced qcoms hotplug binary with msm_mpdecision (IN-KERNEL, better battery life + performance)
* Extensive sysfs interface for mpdecision with all the tuneables you want (/sys/kernel/msm_mpdecision/)
* replaced the thermald binary with my IN-KERNEL solution. (/sys/kernel/msm_thermal/)
* export krait version to: /sys/kernel/debug/krait_variant
* modified ondemand governor
* Allow OC up to 1,836 Ghz
* Undervolting (faux123)
* Default clocks: 384min & 1512max
Zip features:
* Aroma Installer by amarullz (yes I know, it has a blue tint. I don't care, there are more important things )
* removes governor overrides from the ramdisk
* adds init.d support to your ramdisk (if not already supported)
Check the compare links for the rest ​
Where is tha Changelog???
There will be no more changelogs.
Instead the download pages were outfitted with compare links to github for each download.​
What is sweep2wake?
How to install?
Flash through recovery. #done.​
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://code.google.com/p/bricked/issues/entry
[email protected]
IRC Chat: Freenode IRC #bricked​
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<​
Donor List:​
> Hall of fame <
Thank you very much!​
Source:
​
What is msm_thermal?
Kernel based 3-phase thermal control!
This replaces your /system/bin/thermald binary which is renamed by the installer to thermald_bck.
It will throttle your cpu speed to keep it cool and unleash it if the cpu has cooled down enough. (3 phases: low, mid and high)
Check /sys/kernel/msm_thermal/conf/ for the thermal configuration
allowed_max_high = highest threshold (phase 3)
allowed_max_low = remove the throttling if we cooled down to this (clr_thrshold)
allowed_max_freq = max frequency if throttled (limit)
[...]mid[...] = same as above, just for phase 2
[...]low[...] = Lowest threshold (phase 1)
check_interval_ms = how often shall we check? (sampling rate)
Default: 100ms (=0.1sec)
shutdown_temp = if we reach this shut down the device!
Default: 80°C
If you want to see msm_thermal doing it's job:
Code:
adb shell
cat /proc/kmsg | grep 'thermal'
What is msm_mpdecision?
100% kernel based multi core decision! (should cpu1 be online or not?)
This replaces your /system/bin/mpdecision binary which is renamed by the installer to mpdecision_bck.
Check /sys/kernel/msm_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (70)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = if the screen is off, don't plug in cpu1. Additionally: Unplug all cpus except cpu0 when screen is turned off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 2. (if you set it to 1 and min_cpus to 1 you will basically have a singlecore) Default: 2
idle_freq = a value against that will be checked if a core +/- is requested. (486000)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
Since we can't unplug cpu0 this is '0'.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value (The 1S doesn't have a cpu2, so that is irrelevant)
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
Where the position and function of the number equals the result of the above explained formula.
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot.
Configuration files:
[email protected]:/sys/kernel/msm_mpdecision/conf # ls
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz. To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 1026000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 1026000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/msm_mpdecision/conf/boost_freqs
918000
918000
702000
594000
How does sweep2wake work? Does it keep my phone awake?
Short answer: No.
Long answer:
Sweep2wake works with IRQs (Interrupts).
An interrupt can be best imagined as you doing something, like shopping at the local super market, when someone jumps in front of you and punches you into your family jewels. You will most certainly not just continue shopping.
In technical terms: An Interrupt interrupts the normal operation of a program and executes "special" code instead.
So if you touch your screen, an interrupt is send on which the touch driver reacts. That's it.
Since we have a capacitive touchscreen you also do not need to worry about any pressure onto the screen.
If you want to disable sweep2wake execute this command on your phone (adb shell or directly), you can also add it to an init.d script.
Code:
echo "0" > /sys/android_key/sweep2wake
(echoing "1" activates it, which is the default setting if chosen in aroma)​Recommended governor?
Ondemand.​
Bryans old stuff (ics):
Beastmode Bricked Ville Edition RC5
With 100% real working S2W on the soft keys now with speed improvements thanks again Show!
Mpdecision is now enabled by default and the vsync will need to be toggled manually if you would like it off
http://www.androidfilehost.com/?fid=9390214368362234218
Beastmode Bricked Ville Edition RC5.1
http://www.androidfilehost.com/?fid=9390214368362234425
the above is modded with my stuff mentioned in the changelog
if you want plain jane with just s2w showp's is compiled with linaro 4.7.3 and -O3 as well
and just has s2w currently
show-p1984 said:
Not any more:
https://github.com/showp1984/bricked_ville/commit/737727eb7660cb3bbc0eda93d48a2a8204ff4349
New zImage @ https://github.com/showp1984/bricked_ville/downloads
This will probably be the final version
Bryan likes it.
Click to expand...
Click to collapse
Awesome news.. As of late, the One S is getting good traction.
Nice to see new kernel, great feature list. Looking forward to sweep2wake. Any plans on AOSP jb kernel?
Sent from my HTC One S using xda premium
Zarboz said:
Ville-Z Kernel. BLACKOUT Edition ​
I am here to present the Ville-Z modded kernel source from HTC. I used KLIN1344's base commit (that means before he touched it) With his permission this way it is compatible with your sense 4.1 based roms.
You can find the source here http://github.com/zarboz/Ville-Z.git . If you fix something or feel you improve on my hack please make a pull request.
Here are a few features of the kernel.
​
New I/O schedulers : CFQ, NOOP, Deadline, SIO, VR
New Governors: BrazillianWax, Intellidemand, SavagedZen, InteractiveX, Smartass, SmartassV2, Lagfree, Interactive, Conservative, Userspace, Powersave, Lionheart, Ondemand, Performance,
GPU Overclock 400mhz/500mhz (selectable in installer)
Selectable min freq in installer
Multiple tweaks and modifications to the multitasking and file structuring
Selectable Max Clock: 1.5ghz. 1.7ghz, 1.89ghz, 2.1ghz (it gets kinda warm and high voltages)
Adjustable undervolt in system 800mah-1350mah
S-On Kernel installer THANKS HausX!
KNOWN ISSUES
Using system tuner causes kernel panic please use SetCPU its free on xda
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Here are a few teaser shots
​
Special Thanks to: HausX, ToastCFH, Klin1344, Sbryan12144, Ca1ne, TwistedUmbrella, Mdeejay, Thicklizard, Haykuro
Click to expand...
Click to collapse
Nice work. Good to see more devs here now.
Also, I think maybe we could work on getting a cm/aosp version of this kernel? I compiled a kernel using the 2.31 base a while ago with the cm ramdisk and it booted up fine, only WiFi was broken. The cm kernel still uses the 1.84 base old kernel sources.
Sent from my HTC One S using Tapatalk 2
encho said:
Nice to see new kernel, great feature list. Looking forward to sweep2wake. Any plans on AOSP jb kernel?
Sent from my HTC One S using xda premium
Click to expand...
Click to collapse
That's next after i get sweep2wake mapped out properly
its about 50-60% implimented. I need to figure out the LED control for our new PM8XXX LED and figure out the screen mapping coordinates so that the "sweep" is read from the right spot and also have one more file to implement in the cypress touchscreen driver as well
that's all in the works
the AOSP kernel is coming in the next week or 2 will have the same feature list and should work on ICS and JB AOSP roms
klin1344 said:
Nice work. Good to see more devs here now.
Also, I think maybe we could work on getting a cm/aosp version of this kernel? I compiled a kernel using the 2.31 base a while ago with the cm ramdisk and it booted up fine, only WiFi was broken. The cm kernel still uses the 1.84 base old kernel sources.
Sent from my HTC One S using Tapatalk 2
Click to expand...
Click to collapse
I will look into their source and put my mods in i see from the LTE forums the KGSL driver folder has been updated so I think it shall work just fine
I wanted to get Sweep2Wake working before then but the individual helping me lives in sweden so it's hard to talk to the guy at a decent hour here in colorado
I would say one to two weeks
Really nice to see someone new on these forums
I really hope you stay here and keep working on your Kernel.
How to install this kernel? Over fastboot or with TWRP + dumlock?
Zarboz said:
SOON!!![/COLOR]
Sweep2wake
you tell me
[/size]
[/b]​
Click to expand...
Click to collapse
Because you're taking requests, here's mine : I hope you can fix soft buttons not to register swipe when moving finger from the screen. IMO soft buttons are too close to the screen and in some apps like games and file managers when you scroll all the way down you can press home or back button by accident which will kick you out of the app. Very annoying. Soft buttons should register the touch only if your finger was not on the screen previously.
Sent from my HTC One S using xda premium​
I was just about to install this and I noticed that it says it is for HTC Evo LTE in the aroma installer!
Is this right?? Or, did I download the wrong file?
Also, the on-screen softbuttons do not register touches.
Thanks!
saprydion said:
I was just about to install this and I noticed that it says it is for HTC Evo LTE in the aroma installer!
Is this right?? Or, did I download the wrong file?
Also, the on-screen softbuttons do not register touches.
Thanks!
Click to expand...
Click to collapse
He probably used a Package for an older Project.
Till OP fix this, just use the Volume+/- to navigate thru the Menu
I've jus flash this kernel over fusión rom and stay in 192 and don't switch to 384 like fusión. Drains less battery too.
My request is add 720p to hdmi playback
Enviado desde mi HTC One S usando Tapatalk 2
How to install this kernel?
I could not flash the kernel using the aroma zip installer.
I think xhausx exploit do not work!
Just a suggestion. Wouldn't it be better if you labeled it for Android 4.0.4 instead of Sense 4.1? I, for one, got confused at first and thought you were talking about Jelly Bean (4.1) and hence I edited my first post here.
a description about flashing this kernel with a locked hboot (>xxx.12) would be nice. Should this work with Android 4.0.3?
how to flash this kernel??
The 2 cores works all the time with this kernel, why?
Guys...to flash a kernel flash the zip in TWRP then fastboot it.
Sent from my HTC One S running ViperOneS!

[PATCH]GPU OC 450->544MHz

After playing with GPU voltages and frequencies i noticed that default GPU voltage on my GT-I9505 is way too high for 450MHz operation.
Now i noticed, nobody really published any working GPU-OC (sorry if i missed)..
So, here is the patch:
PLL15 used exclusively for GPU top frequency.
GPU frequency = PLL15 / 2
PLL15 = 27MHz * ( l(least significant bits) + m / n ) [ 27*(0x28+1/3)=1089 ]
Code:
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -6570,8 +6570,8 @@ static void __init reg_init(void)
/* Program PLL15 to 975MHz with ref clk = 27MHz */
configure_sr_pll(&pll15_config, &pll15_regs, 0);
} else if (cpu_is_apq8064ab()) {
- /* Program PLL15 to 900MHZ */
- pll15_config.l = 0x21 | BVAL(31, 7, 0x620);
+ /* Program PLL15 to 1089MHZ */
+ pll15_config.l = 0x28 | BVAL(31, 7, 0x620);
pll15_config.m = 0x1;
pll15_config.n = 0x3;
configure_sr_pll(&pll15_config, &pll15_regs, 0);
I used 544.5 MHz for about a week, playing mostly real racing 3 and NFS:most wanted.
Maximum OC could be much higher.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The score is form Antutu 3D test only.
pushistiky said:
After playing with GPU voltages and frequencies i noticed that default GPU voltage on my GT-I9505 is way too high for 450MHz operation.
Now i noticed, nobody really published any working GPU-OC (sorry if i missed)..
So, here is the patch:
PLL15 used exclusively for GPU top frequency.
GPU frequency = PLL15 / 2
PLL15 = 27MHz * ( l(least significant bits) + m / n ) [ 27*(0x28+1/3)=1089 ]
Code:
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -6570,8 +6570,8 @@ static void __init reg_init(void)
/* Program PLL15 to 975MHz with ref clk = 27MHz */
configure_sr_pll(&pll15_config, &pll15_regs, 0);
} else if (cpu_is_apq8064ab()) {
- /* Program PLL15 to 900MHZ */
- pll15_config.l = 0x21 | BVAL(31, 7, 0x620);
+ /* Program PLL15 to 1089MHZ */
+ pll15_config.l = 0x28 | BVAL(31, 7, 0x620);
pll15_config.m = 0x1;
pll15_config.n = 0x3;
configure_sr_pll(&pll15_config, &pll15_regs, 0);
I used 544.5 MHz for about a week, playing mostly real racing 3 and NFS:most wanted.
Maximum OC could be much higher.
Click to expand...
Click to collapse
how i can use it?
geiti94 said:
how i can use it?
Click to expand...
Click to collapse
Don't take this thread serious! Look at antutu score. Way to low for our device. Some copy post I think
boterkaaseneieren said:
Don't take this thread serious! Look at antutu score. Way to low for our device. Some copy post I think
Click to expand...
Click to collapse
The score is form Antutu 3D test only. At default GPU frequency its ~6600.
boterkaaseneieren said:
Don't take this thread serious! Look at antutu score. Way to low for our device. Some copy post I think
Click to expand...
Click to collapse
You shold really start thinking before you post that non sense things
Lähetetty laitteesta GT-I9505 käyttäen Tapatalk 2:sta
Possible to make a cwm flashable zip?
luuranko3 said:
You shold really start thinking before you post that non sense things
Lähetetty laitteesta GT-I9505 käyttäen Tapatalk 2:sta
Click to expand...
Click to collapse
Yep its not the fist time he postet before he think.
jakemog said:
Possible to make a cwm flashable zip?
Click to expand...
Click to collapse
+1
Chronic kernel can be overclocked To 500mhz
How the hell you can See or change GPU voltage?
hanspampel said:
Yep its not the fist time he postet before he think.
Click to expand...
Click to collapse
Blabla that's what you think.
nadejo said:
Chronic kernel can be overclocked To 500mhz
How the hell you can See or change GPU voltage?
Click to expand...
Click to collapse
I would not bother to create an entire topic if there was a working source code published somewhere (Chronic sources dont change the frequency to 500, it stays 450)...
You can track how much people using this particular patch (or high GPU frequency) at
Triangle throughput: Textured - Offscreen (1080p)
Results of Samsung GT-I9505 Galaxy S4
Multiple entries at the end of the list are mine:
Code:
72 MTriangles/s 8 unregistered androidcommunityuser 2013.06.02
I didn't have any success with changing/programming VRM tables, i just noticed that VDD_DIG_NOMINAL is enough for 450 MHz (instead of VDD_DIG_HIGH).
P.S. Im sorry i answered this off topic nonsense.
Chronic kernel doesnt change PLL15 configuration, and entries for 450 and "500" are exactly the same:
https://github.com/Team-Hydra/android_kernel_samsung_jf/blob/cm-10.1/arch/arm/mach-msm/clock-8960.c
Code:
F_GFX3D(450000000, pll15, 1, 2),
F_GFX3D(500000000, pll15, 1, 2),
GPU OC to 500 Mhtz (450Mhtz default - configurable though 89chronic init script)
I can even overclock it without touching the script. I simply Use trickster mod APP.
And it works for me, no matter screen of or on. The GPU overclocking is almost perfect With its own 2governors.
im right, you're wrong!
nadejo said:
I simply Use trickster mod APP. And it works for me, no matter screen of or on. The GPU overclocking is almost perfect With its own 2governors.
Click to expand...
Click to collapse
No GPU options appear for me with trickster on the stock rom...?
XTCrefugee said:
No GPU options appear for me with trickster on the stock rom...?
Click to expand...
Click to collapse
i talk about chronic kernel for cm10.1 aosp rom. and it works

[DEV][WIP][KERNEL-PATCH][MSM7x30/8x55 GPU OVERCLOCKING][2d-core done][3d-core][v0.7]

Finally after someone pm'd me I looked back into GPU Overclocking.
New thread created issues with old thread OP permissions (people seem to be asking the same questions over and over again all information will be kept in OP & DO READ THE THREAD, repetitive questions will now be ignored)
Benefits:
Smoother UI
Handle 2d & 3d core GPU intensive applications & games
Currently only 2D core has been overclocked working on 3D core OC
2D-core original value - 192mhz OC to 245mhz DONE achieved 25% performance boost grp_2d_clk outputs 245760000hz
3D-core original value - 245mhz OC to 300+mhz WIP hoping to achieve 40-50% performance boost
2D-core OC only Download: http://d-h.st/woG
Download Links for other devices coming soon...
Works for all HTC Sense/Cm9/Cm10 kernels (Just ask a kernel developer for your device to implement the source code)
Note: Don't have internet on PC so providing 3 main files that need replaced for 2D-core OC to work
Download link to source code: http://d-h.st/wbH
3D-CORE OC TESTS Download: http://d-h.st/IbC
Do check under sys/kernel/debug/htc_clock/clks/ look for file with all clocks & look for GRP_clks (Graphics clock)
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.
So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.
(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)
(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)
Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.
Main thread is in Desire HD Android Development section: http://forum.xda-developers.com/showthread.php?t=2368497
Diff Patch:
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index 8e97664..5e9bc2e 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2992,8 +2992,8 @@ static void __init msm7x30_clock_init(void)
clk_set_rate(&mdc_clk.c, 1);
/* Sync the LPA_CODEC clock to MI2S_CODEC_RX */
clk_set_rate(&lpa_codec_clk.c, 1);
- /* Sync the GRP2D clock to AXI */
- clk_set_rate(&grp_2d_clk.c, 1);
+ /* Set rate of 2D-core GPU Clock @245Mhz (OC of 53Mhz 25% perf boost by Shaky156) */
+ clk_set_rate(&grp_2d_clk.c, 245760000);
}
struct clock_init_data msm7x30_clock_init_data __initdata = {
diff --git a/arch/arm/mach-msm/devices-msm7x30.c b/arch/arm/mach-msm/devices-msm7x30.c
index d52db55..f428e57 100644
--- a/arch/arm/mach-msm/devices-msm7x30.c
+++ b/arch/arm/mach-msm/devices-msm7x30.c
@@ -1319,11 +1319,7 @@ struct resource kgsl_3d0_resources[] = {
static struct kgsl_device_platform_data kgsl_3d0_pdata = {
.pwrlevel = {
{
- .gpu_freq = 364800000,
- .bus_freq = 249600000,
- },
- {
- .gpu_freq = 245760000,
+ .gpu_freq = 245760000, /*Restore correct GPU frequency and bus frequency (Shaky156)*/
.bus_freq = 192000000,
},
{
@@ -1336,7 +1332,7 @@ static struct kgsl_device_platform_data kgsl_3d0_pdata = {
},
},
.init_level = 0,
- .num_levels = 4,
+ .num_levels = 3,
.set_grp_async = set_grp3d_async,
.idle_timeout = HZ/20,
.nap_allowed = true,
@@ -1372,14 +1368,13 @@ static struct resource kgsl_2d0_resources[] = {
static struct kgsl_device_platform_data kgsl_2d0_pdata = {
.pwrlevel = {
{
- .gpu_freq = 0,
+ .gpu_freq = 245760000, //Set 2D-core GPU Frequency @245mhz (Shaky156)
.bus_freq = 192000000,
},
},
.init_level = 0,
.num_levels = 1,
- /* HW workaround, run Z180 SYNC @ 192 MHZ */
- .set_grp_async = NULL,
+ .set_grp_async = set_grp2d_async, //Set the 2D-core Graphics Clock Asynchronous to the AXI clock (Shaky156)
.idle_timeout = HZ/10,
.nap_allowed = true,
.clk_map = KGSL_CLK_CORE | KGSL_CLK_IFACE,
diff --git a/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c b/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c
index e81b025..b8686c0 100644
--- a/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c
+++ b/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c
@@ -488,10 +488,8 @@ int kgsl_pwrctrl_init(struct kgsl_device *device)
pwr->pwrlevels.io_fraction =
pdata->pwrlevel.io_fraction;
}
- /* Do not set_rate for targets in sync with AXI */
- if (pwr->pwrlevels[0].gpu_freq > 0)
- clk_set_rate(pwr->grp_clks[0], pwr->
- pwrlevels[pwr->num_pwrlevels - 1].gpu_freq);
+
+ /*Removed AXI Sync code (Shaky156)*/
pwr->gpu_reg = regulator_get(NULL, pwr->regulator_name);
if (IS_ERR(pwr->gpu_reg))
Please anyone can benchmark it?
cant wait for your commit!
Here is Benchmark from AnTuTu Benchmark v3.3.2
Rom: SVHD v1.7.3
With Shaky Kernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
With PachaRS v2.9 Kernel
mygamers said:
Here is Benchmark from AnTuTu Benchmark v3.3.2
Rom: SVHD v1.7.3
With Shaky Kernel
With PachaRS v2.9 Kernel
Click to expand...
Click to collapse
I get 509 (2d) and 1774(3d) stock cpu, stock gpu (with SmartASSv2 governor) and SIO as I/O scheduler(performance get a bit better when CFQ is in use).
We are talking about Sense rom? ..I'm wondering why the "Overclocked" versions get lower score than me
P.S. I can provide pictures if someone want some proof(I'm just lazy that's why I didn't to it already hahaahhaah)
XxXPachaXxX said:
Please anyone can benchmark it?
cant wait for your commit!
Click to expand...
Click to collapse
please see below...
mygamers said:
Here is Benchmark from AnTuTu Benchmark v3.3.2
Rom: SVHD v1.7.3
With Shaky Kernel
With PachaRS v2.9 Kernel
Click to expand...
Click to collapse
Hi, if you have used the last few kernel releases they shouldnt be benchmarked as I am working on 3d-core GPUOC, which fails to set above 245mhz resulting in both 2d/3d core running @192mhz which is underclocked afaik, once 3d-core gpu is achieved then you can benchmark.
Previous kernel where a user benchmarked in previous gpu thread only 2d-core was overclocked benchmark went from 400 range to 500 range, consider I overclocked by 50mhz thats roughly 1/4 of 192mhz, benchmark score is accurate as its performance improved by 1/4 of total previous 2d-core gpu score
and 2d core clk outputs 245mhz which is basically saying its overclocked
so with 2d-core OC results will be higher, working on 3d-core overclock which will make benchmark go even more higher
now onto 3d-core gpu
OP updated with correct link for 2D-CORE GPU ONLY
current 3d-core gpu states this within log:
<3>[ 404.075866] [CLK] clk_set_rate: failed to set clk: GRP_3D_CLK, rate=256000000, flags=0x200, rc=-22
<3>[ 404.379058] [CLK] clk_set_rate: failed to set clk: GRP_3D_CLK, rate=256000000, flags=0x200, rc=-22
<3>[ 404.527404] [CLK] clk_set_rate: failed to set clk: GRP_3D_CLK, rate=256000000, flags=0x200, rc=-22
<3>[ 404.910766] [CLK] clk_set_rate: failed to set clk: GRP_3D_CLK, rate=256000000, flags=0x200, rc=-22
I have a fix soon
evronetwork said:
I get 509 (2d) and 1774(3d) stock cpu, stock gpu (with SmartASSv2 governor) and SIO as I/O scheduler(performance get a bit better when CFQ is in use).
We are talking about Sense rom? ..I'm wondering why the "Overclocked" versions get lower score than me
P.S. I can provide pictures if someone want some proof(I'm just lazy that's why I didn't to it already hahaahhaah)
Click to expand...
Click to collapse
see my answer above
to double check flash 2d-core GPUOC then benchmark & check under sys/kernel/debug/clks/grp_2d_clk
My result
Rom: SVHD v1.7.3
Pacha-Kernel 2.9
2D-core OC only
before I can continue any further I need someone to get me the value of grp_3d_src_clk from 3dgpuoc test I can then drop a fixed 3d GPUOC
if someone cannot provide that value then I cannot OC 3dcore gpu
i can't find nor grp_3d_src_clk nor the file with all clks listed
Going to flash your kernel to help out. Do you want both Logcat and DSMG?
Is the main problem that 3d OC can't be set on boot?I used to flash it and after rebooting the benchmark fell from 18xx to 17xx(but still higher than that before flashing).I guess if it can be applied by init.d scripts .Thanks a lot for your aaaaaaaaaamazing work!
forzaferrari0 said:
i can't find nor grp_3d_src_clk nor the file with all clks listed
Click to expand...
Click to collapse
I'll see if I can temporarily get my hands on a Desire HD for this
EDIT: no access to device
hacktrix2006 said:
Going to flash your kernel to help out. Do you want both Logcat and DSMG?
Click to expand...
Click to collapse
no log or dmesg just the value under the grp_3d_src_clk (should be a folder with values in there)
sys/kernel/debug/clk/grp_3d_src_clk/
i found this:ebi_grp_3d_clk,
his value switch continuously from 0 to 192000000
with pacha kernel is firmly 0
forzaferrari0 said:
i found this:ebi_grp_3d_clk,
his value switch continuously from 0 to 192000000
with pacha kernel is firmly 0
Click to expand...
Click to collapse
nope only grp_3d_src_clk
OK Shaky156 will do just thought i ask first before hand as sometimes logcat and dmsg can be handy to have.
hacktrix2006 said:
Going to flash your kernel to help out. Do you want both Logcat and DSMG?
Click to expand...
Click to collapse
edit: He replied.Deleted.

Categories

Resources