FORUMS
Remove All Ads from XDA

 View Poll Results: Which hotplug driver do you prefer?

show-p1984's MPDecision (kernel based mpdecision)
 
23 Vote(s)
20.91%
faux123's intelli-plug
 
60 Vote(s)
54.55%
Qualcomm's MPDecision
 
27 Vote(s)
24.55%

[KERNEL] [GPL] [OTG] [Linaro] [-Ofast] [HOLOYOLO] [17 May 13] Community Kernel

911 posts
Thanks Meter: 687
 
By jassycliq, Senior Member on 2nd May 2013, 05:27 AM
Post Reply Email Thread
GOAL
The goal of this kernel is to have a central place for developers in the community, who don't want the burden to maintain their own kernel, to have a place to do so. Many times, developers who work on these devices constantly develop issues with others or don't have time to incorporate new features. Our goal is to avoid all that. Anything and everything will be accepted, granted it doesn't break anything. @show-p1984 has been kind enough to not only host the source but grant the use of his buildbot for this project. Every time source is pushed, the bot will start to build the kernel, zip up the package and finally upload it to my goo.im account. If you'd like to become part of this project then go ahead and reach out to me on twitter (@jassycliq) or PM me on here. My short term goal for this kernel is to add all the hotplug drivers available for mako and incorporate them into this one kernel. As it stands we can only use Qcom's binary, show's mpdecision and faux123's intelli-plug as they have switches to turn them off. These can be changed on the fly, as long as the user turns off all the hotplug drivers first then turns on the desired hotplug method. I'd also like to have an app that can control this, well a proper application to be exact.

Features
* CPU OC up to 1.9ghz, Default to 1.5GHz
* CPU UC down to 162mhz
* UV down to 600,000uVolts
* Intelli-plug hotplug driver
* Qualcomm's MPDecision
* MSM MPDecision (kernel based mpdecision)
* Dynamic FSync
* Sweep2Wake
* Snapdragon S4 and Krait optimizations
* 3-Phase Thermal
* GPU OC up to 487mhz
* Faux's Gamma Interface
* Faux Sound/Speaker Control
* Fast Charge
* Schedulers
FIOPS
SIO
NOOP
ROW
CFQ
DEADLINE (tuned for flash devices)
* Governors:
DanceDance
Interactive
Ondemand
Performance
* Advance TCP Congestion Control
Westood+
Reno
Bic
Cubic
Htcp
Veno
* Compiled with gcc 4.7.3 (Linaro 4.7-2013.04)
* -Ofast optimized
* WLAN, TUN and CIFS compiled as modules due to size of kernel from the high amounts of optimizations
* OTG support
* Too much to write!

Choosing between the 3 hotplug drivers
This kernel comes with 3 hotplug drivers (intelli-plug, qcoms mpdecision and kernel based mpdecision) by default only Qualcomm's MPDecision is used. To turn one of the others you must use their respective sysfs interfaces after turning off the one's you're not using. To make it easier for you, I have included a small little application that helps you turn through this. If you'd like to make an init.d script to choose which one you want on boot then use the following commands

For kernel based mpdecision
Code:
echo "0/1" > /sys/kernel/msm_mpdecision/conf/enabled
echo "0/1" > /sys/kernel/msm_mpdecision/conf/scroff_single_core
For Intelli-Plug
Code:
echo "0/1" > /sys/module/intelli_plug/parameters/intelli_plug_active
echo "0/1" > /sys/module/intelli_plug/parameters/eco_mode_active
For Qualcomm's MPDecision
Code:
start mpdecision
stop mpdecision
Downloads
http://goo.im/devs/jassycliq/mako

Why do I have no WLAN?

Due to this kernels very high optimization settings it is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort = userinit (init.d) support.

The zip adds init.d support to your ramdisk, if that fails for some reason the wlan module cannot be inserted.

if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14701 0 - Live 0x00000000
cifs 275399 0 - Live 0x00000000
wlan 2964650 0 - Live 0x00000000 (C)
Then init.d support is probably missing.
You can test it by going to /system/etc/init.d/ and executing 00wlan.
Code:
adb shell
su
. /system/etc/init.d/00wlan
Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show wlan, you can execute 01cifs and 02tun too).
If WLAN now works, init.d support is missing.

You need to have busybox installed in order to be able to get init.d support going, this shouldn't be a problem for most people, since it is usually installed when rooting your phone anyway.
It does not matter if busybox is installed in /system/bin or /system/xbin, my script will detect the location upon flashing and patch the ramdisk accordingly.
If no busybox is found, the script will add init.d support to your ramdisk with the default location: /system/xbin/busybox. All you need to do is install busybox there and reboot your phone.
The Following 36 Users Say Thank You to jassycliq For This Useful Post: [ View ] Gift jassycliq Ad-Free
2nd May 2013, 05:30 AM |#2  
OP Senior Member
Flag Los Angeles
Thanks Meter: 687
 
