[HTC 10 ROMs, Kernels, Recoveries, & Other Developm] ZeroInfinity:
Changelog:

v018:
Helix Kernel v018:
- Rebased kernel from EAS r1.3 (thanks to @RenderBroken)
- AOSP (both Nougat and Oreo) Support (thanks to @tbalden for LED fix on AOSP and PFOS team for commits that Oreo needs to boot)
- Added thermal-engine binary from LOS to make thermal-engine work on Sense ROMs without needing pnpmgr (Proper thermal throttling on EAS + Sense now)
- Custom thermal-engine.conf for optimal thermal throttling
- Updated Magisk modules to use the latest template for v14

Helix Engine v5.0:
- Re-written engine from scratch
- Slimmed down to App Engine and Suspend Engine
- Dynamically adjusts schedtune.boost for top-app cpuset
- Dynamically adjusts gov tunables on schedutil and schedutil-based govs
- Removed capping of CPU freqs
- Removed powersaver engine and thermal engine
- Removed ability for user configs
- Removed helix_config
- Less user customizability (Will consider adding this back in the future)
- Much more efficient in battery savings with very minimal performance hit.
- Much easier for devs to port Helix Engine to ANY DEVICE with EAS Kernels (literally just requires Helix Engine ROM files, no need for kernel integration).

v017:
- Completely redone the kernel from scratch using latest EAS commits from @RenderBroken
- [HELIX-ENGINE]: Remove dynamic throttlemode
- [HELIX-ENGINE]: Add support for user defined frequencies in powersaver and suspend engines
- [HELIX-ENGINE]: Users can now change freqs of app engine profiles
- [HELIX-ENGINE]: Separate sysfs nodes for frequencies
- Revert "[PATCH] proc: Remove verifiedbootstate flag from /proc/cmdline"
- SafetyNet bypass: Show androidboot.verifiedbootstate=green
- cpufreq/pwrutilx: Lower kthread priority to 25% and fix log info

Helix Engine v4.0:
- Significant code optimizations
- Tons of bug fixes
- Thermal engine values tweaked slightly (balanced is slightly less aggressive than before)
- Add support for user-defined frequencies for all app engine profiles (battery, balanced, performance)
- Introducing helix_config: An executable binary which allows much easier user configuration for Helix Engine!

v016:
- [HELIX-ENGINE]: Separate enable nodes for all parts of engine (Fixes bug when disabling parts of the engine)
- Fixed magisk module for ROM support, it should get rid of any weird bugs with Magisk now

Helix Engine v3.0:
- A f*ck ton of code optimisations to use less CPU time (much more battery friendly and less cpu intensive)
- Fixed app engine bug where thermal manager would still fight app engine under certain cases
- Slightly tweaked thermals for all thermal modes
- User lists are now moved to /system/etc/helix_engine/user
- More package names added to default lists
- Fixed other minor bugs

v015:
* f4837d639b3 - [HELIX-ENGINE]: Add support to enable/disable dynamic throttlemode <ZeroInfinity>
* b4e186792e9 - DEFCONFIG: Added more exFAT related lines <ZeroInfinity>
* 89f562db4d0 - [HELIX-ENGINE]: Change implementation of user-defined app engine lists <ZeroInfinity>
* 21e91a04d2c - [HELIX-ENGINE]: Add sysfs node for user app list <ZeroInfinity>
* 8dd27f4a06b - [HELIX-ENGINE]: Added "mode" sysfs node <ZeroInfinity>
* 59c2824f7f0 - [HELIX-ENGINE] Restore powersaver sysfs node from pnpmgr <ZeroInfinity>

