[Google Pixel 6 Pro] Freak07:
Update to 4.4.0

Hey guys and girls,

I hope everyone started well in the new week. Here´s the next release and it´s a really big one. I know some of you already peeked over to the Pixel 7/Pro forums and asked if the changes from there will also find their way to the Pixel 6/Pro release.

The answer is yes, except one change that´s not easy to cleanly implement as of now. If I´m going to implement something I want it to be done cleanly so that I´m content and happy releasing it, as of now this didn´t work out as I hoped. If time allows I plan to revisit that in the future however.

This release includes the QPR (quartly platform release) changes and is now on the same state as A13 QPR Beta was previously. You need to be on December firmware release to be able to install this kernel!

This release features a few major changes, which I want to explain in greater details, so excuse the longer release post. I´d appreciate if everyone takes the time to at least read it. :)

MGLRU V15

Amongst the QPR changes from Google, which are a big step ahead of the initial A13 release (always the case the last years, the december update fixes tons of things of the major android version bump), MGLRU was bumped to latest V15 state, which was also merged to the linux-kernel recently. Was testing this out for nearly a month, before releasing. For those interested about MGLRU, here´s an excellent writeup by @MishaalRahman.

Introduction of Lazy RCU

1.1.0 has the entire(!) RCU subsystem updated to latest linux 6.0 kernel state. This also allowed for Lazy RCU to be merged into the kernel, which should result in power-savings while the device is lightly-loaded or idling (which is basically the case all the time a smartphone isn´t being interacted with (nothing touching the screen and no other workload such as video editing is done).

If you´re interested in details check the slides, which are also linked in the article I linked above.

A very simplified explanation: RCU functionality can be called 1000s of times a second, batching RCU calls can save power by not calling as often.

That´s one of the changes I wanted to be tested extensively, as there are a few 10000 lines of code changes.

Please keep in mind, those are kernel changes and battery life will not be improved magically by huge amounts, due to such a change, even if the change itself is massive.

Example: If you raise or lower the display brightness by around 10% over an entire day, you´ll see a bigger impact.

Reading the OP gives you a good idea what this project is about! :)

Playback over USB C to 3.5mm Dongles

Some users were experiencing issues while using usb-c to 3.5mm dongles while running my kernel. After a long time I finally discovered how to reproduce the bug as the logs did not point towards any kernel error. It happens only if default usb configuration in developer options is set to anything else than "no data transfer". If "no data transfer" is selected there´s no issue at all. (that´s why I wasn´t able to reproduce the behaviour)

A few commits from linux-stable for the usb dwc3 driver breaks playback when screen is shut off or cycling through the "default usb configuration" settings, which causes the aoc driver that´s responsible for playback to shut down.

Reverting those commits fixes the issue.

Thanks to @WhoIsJohnGalt1979 and @Hurt Copain for nagging me about the issue and providing logs, I finally found a way to reproduce the issue so I was able to debug it.

Given that playback is "glitchy" (a brief audio stutter) on stock kernel as well, when either cycling through different "default usb configuration" settings or turning screen on/off, that driver and the framework part in regards to the different USB default configuration states is generally very wonky. That´s probably also why selecting default USB configuration is "hidden away" in developer options.

I´d like to write all of this with more detail, but at the moment I lack the time to do so.

Kernel is compiled for stable A13!

I wish everyone a nice day.

If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.

Changelog:

- Import December QPR changes

- Linux-Stable bumped to 5.10.157

- Bump prebuilt clang to latest 16.0.1 from Google

- important improvements and fixes to binder

- bump MGLRU to latest V15 state

- Backport entire RCU subsystem to linux 6.0

- Lazy RCU which should result in power-savings while the device is lightly-loaded or idling, more information here

- Fix audio playback stopping for some users when turning screen off (thanks for @WhoIsJohnGalt1979 and @Hurt Copain for nagging me about the issue and providing logs)

- improve CPU throttling behaviour

- fix to memory management

- improvements from linux-mainline for several subsystems

scheduler

Spoiler content hidden.

memory management

Spoiler content hidden.

PSI

Spoiler content hidden.

more details please check github

- patches to f2fs to sync with latest f2fs-stable

- binder fix

- updates from kernel/common to several subsystems

- import all improvements from google QPR to powerhint module

- tweak powerhal for improved performance/efficiency

Dynamically adjust target load for memory interface during interaction.

- other fixes please check github

Download:

Attached to release post as AFH does not allow me to upload files at the moment.

I´ll push to AFH once it´s back up.

Downloads for : -Android- Generic Device/Other | AndroidFileHost.com | Download GApps, Roms, Kernels, Themes, Firmware and more. Free file hosting for all Android developers.

Download GApps, Roms, Kernels, Themes, Firmware, and more. Free file hosting for all Android developers.

www.androidfilehost.com

If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

I wish everybody a great day/evening!

Have fun, enjoy the kernel and your phone.

If you like my work please consider a donation.

Donations are not mandatory but very welcome.

If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07