More
Changelog:
8 May 2013
Code:
4c59771 defconfig: Update defconfig.
596b56b cpufreq: Add smartmax. Let's test this, see how it does.
1cb9bb0 msm: cpufreq: Always update frequency limits when core is online
d822b01 msm_mpdecision: boost: detect changed min frequency and update accordingly
213609a msm_mpdecision: tune hotplug values

7 May 2013
Code:
cfcfcbe4 Revert "msm: kgsl: Add GFP_NORETRY to the page_alloc flags and handle errors"
4750928 defconfig: Update for new touch_boost feature for kernel based mpdecision.
085ba61 msm: kgsl: Reduce cmd buffer size for adreno_iommu_setstate
caed023 msm: kgsl: Fix hang detection to be 50ms or more
bf9a788 msm: kgsl: Add minimum amount of wait in adreno_waittimestamp
28780a3 msm: kgsl: Lower bounds check the number of power levels
3a7120b msm: kgsl: Avoid NULL pointer in adreno setstate functions
5db5ceb msm: kgsl: Fix guilty context logic for GPU hangs
eab59a3 msm: kgsl: Remove an uneeded register write for A3XX GPUs
da07ff9 msm: kgsl: Remove non-critical error messages
f33358f msm: kgsl: unprepare clocks when we move from NAP to SLEEP
3efbea6 msm: kgsl: Do not allocate space in ringbuffer for hung context
f41b6a2 msm: kgsl: Do not save context if it is being destroyed
b1d7357 fix error
d663e19 msm_fb: display: update var in display commit
f2c1e69 msm: display: non-blocking for overlay update
6fe5638 msm: kgsl: Remove extra interrupts when setting MMU state
7e8a134 msm: kgsl: Support user specified timeouts in adreno_waittimestamp
cf18f63 msm: kgsl: Move the adreno WPTR poke logic to the hang detection
6a808d0 msm: kgsl: Invalidate base pointers when tlb is flushed
a8bafcd msm: kgsl: Add GFP_NORETRY to the page_alloc flags and handle errors
cef0287 msm: kgsl: Fix adreno idle detection during hang
29916e4 msm: kgsl: Do not check for hang when graphics core is idle
01c3627 msm_mpdecision: input event boost: fix not resetting boost if cpu was unplugged before
643164e msm_mpdecision: add sysfs interface for input event boost
55f7b76 msm_mpdecision: add input event boost [read more]

5 May 2013
Code:
6c31838 defconfig: trying -Ofast flag really quick
8684551 workqueue: silence 'warning: array subscript is above array bounds'
832bfbb Makefile: add -Ofast
230f31c Revert "mako LCD: keep RGB custom colors alive after screen off/on"
0a8b0db input: lge: re-work the patches I just reverted to fix a bug that was causing some leaks and some IRQ exceptions during screen on.
2f521e9 Sound Control: Added headphone poweramp controls
b9451d3 af_unix: use freezable blocking calls in read
74e437e sigtimedwait: use freezable blocking call
a479733 nanosleep: use freezable blocking call
b7b7d43 futex: use freezable blocking call
87e9542 select: use freezable blocking call
ce6c00a epoll: use freezable blocking call
abeafac binder: use freezable blocking calls
3995281 freezer: add new freezable helpers using freezer_do_not_count()
ff4bd25 freezer: skip waking up tasks with PF_FREEZER_SKIP set
23f2b45 freezer: shorten freezer sleep time using exponential backoff
6f57272 defconfig: Add new defconfig for test branch. Release 1.
74681b3 mach-msm: msm_mpdecision: default off. We will boot using Qualcomm's binary. Change zip to mirror this.
f063703 defconfig: Lower min clock, enable mpdecision (which I was advised could be turned off with 2 commands) so we will boot up with that as 
d413876 auto_hotplug: Prepare for being able to run alongside show-p1984's mpdecision.
0919ae2 defconfig: Turn off auto-hotplug until it can be turned off and compiled alongside the other hotplug drivers.
38bbd31 Restrict slave mountspace so Dalvik apps can mount system-wide volumes
31cbf8b auto_hotplug: rev 4 - let's lean a little more towards performance.
4e4adbb auto_hotplug: stack the deck on auto_hotplug_late_resume to get things moving quickly again
e04373f auto_hotplug: parameter validation for max_online_cpus
751eb27 auto_hotplug: enhancements (rev 3)
9367500 auto_hotplug: enable the min_online_cpus value
689e712 auto_hotplug: enhancements (rev 2)
af7748f auto_hotplug: enhancements
5a17cb6 arm: auto hotplug - wrap all pr_info into the existing debug mode so we don't spam the kernel log
937748e Change dependencies to allow kernel to be built with ARM hotplug, and without MSM_RUN_QUEUE_STATS. These are only needed for proprietary
2527619 arm: Add auto hotplug driver
637ffac mm: vm_swappiness set to 20 (down from the default 60) since we have plenty of RAM on the Nexus 4
1e4db08 ARM: remove NWFPE and VFP emulation code from the kernel
3291b82 usb: otg: Fix? for compiling with OTG. If its wrong, I hope someone can help here.




