[Xiaomi Redmi Note 3 [Snapdragon] ROMs, Kernels, Re] psndna88:
AGNi pureMIUI-MM/N v12.7-

NOTE: DIRTY-FLASH ROM BEFORE FLASHING THIS VERSION

* More deep bass on earphone and louder speaker audio

* More responsive UX

* replacement touch screens may get reduced boot times

* pseudoQC charging - QC charging allowed @ max 2100mA but only 5 volts allowed (long live kenzo/kate)

* attempt resolve random reboots, fix bootloops on unofficial LOS 15.1

* add some MIUI-specific code for optimal running on MIUI-MM/N

* attempted fix Spectrum support, tweak memory management

* EXPERIMENTAL option to force firmware 0x20 flash for replaced Focaltech touchscreens

* enable SYSVIPC [MIUI-MM]

* MIUI-MM goodix libs are not replaced by AGNi

Detailed Changelog:-

Audio:-

audio: add Texas Instruments AW8738 High Performance 4W Smart speaker Amplifier driver (ktommy91)

audio: add misc device sysfs for AW8738 speaker Amplifier

enable AW8738 speaker Amplifier by default

ASoC: wcd9335: Set 12dB gain for speaker playback

audio: add G711 audio encoding support (ktommy91)

ASoc: msm: qdsp6v2: add support for AAC LATM playback

ASoC: msm: qdsp6v2: add support for DTS offload

ASoC: msm: Aptx decoder integration changes (ktommy91)

ALSA: compress: Add APTX format support in ALSA

Add 32 bit 384kHz audio playback support (ktommy91)

sound: msm: qdsp6v2: optimize for size

New Additions:-

set CONFIG_HZ=250

Convert many qcom drivers to use msecs_to_jiffies insted of HZ

qpnp-fg: remove debug logging soc_work

qpnp-smbcharger: remove regs dump debugging

qpnp-smbcharger: make 2100mA max default charging current

qpnp-smbcharger: set 4.4v as max battery full voltage

qpnp-smbcharger: remove 9v charging support for QC 2.0

qpnp-fg/smbcharger: rebase to caf/LA.BR.1.3.6_rb1.25

input: ft5346_ts: force firmware flash to stock 0x20 based on cmdline

input: ft5346_ts: force firmware flash if detected version is not stock 0x20

enable SYSVIPC [MIUI-MM]

crypto: msm: fix build for qcedev & qcrypto for only [MIUI-MM/N]

Merge stuff from caf/LA.BR.1.3.4_rb1.33 for [MIUI-MM]

mm: page_alloc: port xiaomi's freepages migration policy [MIUI-MM/N]

kernel: cgroup: port Frozen App support for [MIUI-MM/N]

block,net/core: misc changes from xiaomi

dts: enable esd-check for tianma panel

kernel/audit: use printk_ratelimited for audit_printk_skb()

kconfig: add a boolean for indicating MIUI-MM/N build

Updates:-

PM / devfreq: Add an interface to boost devices when the screen is woken

PM / devfreq: Reduce wake boost duration to 5000 ms

alarmtimer: don't rate limit one-shot timers

alarmtimer: Rate limit periodic intervals

msm: vidc: Clean session when failed to open instance

ARM: dts: msm: Set the default governor for cpubw to performance

msm: kgsl: Disable UCHE global filter

msm: kgsl: Correct protected mode range for 5XX UCHE registers

msm: kgsl: Add EXEC permission to the unassign call

VOSS: vos_mem_compare should always use const parameters

thermal-core: Fix invalid sensor data being accepted

msm: thermal: Add sysfs nodes to control parameters

genirq: Set irq thread to RT priority on creation

percpu_counter: make percpu_counters_lock irq-safe

percpu_counter: update debugobjects fixup callbacks return type

percpu_counter: batch size aware __percpu_counter_compare()

lib/percpu_counter.c: fix bad percpu counter state during suspend

qseecom: release ION memory if qseecom failed to unload app

sched/core: Fix &rd->rto_mask memory leak

sched, smp: Correctly deal with nested sleeps

sched: Fix sleep time double accounting in enqueue entity

sched: Add a check for cpu unbound deferrable timers

BACKPORT: sched: Fix cpu_active_mask/cpu_online_mask race

sched/deadline: Unify dl_time_before() usage

sched/deadline: Fix wrap-around in DL heap

sched/core: Fix &rd->cpudl memory leak

sched/rt/nohz: Stop scheduler tick if running realtime task

cpu_pm/rt: replace rt rwlock with raw spinlock

sched/deadline: Don't check SD_BALANCE_FORK

sched/core: Enable increased load resolution on 64-bit kernels

sched/deadline: Optimize pull_dl_task()

arm64: traps: simplify die() and __die()

arm64: Fix compilation error on UP builds

arm64: fix missing syscall trace exit

arm64: Tell irq work about self IPI support

sched: Fix odd values in effective_load() calculations

BACKPORT: arm64: Correctly bounds check virt_addr_valid

msm: msm_bus: Fix memory corruption in alloc_handle_lst

sched: Use cached value of span instead of calling sched_domain_span()

sched: Create for_each_sd_topology()

sched: Don't set sd->child to NULL when it is already NULL

sched: Don't initialize alloc_state in build_sched_domains()

sched: Optimize build_sched_domains() for saving first SD node for a cpu

sched: Remove unused params of build_sched_domain()

sched: Clean up idle task SMP logic

drivers: cpu-boost: optimize policy update loop on input cpufreq boost

sound: msm: qdsp6v2: fix memset-transposed-args warning

mdss: dsi: Fix null dereferences

msm: mdss: Fix potential pipe NULL pointer dereference

cpufeature: correctly annotate the module init function

arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx.

arm64: PSCI Wrapper for branch predictor flush.

arm64: Implement branch predictor hardening for cortex A57, A72.

arm64: Add skeleton to harden the branch predictor against aliasing attacks.

drivers/firmware: Expose psci_get_version through psci_ops structure.

arm64: Move post_ttbr_update_workaround to C code.

arm64: Delay ELF HWCAP initialisation until all CPUs are up

msm: ipa: Prevent deletion of the default route rule

md: dm-req-crypt: fixed error propagation when ICE is used

fs: dcache: Allow sharing external names after __d_move()

fs: dcache: new helper: dentry_free()

msm: ipa: Fix to add string NULL terminator

mmc: cmdq-hci: Change unnecessary pr_err logs to pr_debug

mmc: sdhci: Avoid leaking kernel addresses

ASoC: msm: qdsp6v2: check for buffer size before read

ASoC: wcd_cpe_core: Add mutex lock for CPE session

diag: Validate copying length against source buffer length

UPSTREAM: sysfs: add sysfs_create/remove_groups()

UPSTREAM: selinux: enable genfscon labeling for tracefs

BACKPORT: pids: make task_tgid_nr_ns() safe

BACKPORT: net: xfrm: support setting an output mark

CHROMIUM: oom: do not select new victim if current one is runnable

panic: add cpu/pid to warn_slowpath_common in WARNING printk()s

compiler.h: squashed commit

ion: adjust system heap pool orders

arch/arm64: skip randomization within stack

cpufreq: Iterate over all the possible cpus to create powerstats.

block: maple: Use better presets

irq_work: improve the flag definitions

sched: Prefer awake CPUs over idle

enable SYN_COOKIES,INET_LRO(Large Receive Offload),SYSVIPC(MIUI-MM)

ipc: fake System V IPC syscalls to allow booting with Android 7.0+

binder_n: make more close to stock for miui-MM (from hydrogen-m-oss)

BACKPORT: futex: Prevent overflow by strengthen input validation

crypto: speck - add test vectors for Speck64-XTS

crypto: speck - add test vectors for Speck128-XTS

BACKPORT: crypto: arm64/speck - add NEON-accelerated implementation of Speck-XTS

crypto: speck - export common helpers

crypto: add support for the Speck block cipher

sched: Set sched_upmigrate_min_nice to 9

arm64: thread_info remove stale items

cpufreq: preserve user_policy across suspend/resume

cpufreq: Clean up after a failing light-weight initialization

cpufreq: use memcpy() to copy policy

cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE}

mnt: Add a per mount namespace limit on the number of mounts

fs/xattr.c: zero out memory copied to userspace in getxattr

fs: xattr: Use kvfree()

fs: add useful debug info to eventpoll string

Fixes:-

dts: tweakCPU Undervolting

msm_thermal: change tunable permissions

revert "mm: process_reclaim: Don't use work_pending()

revert "fs: splice: introduce FMODE_SPLICE_READ and FMODE_SPLICE_WRITE

revert "msm: mdss: Avoid calling wake_up_all() twice in display thread

revert "msm: mdss: fix race condition between rotator api's

revert "msm: mdss: fix race condition between commit and power off

Revert "msm8976/56: dts: enable adreno POPP"

AGNi specific additions:-

AGNi Control: make 2100mA default max charging current

AGNi Control: remove useless cpu governor options

AGNi Control,Spectrum balanced: tweak default interactive governor parameters

AGNi Installer: change thermal libs replacemnt handling

AGNi Installer: add warm screen option during installation

AGNi Installer: add EXPERIMENTAL option to force firmware 0x20 flash for replaced Focaltech touchscreens

AGNi Installer: add more boost options for earpiece speaker

AGNi Installer: disable adreno idler & use only on spectrum battery profile

AGNi Installer: tweak cpu undervolt values

AGNi Installer: fix handling of selinux enforcement

AGNi Installer: try to fix Spectrum support

AGNi Installer: tweak lmk,swappiness for 2gb devices

AGNi Installer: disable backlight dimmer by default for [MIUI-MM/N]

AGNi Installer: disable goodix-libs install for [MIUI-MM/N]

AGNi Installer: disable system apps - com.miui.whetstone,com.miui.analytics [MIUI-MM/N]

DOWNLOAD MIUI-MM v12.7 (reuploaded)

DOWNLOAD MIUI-N v12.7 (reuploaded)

(attached thumbnails - Quickcharge normal at 9v and after AGNi pseudoQC modification to limit voltage around 5 to 6v)[sent by tester]

different chargers behave differently, still no guarantees !