Helix Engine v2.0:
- Added thermal throttling modes
- Added user defined custom lists for app engine thanks to @ChronoReverse for the idea
- Added powersaver mode (links to powersaver or extreme powersaver in settings)
- Set stune to 10 top app as default for everything (to ensure smooth ui) (previously 5)
- App engine can now change adrenoboost
- Code optimisations
- More apps added to app engine lists as per user requests
- Throttle mode changes with app engine thanks to @p50kombi for the idea
- Added Dynamic Throttlemode tunable which allows users to disable throttle mode changing with app engine
- Slightly more aggressive throttling for balanced to keep temps down due to stune set to 10 now
- Fixed Helix Engine on Magisk version (set correct perms in installer now)

v014:
* Added balanced and battery tweaks from Advanced EAS Tweaks (thanks to @RogerF81 @TotallyAnxious)
* Added ZeroInfinity's personal Advanced EAS Tweaks based on battery tweaks
* Added TotallyAnxious' personal Advanced EAS Tweaks
* Added Helix Engine executable binary and necessary files in /system/helix_engine
* 2a19eb9b8e0 - [HELIX-ENGINE]: Added new sysfs node "enginecap" (19 hours ago) <ZeroInfinity>
* 0203d822b4b - [HELIX-ENGINE]: Added more sysfs nodes (3 days ago) <ZeroInfinity>
* 96811d98170 - [HELIX-ENGINE]: Initial kernel integration (4 days ago) <ZeroInfinity>
* 0e51404a512 - exfat: ported driver from Dorimanx's OP3T kernel (9 days ago) <ZeroInfinity>
* 0963424716b - cpufreq_pwrutilx: Remove display_on() API (9 days ago) <ZeroInfinity>
* 8027127f24f - Revert "Add exfat no-fuse" (11 days ago) <ZeroInfinity>
* REBUILT KERNEL FROM STOCK HTC SOURCE AGAIN (much cleaner now)

v013:
* b42fad1 cpufreq_pwrutilx: Upgrade pwrutil to pwrutilx [ZeroInfinity]
* 3604dc3 schedtune: Use display_on API to prevent boosting when screen off [ZeroInfinity]
* 682b3e8 cpufreq_pwrutil: Force big cluster to use min freq during screen off regardless of load [ZeroInfinity]
* ed71a42 cpufreq_pwrutil: Remove utilboost [ZeroInfinity]
* 942e8ea cpufreq_pwrutil: disable utilboost, mincap, cap big cluster to minimum freq on suspend [ZeroInfinity]

v012:
* b166c29 cpufreq_pwrutil: Introduce Load Dependent Minimum Frequency Capping [ZeroInfinity]
* 674bf02 cpufreq_pwrutil: Separate utilboost calculation from get next freq formula [ZeroInfinity]
* 0935b73 sched: freq: Reevaluate throttle if frequency requested changes [Joel Fernandes]
* 8b49109 sched: rt: Fix broken sync wakeup logic [Joel Fernandes]
* c786268 sched: Add back capacity margin in sched_freq_tick_walt [Joel Fernandes]
* 892d614 sched: Use schedtune boosted WALT signal for RT [Joel Fernandes]
* 9ce77da sched: Move schedtune boost utilization calculations to tune.h [Joel Fernandes]
* 19ae3c3 Audio RT glitch fix [DO NOT MERGE]. [Srinath Sridharan]
* d2401ab cpufreq_sched: Fix capacity over accounting. [Srinath Sridharan]
* 93dc2b8 sched/rt: rt cpu selection integration with EAS. [Srinath Sridharan]
* 9ebf753 DEFCONFIG: Disable Capacity Clamping [ZeroInfinity]
* 7e47764 Revert "cpufreq: schedutil: ignore the sugov kthread for frequencies selections" [ZeroInfinity]
* f1518ff Revert "cpufreq: schedutil: ensure max frequency while running RT/DL tasks" [ZeroInfinity]
* e693634 Revert "cpufreq: schedutil: relax rate-limiting while running RT/DL tasks" [ZeroInfinity]
* 6a03559 Revert "cpufreq: schedutil: avoid utilisation update when not necessary" [ZeroInfinity]
* 858f726 Revert "sched/rt: fast switch to maximum frequency when RT tasks are scheduled" [ZeroInfinity]
* c84a2df Revert "cpufreq_pwrutil: Update governor with new schedutil patches" [ZeroInfinity]
* 361d5a1 Revert "DEFCONFIG: Enable CPU_BOOST" [ZeroInfinity]