Big thanks to @show-p1984, he really kick started this project. One night I received a PM from him asking if I'd like to take this challenge on. He also helped me out a ton while setting up the repo and build. He really has been a great help.


Others I'd like to thank for their source, commits, hardwork, blood and tears:
@faux123
@francisco.franco
@_motley
@morfic
@Harsh
@r_data
@semaphore (or the creator of it)
@intersectRaven
@mathkid95 sorry for taking so long in adding you
The Following 4 Users Say Thank You to jassycliq For This Useful Post: [ View ] Gift jassycliq Ad-Free
2nd May 2013, 05:35 AM |#4  
gianton's Avatar
Recognized Contributor
Flag Thessaloniki
Thanks Meter: 9,788
 
Donate to Me
More
Thanks for starting this, seems a good idea. Question: are these builds tested before they are uploaded?
The Following User Says Thank You to gianton For This Useful Post: [ View ] Gift gianton Ad-Free
2nd May 2013, 05:36 AM |#5  
kickthefreak's Avatar
Senior Member
Flag balik
Thanks Meter: 57
 
More
wow new kernel for mako, will try it man
Goodluck.
The Following User Says Thank You to kickthefreak For This Useful Post: [ View ] Gift kickthefreak Ad-Free
2nd May 2013, 05:40 AM |#6  
OP Senior Member
Flag Los Angeles
Thanks Meter: 687
 
More
Quote:
Originally Posted by gianton

Thanks for starting this, seems a good idea. Question: are these builds tested before they are uploaded?

No, but as it stands right now nothing has changed that would be broken. In the future the test folder should be treated like a nightly build and the master folder should be treated like a stable build.

BTW I'm running the first one on that folder. The only change the newest one had is that it fixes an error where mpdecision was renamed, but now that we default to that, we don't want that to happen.

Sent from my Nexus 4 using Tapatalk 2
The Following User Says Thank You to jassycliq For This Useful Post: [ View ] Gift jassycliq Ad-Free
2nd May 2013, 06:07 AM |#7  
Member
Thanks Meter: 6
 
More
Just a question. I already flashed but does this have any of those modules /drivers that increase touch screen sensitivity? Considering it is compiled from every other kernel I would think so, but I'd just like to make sure

Sent from my Nexus 4 using xda app-developers app
2nd May 2013, 06:12 AM |#8  
OP Senior Member
Flag Los Angeles
Thanks Meter: 687
 
More
Quote:
Originally Posted by Ranaquajaro

Just a question. I already flashed but does this have any of those modules /drivers that increase touch screen sensitivity? Considering it is compiled from every other kernel I would think so, but I'd just like to make sure

Sent from my Nexus 4 using xda app-developers app

It has Faux's patch. I will implement Franco's tomorrow or some other day. I'd like to have more than one commit for a change.
The Following User Says Thank You to jassycliq For This Useful Post: [ View ] Gift jassycliq Ad-Free
2nd May 2013, 06:16 AM |#9  
Member
Thanks Meter: 6
 
More
Quote:
Originally Posted by jassycliq

It has Faux's patch. I will implement Franco's tomorrow or some other day. I'd like to have more than one commit for a change.

No worries just wondering. Great work by the way

Sent from my Nexus 4 using xda app-developers app
The Following User Says Thank You to Ranaquajaro For This Useful Post: [ View ] Gift Ranaquajaro Ad-Free
2nd May 2013, 06:40 AM |#10  
casonswag's Avatar
Senior Member
Flag Jacksonville
Thanks Meter: 950
 
More
Any reason why i lost wifi? I flashed coming from franco kernel first i flashed the kernel reset then your kernel no wifi then i flashed your kernel again and no wifi?

NEXUS
2nd May 2013, 06:43 AM |#11  
OP Senior Member
Flag Los Angeles
Thanks Meter: 687
 
More
Quote:
Originally Posted by casonswag

Any reason why i lost wifi? I flashed coming from franco kernel first i flashed the kernel reset then your kernel no wifi then i flashed your kernel again and no wifi?

NEXUS

Check OP, it goes over this.
Since the kernel is highly optimized WiFi, TUN, and CIFS need to be built as modules. Because of this, we use init.d scripts to load them at boot, this requires busybox. You can check if it loaded by typing the following in terminal:

lsmod

If it doesn't say WLAN, then the WiFi module needs to be loaded manually by typing this in terminal:

su
./system/etc/init.d/00wlan

If that works then try updating your busybox it might have an issue. Also if you have another init.d that starts with 00 change the wlan to 08wlan

Sent from my Nexus 4 using Tapatalk 2
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes