Hardware
Every subsystem, and exactly where it stands.
Display / panel
LIVEJDI ganged dual-DSI lit via bootloader handover; sway + Chromium render.
Panel first-boot
CLEANBoth halves clean on every boot of this era (r213+ MIPI-cal + PHY fixes). Corruption now only follows a mid-video host-triggered DCS, and a full power-off clears it.
USB / SSH
LIVEPeripheral-mode gadget net; PHY VBUS software-override was the multi-week fix.
Wi-Fi
LIVEbrcmfmac BCM4354; board-NVRAM + firmware symlink wired.
Bluetooth
LIVEhci0 up, not blocked, full BLE + BR/EDR.
Battery + charger
LIVEmax17050 fuel gauge (=y) + bq24190 charger. Foundation for batteryd.
Touchscreen
LIVESynaptics RMI4 via mainline driver — no vendor blob.
Haptics
LIVEgpio-vibrator bound — the felt-parity motor.
Double-tap wake
LIVEImplemented for real in r4 — it was listed as working for six weeks with no implementing code. Now a daemon, verified.
H.264 decode
FALSIFIEDTegra VDE runs but decodes WRONG PIXELS (mean|diff| 111/255, a BSEV flush timeout per frame), slower than software. Hard ceiling: MAIN profile, no CABAC — web H.264 can never use it.
Compositor
LIVEsway + Wayland; Chromium 150 plays YouTube (software-rendered).
Modem firmware
PACKAGEDAll 7 Qualcomm MDM Sahara blobs harvested non-root + baked into the LTE image.
Speakers
LIVEStereo by ear on two units. DAP pinmux CNF cleared on the tegra30 geometry + PLL locked from BCLK — the fix that earned the renumber to r1.
Backlight / dim
STUCK AT FULLStock dims via DCS 0x51 — master link, vblank-injected, shrink_pwm payload, all confirmed on a rooted unit. Mainline delivers that exact packet cleanly and the panel does not obey: we inherit a live panel from HBOOT and never own its init. Replaying the init late corrupts the display. Next: a real cold init in the vendor order.
GPU accel
PORTINGnouveau binds GK20A but GR-falcon (FECS/GPCCS) won't init — a kernel bug, not missing firmware. Jetson track.
Microphone
SAMPLES, NOT YET VOICEDigital silence SOLVED: the IF1 ADC TDM slot swap (3/1/2/4) was the gate, negative-tested twice. Samples are non-zero but unproven as a mic — gain and physical input still open.
Headphone / AUX
LIVEAudible by ear. LOUT rerouted through the RT5506 amp so its DAPM widgets actually power.
LTE modem
PORTINGExternal Qualcomm MDM over HSIC; blobs + boot recipe captured. qdl → rmtfs → ModemManager.
Sensors
LIVEOur cwmcu IIO driver (patches 121/128/130): accel reads gravity, magnetometer a real field vector, ALS real lux — on two units. Gyro reads ~0 at rest and still needs a moving-tablet probe.
Suspend (LP0)
PORTINGs2idle hangs; true RAM-suspend needs AOTAG firmware not upstreamed.
NFC
QUEUEDBCM20795 firmware harvested; driver bring-up not started.
Cameras
QUEUEDFront/rear sensors unprobed.
Beyond Android
Kernel-level capabilities the stock 3.10 firmware never allowed — the parity ceiling raised, not just met.
Battery intelligence
batteryd caps charge at a mid-SoC band and tracks State-of-Health — the pack stops living at 100% 24/7.
Firmware-free HW video
H.264 decode on the reverse-engineered Tegra VDE — no proprietary blob, no GPU dependency.
Gesture navigation
Swipe-based nav with haptic commit and paired audio cues — no dependency on the vanished nav bar.
Double-tap-to-wake
Wake-from-black straight through the mainline RMI4 touch driver — no vendor wake blob.
A living kernel
An unmodified upstream 6.19 kernel where Android froze at 3.10 — a decade of security and driver work.
Live sprint
What's on the bench right now.
Built-in speakers — the last register
One DMA stream broadcast to both I2S buses in hardware — I2S2 RX CIF re-pointed at I2S1's TX FIFO. Samples reach the amp pins.
The TFA9895 output-stage LDO that HTC's board code drove at boot — found in the downstream board file, now a DT gpio-hog.
The amp sits at SYS_CTRL 0x091d (PWDN=1) — the fan-out delivers audio below DAPM, so the codec never gets its power-up event. Fix: force-enable its POWER + AMPE widgets so the driver clears PWDN itself.
Data ✓ + power ✓ + amp-wake → first-ever N9 speaker audio on mainline. Verdict is by ear.