- LBC supervisor v1..v4 (linux/patches/b10b3-lbc-supervisor-v3.patch + b10/b10b3/lbc-v3-to-v4-fault-clamp.diff): CHARGING 4.20 V/450 mA -> HOLD 4.05 V after 60 min CV -> battery -> new cycle on USB insert; FAULT = VDD_MAX 4.00 V clamp - RAM tests C/B/D/D2/D3/D4 (safety timer only ends fast charge), B10B-4 actuator audit (VDD_MAX works, USB_SUSP does not), B10B-5 FAULT clamp regression, production run, warm reboot via PON reboot reason - cache = B10B-5 c3732515 (HW EDL write, readback + full partition verify), class-A persistent validation - test-only hooks/images are not part of the production kernel; images with the AP PSK are not published
2.4 KiB
2.4 KiB
B10B-4 TEST-ONLY actuator hook — build review (no board load)
Date: 2026-10-04. Kernel 7.2.7-aurora-b10b4-debug (tree /home/q/aurora-kbuild/src-b10b4 = hardlink copy of src-b10b3 with only
drivers/power/supply/pm8916_lbc.c and drivers/power/supply/Kconfig replaced; build dir out-b10b4; .config = out-b10b3 + LOCALVERSION
"-aurora-b10b4-debug" + CONFIG_CHARGER_PM8916_LBC_B10B4_DEBUG=y). Diff: b10/b10b3/lbc-v3-to-b10b4-debug.diff. Build logs: build-b10b4-kernel-part1/2.log
(part 1 stopped by a harness time limit, part 2 rc=0 in 802 s; no warnings/errors).
- Test-only gating: new Kconfig bool CHARGER_PM8916_LBC_B10B4_DEBUG (default n, depends on CHARGER_PM8916_LBC && DEBUG_FS); all hook code and the
debugfs file are under
#ifdef. Production .config (out-b10b3) has no such symbol; production object has 0 "B10B-4" strings. - debugfs:
pm8916_lbc/b10b4, mode 0200 (root write-only),simple_open, write-only fops; probe logs a dev_warn banner. - Commands: exactly
susp 0|1(USB block + 0x47 = 0x1347, bit0 only,regmap_update_bitsmask BIT(0)),vdd 0..8(0x1040,regmap_write),ibat 0..4(0x1044,regmap_write); one token + one numeric argument, extra/missing tokens, unknown command, out-of-range or non-numeric → -EINVAL before any register access; length ≥ 32 → -EINVAL. - Lock:
mutex_lock(&chg->supv_lock)around read-old → write → readback (the same lock aslbc_supv_workand the constant_charge_current setter). - regmap calls in
lbc_b10b4_write(objdump): regmap_read ×3 call sites (old + readback), regmap_write ×1, regmap_update_bits_base ×1; dev_warn ×2. - Supervisor/state machine v3 unchanged (diff touches only includes, the new hook block and the debugfs registration).
- Image
b10/b10b3/out-b4/aurora-b10b4.imgeeff6820… = kernel Image.gz 2c802f64 + DTBmsm8916-jz08-aurora-b10b4.dtb627d86be (production b10b3 DTB, model string "B10B-4 actuator TEST" only) + B9C initramfs ac518e27 + cmdline 0fef41b2. - Production artifacts verified bit-for-bit unchanged:
b10/b10b3/out(7/7 incl. aurora-b10b3.img b7dc34e9, Image.gz 1164b1c7), cache candidateb10/b10b3/cache(4/4 incl. 86869061), out-p (7/7), out-b10b3 Image.gz 1164b1c7; src-b10b3 pm8916_lbc.c == upstream + v3 patch, src-b10b3 Kconfig == upstream. - Note: the Kconfig block was first inserted inside the CHARGER_PM8916_LBC help text; moved after it (help text only) —
make olddefconfigleaves .config unchanged, no rebuild needed.