yashsingh1/xdaforums huggingface dataset:
[Oppo Find 5] paperWastage:
Changelog

v0.0.2-experimental-cm-10.1 - 2013-6-1

Changelog:
Basically, this contains all the changes made, merged into the CM10.1 kernel source (commit c02191a5db58bd9f69d2f5d3e239ea9ea64b7345 on May 1)

Compatibility: should work with any CM-10.1-based ROM (eg PAC, PA...)

[url=http://d-h.st/oxl]Download[/url] | [url=http://files.ngvincent.com/android/oppo-find-5/kernel/boot.0.0.2.cm-10.1.img]Mirror[/url]

v0.0.3-experimental - 2013-4-8

Changelog:
- Merged 2 commits from Qualcomm to fix msm_hsic_host wakelocks issue
- https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=41d004c4eaa5565cb8d9113862c3cef1e51be648
- https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=6f199aa800253a69e5679d1057823039f1bd65c9[/SIZE]

DO NOT USE v0.0.3 - Read This ... if you still really really really want those changes, linky

[*]v0.0.2-experimental - 2013-3-17

Changelog:
- Merged voltage control from "faux123":[url]https://github.com/faux123/mako/tree/jb_mr1.1_exp[/url]
--- min 800000 mV, max 1350000 mV
(use any CPU undervolting app to undervolt)

Compatibility: should work with any stock Oppo rom

[url=http://d-h.st/8gE]Download[/url] | [url=http://files.ngvincent.com/android/oppo-find-5/kernel/boot.0.0.2.img]Mirror[/url]
Version String: Linux version 3.4.0-perf-g94395fc (tte@tte) [url=https://github.com/ngvincent/android-kernel-oppo-find5/tree/v0.0.2]Github tag v0.0.2[/url]

[*]v0.0.1-experimental - 2013-3-16

Changelog:
- Merged Intellidemand governor from "faux123":[url]https://github.com/faux123/mako/tree/jb_mr1.1_exp[/url]
(use any CPU controller app to change your governor)

Compatibility: should work with any stock Oppo rom

[url=http://d-h.st/75o]Download[/url] | [url=http://files.ngvincent.com/android/oppo-find-5/kernel/boot.0.0.1.img]Mirror[/url]
Version String: Linux version 3.4.0-perf-g7850320 (tte@tte) [url=https://github.com/ngvincent/android-kernel-oppo-find5/tree/v0.0.1]Github tag v0.0.1[/url]
[Oppo Find 5] paperWastage:
List of bugs/new features requested

Tracker

Want to build the kernel from scratch?

http://xdaforums.com/showthread.php?t=2192805
[Oppo Find 5] drvsbsm:
I posted this in you other thread I think I should erase and keep it here, I don't know if this will help you out at all but it looks like some good information to have.

Nice it looks like development is off to a great start! I also have the Droid DNA which is the same S4Pro CPU/GPU, the kernel I'm running on the DNA has the following options. The lowest setting for underclocking is down to 192MHz and has enabled overclock at 1.9GHz. Force GPU render for 3d @ 500mhz / 450mhz and 2d @ 300mhz. I have been using this kernel on my Droid Dna and it runs really fast and battery last all day.

Here is a link to some information that might be useful to you as I don't understand all of it myself http://xdaforums.com/showthread.php?t=2021714
[Oppo Find 5] CoopZor:
Anyone who tried this new kernel?

I'm hoping to have my oppo next week.

Where are the Rom`s ? It's so quiet here@xda

Verstuurd van mijn GT-N7000 met Tapatalk
[Oppo Find 5] paperWastage:
Now - Voltage Control...

Next step - Gamma Control
[Oppo Find 5] Entropy512:
Underclocking to 192 MHz is pointless on a device with properly working cpuidle unless you can reduce voltage significantly compared to 384.

In fact due to the nature of how cpuidle works, 192 can actually consume more power, because it's better to have the CPU in a deeper idle state.

There's an old but still relevant and good paper on it from IBM... Look through Ezekeel's posts back around late 2011 and you'll probably find the link.

Slight possibility that I might get a Find5 to do a CM bringup, but highly unlikely at this point. I'm not a big fan of GPL noncompliance. (The fact that it took over a month to release is a bad sign. The fact that it required work to get it to even compile is a worse sign - who knows where else the source does not match the released binaries???)
[Oppo Find 5] paperWastage:
well, they had 2 configs: 12025_debug_defconfig and 12025_release_defconfig

debug version compiled fine, release version didn't compile properly

from the logs and the flags, it looks like the device is running the debug version (debug version has the CONFIG_OPPO_DEBUG_ASSERT=y, and those debug statements show in the kernel logs)

that saying, I didn't like their 1 month wait either

EDIT: able to expose gamma to sysfs interface. However, I have disabled modifying the value for now (Nexus 4 uses a checksum to ensure the values don't exceed a certain range. I don't know the range for our devices yet)

I have emailed faux123 to update his FauxClock app to support our gamma function calls at /sys/devices/platform/mipi_orise.2049

https://github.com/ngvincent/androi...mmit/7daced3bd8491ed26b7e7b0c0b8fd743e3acc18f
[Oppo Find 5] Entropy512:
Are you sure those are even gamma values you're tweaking? I don't think those commands are particularly standardized... (e.g. they're display-specific)
[Oppo Find 5] paperWastage:
https://github.com/ngvincent/androi...e3acc18f/drivers/video/msm/mipi_orise_1080p.c

#lines 155 onwards

they look like gamma values for r,g,b (could be gamma + something else)... nexus 4 has 10 values in array, oppo has 25 in array

probably should contact oppo / the LCD manufacture and get the specs on these... for the Nexus 4, faux123 added a checksum calculation to ensure it doesn't go too far and destroy the display itself

list of hardware that I'm still updating Device Hardware Documentation

EDIT: both the Xperia Z and Nexus 4 have two sets of 15-digit numbers for r,g,b - one is for positive, one is for negative

For oppo, I assume the sole set of 25-digit numbers for r,g,b contains both positive and negative

Xperia has 4 different display panels. don't know what oppo has... of course, oppo has the Orise 1080p panel driver, but the panel itself?

Xperia Z:
mipi_dsi_panel_r63306_tmd_mdw30.o
mipi_dsi_panel_r63306_sharp_ls043k3sx04.o
mipi_dsi_panel_r63311_sharp_ls050t3sx01.o
mipi_dsi_panel_r63311_jdc_mdy70.o

EDIT2: most likely a toshia WUXGA or CHIMEI_WUXGA display... only ones that are 1080p

select FB_MSM_MIPI_TOSHIBA_VIDEO_WVGA_PT
select FB_MSM_MIPI_TOSHIBA_VIDEO_WSVGA_PT
select FB_MSM_MIPI_TOSHIBA_VIDEO_WUXGA
select FB_MSM_MIPI_RENESAS_VIDEO_FWVGA_PT
select FB_MSM_MIPI_RENESAS_CMD_FWVGA_PT
select FB_MSM_MIPI_TRULY_VIDEO_WVGA_PT
select FB_MSM_MIPI_NOVATEK_VIDEO_QHD_PT
select FB_MSM_MIPI_NOVATEK_CMD_QHD_PT
select FB_MSM_MIPI_NT35510_VIDEO_WVGA_PT
select FB_MSM_MIPI_NT35510_CMD_WVGA_PT
select FB_MSM_MIPI_ORISE_VIDEO_720P_PT
select FB_MSM_MIPI_ORISE_CMD_720P_PT
select FB_MSM_MIPI_NT35516_VIDEO_QHD_PT
select FB_MSM_MIPI_NT35516_CMD_QHD_PT
select FB_MSM_MIPI_SIMULATOR_VIDEO
select FB_MSM_MIPI_CHIMEI_WXGA
select FB_MSM_MIPI_CHIMEI_WUXGA

and one of these orise drivers

OTC3202A	3.3V	90	LVDSX2	RSDS	WUXGA	-	-	V	16.7M	-	TQFP64
OTC3203A	2.3V ~ 3.6V	90	LVDSX2	RSDS	WUXGA	-	-	V	16.7M	-	TQFP100

need to do some debugging tomorrow
[Oppo Find 5] paperWastage:
static char gamma_B[25] = {
0xc9,
0x00,
0x0B,
0x12,
0x1B,
0x28,
0x42,
0x37,
0x4D,
0x5E,
0x6B,
0x71,
0x7F,
0x00,
0x0B,
0x12,
0x1B,
0x28,
0x42,
0x37,
0x4D,
0x5E,
0x6B,
0x71,
0x7F
};

index 0 - dunno

index 1 to 12 - "Set of gamma values"

index 13 to 24 - repeated "Set of gamma values"

would want to look at how orise implemented their mipi interface, but it's costly http://www.mipi.org/join-mipi/membership-model

need to dig it up somewhere else... someone want to help me search/contact oppo/orise and find out?
[Oppo Find 5] Entropy512:
c9 might be some sort of a command ID - look to see how it relates to the R/G values, and look at the mako defaults
[Oppo Find 5] paperWastage:
the first value is definitely the command ID... now, why does the oppo display have 12 gamma values?

the nexus 4 - looking at the LG datasheet from my other thread http://xdaforums.com/showthread.php?t=2196986

first 3 values are for fine-adjustment register

next value is for gradient-adjustment register

next 2 values are for amplitude-adjustment register

next 2 values are for fine adjustment register bits

last value is also for fine adjustment register bits

that pdf contains algorithms for the gamma correction function

why does the oppo display have more values? unused? or more functions to control gamma
[Oppo Find 5] Entropy512:
Probably just because it is a completely different display... Every display has its own way of getting calibrated - AMOLED displays are an entirely different beast for example.
[Oppo Find 5] juanjo7812:
I've installed your kernel and is working very well. But, undervolt control only works with faix123 app, others app don't show undervolt controls.
[Oppo Find 5] paperWastage:
undervolt shows up in SYstem Tuner and Cpu Tweaker (both free, by the same developer)

For some reason, inside System Tuner, when you do -12.5mV for all, the 384mhz value doesn't move... but it moves properly when you do -12.mV for all inside CPU Tweaker

maybe reinstall those apps? I'll see if I can hunt down why it doesn't work properly
[Oppo Find 5] Allanitomwesh:
Are there battery life tweaks in this kernel,paperwastage?
[Oppo Find 5] paperWastage:
undervolting and the Intellidemand governor should help you save some battery

I'm looking into limiting CPU Freq during sleep... but I've been busy the past few weeks

let me know if you see any features (in other devices' ROMs/Kernels) that you want me to port... shouldn't be hard, just takes time
[Oppo Find 5] Allanitomwesh:
Okay,will do. It can underclock the CPU if I wanted right? With SetCPU or something,to like 1.2?

Found a nice feature list

http://xdaforums.com/showthread.php?t=2008222
[Oppo Find 5] Entropy512:
In theory, yes. In practice - SetCPU only changes limits/governor of the first CPU in the system. It does not work well on asynchronously clocked multicore devices (e.g. Qualcomm Kraits). It works fine on synchronously clocked multicore (pretty much everything else).
[Oppo Find 5] Allanitomwesh:
Entropy512 thanks,it gets really complex sometimes, feels like a science class. Any way to get around the "only one core" issue? Also, will you help out with Cyanogenmod? It's an alpha now :) I think with a big 2500mAh and devs like you this phone can be the best.
[Oppo Find 5] Entropy512:
I'll be working with 2-3 others on doing a CM bringup. We'll be starting from scratch (because something that was blind-developed by someone that doesn't even own the device is almost surely going to be broken) and almost surely just skipping straight to 10.1.

Blind-developed ports shouldn't even be allowed to be posted here in my opinion, they're guaranteed to be bad. The only exception is in a few rare cases where one device is 99% identical to another (such as Xperia TX - which is 99% identical to the T.)
[Oppo Find 5] Allanitomwesh:
That's great!And drew got the phone so it's 4 :)

Much appreciated that you took an interest in the underdog. :D
[Oppo Find 5] richie390:
Awesome man!! I can't wait!
[Oppo Find 5] drvsbsm:
I already used all my thanks up but I owe you a lot of them for going out of the way and doing something different. I do have a question for you I have been trying to figure out for awhile now.

I really don't now much about firmwares and how to create one, but I'm trying to learn how right now, I don't really know where to start without any help. So this is basically the same firmware we got now in out Oppo Find 5, the NEW Krait 300 Snapdragon CPU. So why cant we do like my Droid DNA and crank it up to 1.9GHZ and add all the other governors. I really want an overclocked kernel but is it really that big of a task to crate one I see them on almost every forum?

NEW Krait 300 Snapdragon CPUs www.anandtech.com

In usual Qualcomm fashion, we're missing good depth on exactly what these new revisions deliver. This is one area where Qualcomm really needs to emulate Intel: we know more about Haswell than we do about the original Krait.

That being said, here's what we do know. Krait 300 is still built on TSMC's 28nm LP process, just like the original Krait. The pipeline remains unchanged, but Qualcomm is able to squeeze out higher clocks out of the core. It's unclear whether we're simply talking about voltage scaling or a combination of that and improvements to timing, yields and layout. Whereas the current Krait core tops out at around 1.5GHz, Krait 300 will run at up to 1.9GHz.
[Oppo Find 5] paperWastage:
at work now, will reply with more details later tonight..

I have added teh intellidemand governor.... i've made changes for overclocking, but haven't enabled them in the build config

but basically, the gist of it is

a) look at other people's code changes/commits for other devices, port them over

b) look at datasheets, figure out what to change

if you have time, take a look more at (a) (by reading other people's commits) and (b)

http://xdaforums.com/showthread.php?t=1856327

if you find a working link to that pdf treasure trove, PM me (i'll put up mirrors)
[Oppo Find 5] Entropy512:
It's probably partly production/yield improvements, and possibly also improvements to the "support components" outside of the core - caches, power management, etc.

Just cranking clock to 1.9 GHz won't magically make an older chip a Krait 300... After all, there are clear optimizations/changes since the Krait 300 can deliver higher performance at a given clock rate than the original Krait.

Overclocking is pointless on modern devices and in fact frequently counterproductive - it means you'll hit the thermal limits faster.

Also, most alternative governors are all marketing and little substance. If it's got a stupid name like "smartass" or "lulzactive" or has an "x" at the end, you should probably avoid it.

The worst example was Lionheart - It was merely conservative with one small performance patch (which had been used by multiple people for 1-2 years at that point) and somewhat different defaults (which can all be changed just by altering them, no need to change governor!). But when Lionheart was big - users were all like "conservative sucks! it delivers poor performance" and "Lionheart is AWESOME!" even though they were the EXACT SAME GOVERNOR. Placebo effect is a powerful thing in terms of altering perception here on XDA.

Just like all the people that are "omg my boot time is so much better" after pulling in those SHA patches to a kernel, because those patches had a significant effect on ChromeOS. Seriously... read the patch. Think. It's ChromeOS, not Android. ChromeOS does a full verification of the /system partition for integrity on initial boot, Android does not. Are the SHA patches a good thing to have? Yup, probably - but don't expect significant improvement from them on current Android devices. (And probably not future ones either, not with manufacturers committing epic bloat like 2.3GB of system partition contents in the GS4...)
[Oppo Find 5] Allanitomwesh:
I actually think 1.2 is a pretty good speed for the CPU,what does Qualcomm recommend for S4 Pro? Is underclocking covered when overclocking is added?
[Oppo Find 5] paperWastage:
you mean undervolting? (i.e. applying less voltage at that particular frequency, so that less heat will be emitted and saves battery)

underclocking to 184mhz is probably useless (the amount of work done @ 384mhz vs power consumed, is probably better than power done @ 150mhz vs power consumed)

I'll build a version that has overclocking once I get home tonight

anyways, typically a higher clock core is typically better than 2 mediocore clocked cores at the same power(unless you have a lot of multithreading work to do, or the power consumption scales wildly when you go past a certain point)
[Oppo Find 5] knite75:
Hi PaperWastage,

Thank you for the kernel. I use it to undervolt, and my battery life has increased greatly.

There's a wakelock patch from Qualcomm. Can you apply that patch to your kernel?

Many thanks
[Oppo Find 5] paperWastage:
link?
[Oppo Find 5] knite75:
Hi. Does this link help?

https://github.com/CyanogenMod/lge-kernel-mako/pull/1

---------- Post added at 11:07 PM ---------- Previous post was at 10:22 PM ----------

Here's the msm_hsic_host draining the battery
[Oppo Find 5] osmosizzz:
I'm in need of flashing. I'm going to flash this kernel and under volt the CPU to keep it cooler and see if battery life increases too. Is there some modification that you can do that activates cores based on load. Like when screen off, one corr runs. Screen on and have one core running until it hits 1.5ghz then the second automatically turns. When core 0 and 1 hit 1.5ghz then core 2 turns on and so on. Is that possible? That would be awesome
[Oppo Find 5] paperWastage:
as Entropy512 says, it's a little more complicated for qualcomm kraits... I can probably find some other people's patches or code my own fix, but don't have that much time to look at code right now

EDIT:

pushed those two commits to my github, released v0.0.3

let's see if wakelocks problem get better
[Oppo Find 5] knite75:
Oh my gosh, thank you so much PaperWastage :)

How come you don't have the "Donate to Me" button like the other developers?

I, and I'm sure, many other, would like to buy you a beer!
[Oppo Find 5] Entropy512:
I strongly suggest you revert them now. Look at the evidence:

1) It was done as a pull request on github. As the automated message says, that's not how CM takes submissions, and is a sign the submitter didn't quite know what they were doing.

2) If you look at the history of the mako kernel, you will see that a variant of those patches was merged in - and then reverted within four days. Hell, the revert is still on the first page of commits.

The patches are BROKEN and cause frequent HSIC interface failures - which causes the device to be unable to talk to the modem - which causes you to completely lose the RIL.

You know how a user can PROPERLY fix msm_hsic_host wakelocks? Find out what app is eating your data and fix THAT. Seriously, the HSIC wakelock power consumption is negligible compared to the radio power consumption involved in transferring data, which will occur no matter what you do about the HSIC wakelocks.
[Oppo Find 5] Allanitomwesh:
sounds terrible

how is cyanogen coming along?
[Oppo Find 5] Entropy512:
We made some progress in separating out "stuff we need" from "stuff that's pointless" (such as some factory test mode cruft) in the parts of Oppo's code that is proving hardest to merge.

Doing it right will take a decent amount of groundwork and analysis of Oppo's diffs from CAF. We've already got touchscreen, display, and boardfiles merged up to CAF's jb_2.5 branch, along with some other misc stuff. https://github.com/Entropy512/kernel_find5_reference/commits/jb_2.5_merge - However, the battery stuff is going to require some pretty significant rework. Oppo made MAJOR changes that don't apply cleanly to CAF jb_2.5, so the stuff needs to be manually merged in.

Sound also needs rework, I botched the merge on that one.

Also, there was some recent discoveries over on d2 that require part of the approach to be rethought - qcom's latest Adreno blobs have some issues.
[Oppo Find 5] Allanitomwesh:
Sounds great,can't wait! Nothing you can't handle, your the man! Thanks for helping out the other devs too,everybody is happy that way.
[Oppo Find 5] paperWastage:
hmmm.... removed it for now...

and this is why I don't accept money... I'm still learning the android kernel and simply applying other people's changes... none of my work is really original or innovative, and I don't accept money for that (plus, I'm not hurting for money, though my time is valuable)

You'll notice that I'm documenting a lot of what I'm doing -- I like information sharing, and this helps other people get started (whether it'll be building kernel from scratch, or wondering what code changes activate a certain feature so that they can be ported easily to other devices)

if you really really really really would want to buy me a beer, donate that beer money to people like faux who knows what he's doing (or buy his fauxclock app if you want something out of the donation), or EFF (and let me know, so that I know people are appreciating the time I'm putting in)
[Oppo Find 5] klin1344:
Speaking of d2, do you know exactly what issues the adreno blobs caused for the d2? Because the new QDevNet blobs on my d2tmo work fine. I'm just scratching my head and searching for why steve reverted the commit.
[Oppo Find 5] Entropy512:
I don't have a link to the video demo right now (it was in CM's IRC), but in certain cases, very old frames would randomly show up.

There was a video demo of an e-Reader app, where the user would flip the page, see the flip animation, and then suddenly the previous page would show. If he flipped again, it would switch from the "old" frame to the "current" page, animate to the "next", then start displaying the "old" page again.

I'm over on the yuga (Xperia Z) for a few evenings trying a new approach to fixing camera. If it works, it'll save a LOT of time for CM10.1 bringup on find5.
[Oppo Find 5] CoopZor:
Would be great if we could flash this kernel as a zip in cwm ?
[Oppo Find 5] paperWastage:
quick answer: no, because I want people to be familiar with fastboot, so they know how to reset to stock bootloader if things go wrong

long answer: maybe... need to look up how to create flashable zip (should be easy)
[Oppo Find 5] Entropy512:
Since the device has independent recovery, it SHOULD be OK to have CWM-flashable kernels. In some ways it could be better, as the user needs fastboot to flash custom recovery, and is then guaranteed to have a fully functional recovery.

Hardest part of a CWM-flashable kernel is making sure you flash to the correct partition.