v011:
* 7025fb4 cpufreq_pwrutil: Default utilboost to 0 [ZeroInfinity]
* 69b314e DEFCONFIG: Disable WALT [ZeroInfinity]
* f6a19de cpufreq_helix_schedutil: Deprecated [ZeroInfinity]
* 49e3761 DTS: MSM8996: EAS Energy Model Change [RenderBroken]
* a658e35 Revert "New Energy Model thanks to @Kyuubi10" [ZeroInfinity]
* 32369c7 DEFCONFIG: Enable CPU_BOOST [ZeroInfinity]
* ce0b5de cpufreq_pwrutil: Update governor with new schedutil patches [ZeroInfinity]
* 9e301d5 trace: add support for boot trace clock [Tim Murray]
* 23a169d cpufreq: cpu-boost: don't boost if input_boost_ms is <= 0 [Francisco Franco]
* 14f8d3b cpufreq: cpu-boost: export input_boost_enable to userspace [franciscofranco]
* 2d11abd cpufreq: cpu-boost: Remove migration sync boost [Junjie Wu]
* 88ffb0b cpufreq: cpu-boost: Use one work to remove input boost for all CPUs [Rohit Gupta]
* 82f33f3 cpufreq: cpu-boost: Support separate input_boost_freq for different CPUs [Junjie Wu]
* 81f59f4 cpufreq: cpu-boost: Make the code 64 bit compatible [Rohit Gupta]
* 7cae16c cpufreq: cpu-boost: Use interruptible wait to not affect load average [Swetha Chikkaboraiah]
* 982bd86 cpufreq: cpu-boost: Consider only task load to decide on sync frequency [Girish S Ghongdemath]
* 76eba85 cpufreq: cpu-boost: Handle wakeup hints received for foreground tasks [Rohit Gupta]
* aabbb34 cpufreq: cpu-boost: Introduce scheduler assisted load based syncs [Rohit Gupta]
* f539a99 cpufreq: cpu-boost: Re-issue boosts above minimum frequency [Patrick Cain]
* 55a52a2 cpufreq: cpu-boost: Don't register for cpufreq notifiers too early [Saravana Kannan]
* 02302fa cpufreq: cpu-boost: Fix deadlock in wake_up of sync threads [Saravana Kannan]
* d3f194b cpufreq: cpu-boost: Fix queue_delayed_work_on() race with hotplug [Saravana Kannan]
* d0e5c17 cpufreq: cpu-boost: Resolve deadlock when waking up sync thread [Srivatsa Vaddagiri]
* 263eefa cpufreq: Add Input Boost feature to the cpu-boost driver [Rohit Gupta]
* 5b49acd cpufreq: Add a sync limit to cpu-boost [Rohit Gupta]
* b9c1495 cpufreq: cpu-boost: Add cpu-boost driver [Saravana Kannan]
* 1b9a8ab sched/rt: fast switch to maximum frequency when RT tasks are scheduled [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* 2b5a28f cpufreq: schedutil: relax rate-limiting while running RT/DL tasks [Patrick Bellasi]
* fecdcac cpufreq: schedutil: ensure max frequency while running RT/DL tasks [Patrick Bellasi]
* d2f4a56 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* aabbb34 cpufreq: cpu-boost: Introduce scheduler assisted load based syncs [Rohit Gupta]
* f539a99 cpufreq: cpu-boost: Re-issue boosts above minimum frequency [Patrick Cain]
* 55a52a2 cpufreq: cpu-boost: Don't register for cpufreq notifiers too early [Saravana Kannan]
* 02302fa cpufreq: cpu-boost: Fix deadlock in wake_up of sync threads [Saravana Kannan]
* d3f194b cpufreq: cpu-boost: Fix queue_delayed_work_on() race with hotplug [Saravana Kannan]
* d0e5c17 cpufreq: cpu-boost: Resolve deadlock when waking up sync thread [Srivatsa Vaddagiri]
* 263eefa cpufreq: Add Input Boost feature to the cpu-boost driver [Rohit Gupta]
* 5b49acd cpufreq: Add a sync limit to cpu-boost [Rohit Gupta]
* b9c1495 cpufreq: cpu-boost: Add cpu-boost driver [Saravana Kannan]
* 1b9a8ab sched/rt: fast switch to maximum frequency when RT tasks are scheduled [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* 2b5a28f cpufreq: schedutil: relax rate-limiting while running RT/DL tasks [Patrick Bellasi]
* fecdcac cpufreq: schedutil: ensure max frequency while running RT/DL tasks [Patrick Bellasi]
* d2f4a56 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* 62dec04 cpufreq_pwrutil: Increase max utilboost value and tweak defaults [ZeroInfinity]
* 3949f45 cpufreq_pwrutil: use boosted_cpu_util for PELT to match WALT [ZeroInfinity]
* 1d12c0a EXPERIMENTAL: sched/fair: Use energy_diff for tasks where appropriate [Chris Redpath]
* 7de0e7b EXPERIMENTAL: sched/fair: Reduce balance interval to 0 if we have a misfit task [Leo Yan]
* 275418c EXPERIMENTAL: events: add tracpoint for energy/performance variations [Patrick Bellasi]
* 6472522 EXPERIMENTAL: events: add tracepoint for energy_diff [Patrick Bellasi]
* 0017bf5 EXPERIMENTAL: sched/fair: add support to compute perf/energy variations [Patrick Bellasi]
* 5318ff4 EXPERIMENTAL: sched/fair: make find_new_capacity() to honour the task's boost [Patrick Bellasi]
* 4c702c2 EXPERIMENTAL: sched/fair: use energy_env as single argument [Patrick Bellasi]
* 61c81e7 EXPERIMENTAL: sched/fair: add ENERGY_FILTER sched_feature [Patrick Bellasi]
* 21f110d EXPERIMENTAL: FROMLIST: sched/fair: kick nohz idle balance for misfit task [Chris Redpath]
* dab6f52 sched/tune: don't use schedtune before it is ready [Chris Redpath]
* aaf19575 sched/fair: use SCHED_CAPACITY_SCALE for energy normalization [Patrick Bellasi]
* 367fed9 sched/{fair,tune}: use reciprocal_value to compute boost margin [Patrick Bellasi]
* 3ab0323 sched/tune: Initialize raw_spin_lock in boosted_groups [Srinath Sridharan]
* 857dbc9 sched/tune: report when SchedTune has not been initialized [Patrick Bellasi]
* 4d6437b sched/tune: fix sched_energy_diff tracepoint [Chris Redpath]
* eebdd9e sched/tune: increase group count to 5 [Chris Redpath]
* 6984736 cpufreq/schedutil: use boosted_cpu_util for PELT to match WALT [Chris Redpath]
* 33dac50 sched/fair: Fix sched_group_energy() to support per-cpu capacity states [Morten Rasmussen]
* eb79250 sched/fair: discount task contribution to find CPU with lowest utilization [Valentin Schneider]
* cbce47c sched/fair: ensure utilization signals are synchronized before use [Chris Redpath]
* 1545d32 sched/walt: Add CONFIG_USE_WALT to change default usage of WALT [Chris Redpath]

v010_r2:
* aa59577 cpufreq_pwrutil: Unify cluster-dependent governors into one [ZeroInfinity]
* Fixed thermal-manager script - fully working now!

v010_r1:
* 619427e Revert "drivers: wakeup: add options to disable timerfd, netlink and wlan wakelocks" [ZeroInfinity]
* 32f5e07 Revert "wakeup: add toggles for wlan wakelocks. They are all enabled by default, it's up to the user and I provide no support if Wi-Fi stops working normally without these locks enabled. This is for advanced users" [ZeroInfinity]
* 6008e6f Revert "drivers: wakeup: more thoroughly deactivation of wakelocks" [ZeroInfinity]
* 0826e7f Revert "drivers: wakeup: run the wakelock blockers during wakeup_source activation and every resume" [ZeroInfinity]
* c0b3105 Revert "drivers: wakeup: there's no much point in running the blockers during screen on" [ZeroInfinity]
* 852d5b8 Revert "drivers: wakeup: it's pointless to output the active wakeup sources during screen on, no need to go through the rcu locks and list iterations every now and then" [ZeroInfinity]
* e6d50c0 Revert "wakeup: fix compile error + adapt for more wakelocks to disable" [ZeroInfinity]
* f76e0ee Revert "drivers: wakeup: be more thorough with blocking wakelocks" [ZeroInfinity]

v010:
* 0407f7e cpufreq_pwrutil: tweak little cluster for better performance [ZeroInfinity]
* 6fcb145 cpufreq_pwrutil: 5% util boost on big cluster [ZeroInfinity]
* d6ed778 cpufreq_helix_schedutil: Add support for max CPU frequency capping [ZeroInfinity]
* b0bce28 cpufreq_schedutil: Add support for max CPU frequency capping [ZeroInfinity]
* 575c3cf cpufreq_pwrutil: Support max frequency changes [ZeroInfinity]
* 28b1248 drivers: wakeup: be more thorough with blocking wakelocks [Francisco Franco]
* 2bfba87 cpufreq_pwrutil: Introduce new gov and deprecate energy-dcfc [ZeroInfinity]
* c0f6a99 cpufreq_energy_dcfc: Change frequency calculation according to cluster [ZeroInfinity]
* f381792 cpufreq_energy_dcfc: Use load2_cap * util / max [ZeroInfinity]
* 516320a wakeup: fix compile error + adapt for more wakelocks to disable [ZeroInfinity]
* 287e941 cpufreq_energy_dcfc: Optimize for schedtune v3 (capacity clamping) [ZeroInfinity]
* 45b6f3c drivers: wakeup: it's pointless to output the active wakeup sources during screen on, no need to go through the rcu locks and list iterations every now and then [Francisco Franco]
* b5f8609 drivers: wakeup: there's no much point in running the blockers during screen on [Francisco Franco]
* 8692581 drivers: wakeup: run the wakelock blockers during wakeup_source activation and every resume [Francisco Franco]
* e6ee126 drivers: wakeup: more thoroughly deactivation of wakelocks [Francisco Franco]
* Added capacity clamping (schedtune v3) ROM support (thanks to @RenderBroken and @joshuous)
* Added thermal-manager service script (thanks to @ivicask and @nkk71)
* Tuned capacity clamping to get a balance of performance and battery (although pulling down status bar may be laggy sometimes)

v009_r1:
* 91fbcb4 cpufreq_energy_dcfc: final tweaks, as balanced as it can be [ZeroInfinity]
* 1ab31e9 Do not allow texfat module to load [ZeroInfinity]
* 7a8bc55 cpufreq_energy_dcfc: Change some lines to make the governor work better [ZeroInfinity]

v009 (Had to revert some changes so went on a new branch to redo some commits):
* 0a2f8b2 cpufreq_energy_dcfc: Implement formula changing by @Kyuubi10 [ZeroInfinity]
* 6dabc23 cpufreq_helix_schedutil: Fix load calculation [ZeroInfinity]
* 4e35b65 cpufreq_energy_dcfc: Fix load calculation [ZeroInfinity]
* d81bcca DEFCONFIG: Enable capacity clamping [ZeroInfinity]
* f74b731 cpufreq_helix_schedutil: fix small mistake [ZeroInfinity]
* 2ca352d cpufreq_energy-dcfc: Energy-DCFC 2.0 [ZeroInfinity]
* 902730d cpufreq_helix_schedutil: Helix_schedutil 2.0 [ZeroInfinity]
* 78b2fc3 sched/{core,cpufreq_schedutil}: add capacity clamping for RT/DL tasks [Patrick Bellasi]
* 4de07b6 sched/{core,cpufreq_schedutil}: add capacity clamping for FAIR tasks [Patrick Bellasi]
* d5e84c1 sched/core: sync capacity_{min,max} between slow and fast paths [Patrick Bellasi]
* e61b7842 sched/core: track CPU's capacity_{min,max} [Patrick Bellasi]
* 04f9dc8 sched/core: add capacity constraints to CPU controller [Patrick Bellasi]
* 562cdd6 sched: cpufreq: add cpu to update_util_data [Steve Muckle]
* 2744d69 cpufreq: Add dvfs_possible_from_any_cpu policy flag [vireshk]
* fb2bec6 cpufreq: schedutil: reset sg_cpus's flags at IDLE enter [Patrick Bellasi]

v008:
* 55a7c81 UPSTREAM staging: ion: Fix error handling in ion_buffer_create [Rohit kumar]
* c293641 ANDROID: sched: fix duplicate sched_group_energy const specifiers [Greg Hackmann]
* 834e64c drivers: wakeup: add options to disable timerfd, netlink and wlan wakelocks [Francisco Franco]
* c8d5019 cpufreq_helix_schedutil: Introduce schedutil formula modifications [ZeroInfinity]
* 8574753 cpufreq_energy_dcfc: Optimize code [ZeroInfinity]

v007:
* ecee901 cpufreq_energy-dcfc: Add new governor [ZeroInfinity]
* 235a893 cpufreq_helix_schedutil: Get sg_cpu instead of using cpumask [ZeroInfinity]

v006:
* 3855be7 cpufreq_helix_schedutil: Update governor to latest schedutil patches [ZeroInfinity]
* 011a079 sched: fixup schedutil patches from EAS-Dev [DespairFactor]
* b1bfc11 sched: cpufreq: enable remote sched cpufreq callbacks [vireshk]
* f162008 sched: cpufreq: detect, process remote callbacks [vireshk]
* a2c41bd sched: cpufreq: remove smp_processor_id() in remote paths [vireshk]
* 954b1d4 sched: cpufreq: extend irq work to support fast switches [vireshk]
* b7f86ef cpufreq: Add dvfs_possible_from_any_cpu policy flag [vireshk]
* 9b7b012 sched: cpufreq: add cpu to update_util_data [Steve Muckle]
* d6ce220 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* 68208fd cpufreq: schedutil: reset sg_cpus's flags at IDLE enter [Patrick Bellasi]
* 3cbf72a fixup: modify ef6728ad to use correct cpu_util signal [Chris Redpath]
* 745b95e cpufreq/schedutil: Fix schedutil's 'default governor' machinery [Chris Redpath]
* 8b29d59 sched/fair: remove task util from own cpu when placing waking task [Chris Redpath]
* f54c3cc trace:sched: Make util_avg in load_avg trace reflect PELT/WALT as used [Chris Redpath]
* 4717b37 Experimental!: sched/fair: Add eas (& cas) specific rq, sd and task stats [Dietmar Eggemann]

v005:
Add exfat no-fuse
mmc: move to a SCHED_FIFO thread
[PATCH] disable crc check
Enable F2FS support
Allow stock crypt and texfat modules to load (although texfat loading causes non-booting kernel so I was forced to rename this upon installing the kernel.)

v004 - Initial PUBLIC release