Appendix · reference

Commit timeline

Project history, auto-rendered from git log.

The full commit history of this repo, newest first. Each subject is a link to the commit on GitLab. Generated at site-build time from git log, so the snapshot here always matches the commit the site was built from.

For a narrative pass through the same history grouped by subsystem, read the essays — every essay’s frontmatter commits: field references the actual SHAs that produced the work it describes.

Full history

2026-05-10 849f01e Revert "fusb302: wait for chip BMC ACTIVITY=0 before TX_START"
2026-05-10 0388510 fusb302: wait for chip BMC ACTIVITY=0 before TX_START
2026-05-10 fed4a17 fusb302: TX_FLUSH before each TX to clear post-auto-GoodCRC latch
2026-05-10 749c4f2 fusb302: restore CONTROL0.TX_START write, OR with HOST_CUR_DEF
2026-05-10 cdde9b8 fusb302: drop CONTROL0.TX_START write, clear INT_MASK on source attach
2026-05-10 b6fd0bb fusb302: preserve POWERROLE/DATAROLE on rev-downgrade in source mode
2026-05-10 e6761b0 fusb302: defer first Source_Cap + reset PD session state on source-attach
2026-05-10 1256a8c fusb302: unmask TX/RX completion IRQs on source-attach
2026-05-10 05a091f site: essay 17 — DWC3 runtime role swap
2026-05-10 5fdec51 dwc3: drop role_swap diagnostic printfs (root cause fixed)
2026-05-10 8d886ad dwc3: release gadget IRQ in quiesce so xhci can claim it
2026-05-10 7cda476 dwc3: tighter instrumentation — print before AND after each call
2026-05-10 ecedc69 dwc3: instrument role_swap so the next wedge tells us where it hangs
2026-05-10 5db9a9c dwc3: park gadget before chip soft-reset on role swap
2026-05-09 75485c6 dwc3: hw.dwc3.role_swap sysctl — attempt runtime gadget→host alongside
2026-05-09 14a9677 dwc3: hw.dwc3.prtcap sysctl for live PRTCAPDIR toggle (no child re-attach)
2026-05-09 a05ac29 cdn_dp: DPTX_READ_LINK_STAT is 10 bytes on firmware ver 0x0475
2026-05-09 ac9fa97 cdn_dp: force_train sysctl — DPTX_TRAINING_CONTROL without HPD
2026-05-09 8251d00 cdn_dp: event_config is fire-and-forget on this firmware
2026-05-09 388e88c cdn_dp: M4.5 — HPD/EDID/DPCD probe via sysctl + event enable
2026-05-09 94ef76f cdn_dp: activate firmware via GENERAL_MAIN_CONTROL before DPTX commands
2026-05-09 7ae78a5 cdn_dp: M4.4 — mailbox protocol + DPTX_HPD_STATE smoke test
2026-05-09 5228985 cdn_dp: M4.3 — boot UCPU and read back firmware version
2026-05-09 014fc1e cdn_dp: load rockchip/dptx.bin firmware via cdn_dpfw kld
2026-05-09 d4e3f0b contrib/dev/cdn_dp: add Rockchip dptx.bin firmware blob + license
2026-05-09 a53baea cdn_dp: defer attach to normal pass so rk_typec_phy registers first
2026-05-09 345540b rk_typec_phy: register dp-port child as phy provider too
2026-05-09 b346afb cdn_dp: skeleton driver — probe + attach to rockchip,rk3399-cdn-dp
2026-05-09 049b17f docs: M4 part 1 design — cdn_dp skeleton driver
2026-05-09 e99c3a7 fusb302: M2 — source-side PE for PD contract (Source_Caps + Accept + PS_RDY)
2026-05-09 a4e8190 docs: M2 design — minimum source-side PE for PD contract
2026-05-09 04ac9aa fusb302: M1 cleanup — tighten vdm_pending locking, MPSAFE sysctl
2026-05-09 a21647f site: M1 wrap — first PD VDMs on the wire, partner contract still open
2026-05-09 e688293 fusb302: vdm_discover always fires + entry trace + clear stale pending
2026-05-08 5701eca fusb302: snapshot SVID counts under lock for stable log line
2026-05-08 e280d44 fusb302: parse Discover SVIDs response, set dp_svid_seen
2026-05-08 d980f03 fusb302: mark dp_partner_svids sysctl MPSAFE (no Giant required)
2026-05-08 f22811c fusb302: vdm_discover sysctl trigger + dp_svid_seen surface
2026-05-08 73d6910 fusb302: VDM NAK/BUSY decrements vdm_pending (match ACK path)
2026-05-08 2b358bb fusb302: VDM RX dispatch stub + softc fields
2026-05-08 65792c1 fusb302: add VDM send helper and role-aware pd_send
2026-05-08 e87ad5d fusb302: fix build_header syntax error (remove duplicate static uint16_t)
2026-05-08 c9ce26b fusb302: parameterise build_header for data/power role
2026-05-08 bb9f887 fusb302: U suffix on PD_VDM_SID / DP_SID for sign-extension safety
2026-05-08 a4e22b3 fusb302: add PD VDM Header constants and helpers (no-op)
2026-05-08 31521c3 docs: fusb302 audit - fix code-review nits (softc loc, role params, cite format)
2026-05-08 68f81ce docs: fusb302 PD message audit pre-VDM bring-up
2026-05-08 21903bc docs: fix two PD_DATATYPE typos in fusb302 VDM plan
2026-05-08 faa98ed docs: implementation plan for fusb302 PD VDM Discover M0+M1
2026-05-08 cbf59c7 docs: usb-c displayport bring-up design
2026-05-08 da9b079 site: SuperSpeed lanes light up, axge brings AX88179 up as ue0
2026-05-08 1dbe486 rk_typec_phy: add tunable USB-3 SuperSpeed bring-up
2026-05-08 5589d8a PINEPHONE_PRO: add axge / axe / ure for downstream USB Ethernet
2026-05-08 1b4004e site: usb-c host mode and source role enumerated a real hub
2026-05-07 5a1cb12 dwc3: log host-attach state unconditionally
2026-05-07 31de592 site: document usb-c host-mode bringup
2026-05-07 16a9f5e dwc3: add host-mode boot override
2026-05-07 4e5d139 fusb302: retry transient i2c transfer failures
2026-05-07 ebd8587 fusb302: return non-retry error for source guard
2026-05-07 c3ed085 rk818: avoid live i2c in voltage callback
2026-05-07 f754656 typec: guard source role on battery voltage
2026-05-07 628e536 fusb302: poll source CC attach state
2026-05-07 4d99f76 fusb302: declare state helper before source mode
2026-05-07 0a71be0 fusb302: program manual source role
2026-05-07 ef7dff9 docs: reconcile pinephone hardware statuses
2026-05-07 4ca927d docs: record tsadc qsel irq proof
2026-05-06 a856481 thermal: tighten tsadc irq bench accounting
2026-05-06 e4017e7 thermal: enable tsadc hardware qsel
2026-05-06 0497253 thermal: add runtime tsadc irq bench
2026-05-06 541ebe1 thermal: preserve normal gpu cap baseline
2026-05-06 6e41b70 thermal: detach guard rc stdio
2026-05-06 a7ba6e3 thermal: back out unsafe cpufreq caps
2026-05-06 9f0c281 thermal: cap CPU via cpufreq priority
2026-05-06 c5e4154 thermal: add soft policy verifier
2026-05-06 5f36e23 site: document confirmed internal mic capture
2026-05-06 0624070 rt5640: default DMIC to verified internal mic mode
2026-05-06 7367f66 rk_i2s: clear FIFOs after shared engine stop
2026-05-06 174d61f rt5640: avoid sleeping I2C in trigger
2026-05-06 636743a rk_i2s: start TX with capture like Linux
2026-05-06 5852817 rt5640: expose DMIC capture tuning knobs
2026-05-06 de1e38a audio: quiet amp sysclk and expose rt5640 clock
2026-05-06 35229b9 rt5640: document DMIC divider evidence
2026-05-06 9ea4599 rt5640: follow Linux DMIC data-pin binding
2026-05-06 9c7c04b rt5640: declare modify helper before DMIC apply
2026-05-06 566c384 rt5640: route DMIC pins through GPIO mux
2026-05-06 4c2c9e7 audio_soc: stop cpu dai before codec
2026-05-06 36cbc9c rt5640: declare write helper before DMIC apply
2026-05-06 0ed81d9 rt5640: add bounded DMIC tuning controls
2026-05-06 82392f6 rk_i2s: soften capture startup
2026-05-06 853796d audio: route firefox media away from pulseaudio
2026-05-06 68eba13 gpu: make wedge receipt skip stuck sysctls
2026-05-06 386f0f6 gpu: add live wedge capture receipt
2026-05-06 a97cacf phone: keep lisgd session-owned
2026-05-06 aeb159f site: record BCM43455 large-transfer proof
2026-05-06 2e6db9b site: document BCM43455 SDIO clock fix
2026-05-06 8c61d6d sdiob: enable SDIO run clock by default
2026-05-06 6e1221b sdiob: gate SDIO run clock experiment
2026-05-06 04b3817 sdiob: request run clock after SDIO discovery
2026-05-06 cf62d1b dwmmc: raise RK3399 SDIO CIU clock for high-speed traffic
2026-05-06 3fc6aac bwfm: reschedule SDIO task while TX queue has credits
2026-05-06 08a1c04 bwfm: keep rx glom parser out of disabled path
2026-05-06 b52c010 bwfm: fix rx glom parser build
2026-05-06 a7e0718 bwfm: add runtime SDIO rx glom parser
2026-05-05 6f28d6e Revert "bwfm: add experimental SDIO rx glom path"
2026-05-05 1eb35cc Revert "bwfm: include endian helpers for glom parser"
2026-05-05 fe93bae Revert "bwfm: expose rx glom parser diagnostics"
2026-05-05 d5e3467 Revert "bwfm: gate rx glom behind runtime sysctl"
2026-05-05 3d56f23 bwfm: gate rx glom behind runtime sysctl
2026-05-05 b431a34 bwfm: expose rx glom parser diagnostics
2026-05-05 f440bd3 bwfm: include endian helpers for glom parser
2026-05-05 df545fd bwfm: add experimental SDIO rx glom path
2026-05-05 a70d431 bwfm: add SDIO datapath perf counters
2026-05-05 dcd7f5e docs: record WiFi throughput retest
2026-05-05 32c352d docs: record USB Ethernet throughput
2026-05-05 37c3d3a docs: clarify WiFi IRQ status
2026-05-05 70e9d2c docs: record glmark2 thermal soak
2026-05-05 2b134eb panfrost: wait for GPU reset completion
2026-05-05 6c2af29 phone: restore thermal guard baseline caps
2026-05-05 849d54f phone: fix thermal guard rc wrapper
2026-05-05 a6558c2 phone: add thermal guard service
2026-05-05 6bc4133 docs: record soft thermal governor validation
2026-05-05 da186b5 rk_tsadc: only lower soft thermal caps
2026-05-05 5780197 rk_tsadc: add soft thermal governor
2026-05-05 9d0bc99 phone menu: surface GPU DVFS and thermal plan
2026-05-05 fdec208 docs: record Panfrost DVFS bring-up
2026-05-05 3bfc1d0 panfrost: avoid max clock for light auto work
2026-05-05 70a9c84 panfrost: quiet DVFS transition logging
2026-05-05 d3b80a7 panfrost: avoid active-job DVFS transitions
2026-05-05 737b881 panfrost: suppress no-op DVFS transitions
2026-05-05 59bde6a panfrost: add OPP-aware GPU DVFS
2026-05-05 9e02e6d docs: explain libdrm platform enumeration
2026-05-05 0eea8bd docs: record panfrost stress results
2026-05-05 75ad390 docs: correct TSADC native-q bench result
2026-05-05 fe7c539 docs: record TSADC comparator bench result
2026-05-05 4b97aca rk_tsadc: add guarded comparator IRQ bench knobs
2026-05-05 0b6febc docs: record RK3399 TSADC q-select fix
2026-05-05 e1f73c5 rk_tsadc: disarm IRQs in software q-select mode
2026-05-05 1e663e9 rk_tsadc: program comparators in native q domain
2026-05-05 ede7969 rk_tsadc: derive RK3399 q-select code in software
2026-05-05 798340c mise: make honor tasks portable from FreeBSD
2026-05-05 b1876e5 rk_tsadc: enable RK3399 q-select thermal readout
2026-05-05 47bb7a9 phone: restore GPU sway and expose thermal state
2026-05-05 4352319 bcm_hostwake: fix standalone module build
2026-05-05 a3236bd firefox: vendor mobile phone chrome config
2026-05-05 79b58d7 omfreebdy: restore bash shell and swaybar ownership
2026-05-05 00c2339 site: record WiFi PM evidence
2026-05-05 2458d80 bwfm: expose firmware power save control
2026-05-05 fb81d0f rk_vop: mask vblank interrupts when idle
2026-05-05 a962cf5 bwfm: keep MPC off after active scans
2026-05-05 0f16175 site: record Rockchip SDIO IRQ fix
2026-05-05 9703c32 bwfm: defer SDIO IRQ tasking during attach
2026-05-05 c312250 dwmmc: use Rockchip SDIO interrupt bit
2026-05-05 e653c92 site: record phone ui repair details
2026-05-05 a187d21 overlay: leave phone fuzzel edge gutters
2026-05-05 524f84f overlay: enlarge phone fuzzel launcher
2026-05-05 add7f67 overlay: make phone theme switching fail-safe
2026-05-05 ab1101b overlay: restore image swaybg with pixbuf cache
2026-05-05 86ea58d overlay: repair phone sway theme userland
2026-05-04 aced94d rk_vop: use crtc drm device for event lock
2026-05-04 fee7f1f rk_vop: register latch counters after attach
2026-05-04 583e66c rk_vop: latch page-flip events until FS_INTR
2026-05-04 f171197 site: record sway autostart isolation
2026-05-04 b2a9e81 site: record VOP wedge follow-up
2026-05-04 a830a08 rk_vop: restore atomic vblank wait
2026-05-04 d7bd9b5 drm: instrument panfrost scanout imports
2026-05-04 02b07b8 work-log 2026-05-04: GPU EGL/Mesa stack unblocked, panel still black
2026-05-04 b923e26 Revert "rk_plane: temporarily instrument atomic_update with real device_printf"
2026-05-04 65535b5 Revert "rk_plane: log dst/src rects in atomic_update — diagnostic"
2026-05-04 a618e1d rk_plane: log dst/src rects in atomic_update — diagnostic
2026-05-04 a34a9c8 rk_plane: temporarily instrument atomic_update with real device_printf
2026-05-04 3c6af28 ports: pin libdrm patch for FreeBSD platform DRM enumeration
2026-05-04 d900b71 overlay+site: powerd on by default, document the wifi+CRU fixes
2026-05-04 13e94af rk_cru: per-PLL whitelist for RK3399 PLL register window
2026-05-04 4f93cc4 bwfm: extend fn2-enable timeout to 5 s, log mbdata on timeout
2026-05-04 c593dc3 Revert "rk_spi: write CTRLR1 frame count before enable_chip"
2026-05-04 bef5863 rk_spi: write CTRLR1 frame count before enable_chip
2026-05-04 6f93843 Revert mmc_pwrseq attach power-cycle — doesn't fix bwfm fn2 timeout
2026-05-04 dc84ef5 mmc_pwrseq: regenerate patch via diff -u (clean unified format)
2026-05-04 ec98b59 mmc_pwrseq: simplify patch hunk — no trailing context with blank line
2026-05-04 e570253 mmc_pwrseq: fix patch hunk start line (113 not 107)
2026-05-04 612d375 mmc_pwrseq: fix patch — leading space on empty context line
2026-05-04 3f58023 mmc_pwrseq: complete the power cycle in attach()
2026-05-04 2859eb1 site: modeset-lock wedge re-confirmed on #145, flip claim back
2026-05-04 b81e9a1 AGENTS.md: phone now boots from eMMC, not SD
2026-05-04 2701d5a site: work log 2026-05-04 — eMMC migration arc
2026-05-03 929e3e5 PINEPHONE_PRO: temporarily disable rk_power_domain
2026-05-03 929f3e0 site: add work log for 2026-05-03 session + remaining-gaps roadmap
2026-05-03 4e6ffe4 overlay/rc.conf: switch wlan0 to background DHCP
2026-05-03 2c93eaa site: rk_power_domain working — sysctl-only first cut, framework next
2026-05-03 84175f0 rk_power_domain: use OF_decode_addr instead of fdtbus_bs_tag
2026-05-03 42dbab2 files.arm64: fix hunk count after rk_power_domain addition
2026-05-03 227e58b rk_power_domain: sysctl-only RK3399 PMU power-domain controller
2026-05-03 08f4629 site: correct essay 16 DP-Alt claim — silicon supports it, FreeBSD just doesn't yet
2026-05-03 0bef599 site: fix component matrix header counts (31/7/0/7)
2026-05-03 b0b8400 site: promote 4 fully-working drivers, document userspace gaps
2026-05-03 8d7d7be site: document rk_tsadc trim_offset_mc calibration
2026-05-03 7613729 rk_tsadc: make trim_offset_mc writable + tunable
2026-05-03 30c0220 site: mark modeset-lock + GPU-stress wedges as unconfirmed on #141
2026-05-03 18eeb81 Revert "rk_spi: write CTRLR1 frame count before each transfer"
2026-05-03 f0768d4 rk_spi: write CTRLR1 frame count before each transfer
2026-05-03 b43c96b spi-nor: revert SPI clock/CPHA debug knobs
2026-05-03 77bd439 spi-nor: try spi-cpha to chase rk_spi RDID skew
2026-05-03 0ff2f20 spi-nor: drop spi-max-frequency to 1 MHz to debug RDID skew
2026-05-03 65913b5 site: promote rk_tsadc / magnetometer / sgm3140 / rk818 to working
2026-05-03 3b6cb7b magnetometer: fix reset-gpio polarity in attach pulse
2026-05-03 31c69f6 magnetometer: deassert reset-gpio before first I2C read
2026-05-02 b7ec39b dtb: build sgm3140 overlay as part of the rockchip dtb modules
2026-05-02 54a3b6c site: add CC1 + prepared-sink contract war story to essay 16
2026-05-02 544bd86 rk818: preserve prepared Type-C sink path
2026-05-02 036fecc fusb302: keep sink Rd on both CC pins
2026-05-02 9041600 rk818: hold SWITCH2 through TCPC probe
2026-05-02 06348c6 fusb302: prepare sink path after TCPC attach
2026-05-02 8eac8e7 site: correct RK818 OTG switch docs
2026-05-02 4d190f3 rk818: decouple SWITCH2 from Type-C OTG
2026-05-02 6351db4 rk8xx: gate PMIC IRQ behind tunable
2026-05-02 65a65a1 rk8xx: carry PMIC IRQ parent as overlay
2026-05-02 6399b97 rk8xx: use insertion hunks for IRQ patch
2026-05-02 aa76411 rk8xx: fix IRQ patch hunk count
2026-05-02 d1b3a0b rk818: drive charger updates from PMIC IRQ
2026-05-02 17df9ff site: document power supply cleanup
2026-05-02 b8223f6 wifi: wait longer for bwfm boot attach
2026-05-02 2036021 power: fix files.arm64 patch hunk
2026-05-02 6469f2e power: add charger coordination layer
2026-05-02 ccd3862 rk818: publish charger after lock init
2026-05-02 d51baa8 fusb302: settle non-PD Type-C sources
2026-05-02 6cb29ab usb-c: roll back post-wednesday role scaffold
2026-05-02 3f72b0e rk_vop: roll back unproven vblank latch
2026-05-01 401937c pinetab2: add rk817 battery monitor
2026-05-01 b341a40 pinetab2: adapt goodix driver for gt911
2026-05-01 0ff363c pinetab2: support gpio switch events
2026-05-01 7ba7c44 pinetab2: prepare saradc volume keys
2026-05-01 76ebfe4 pinetab2: add sc7a20 accelerometer candidate
2026-05-01 37cf86d pinetab2: add first boot receipt tool
2026-05-01 1144cb1 pinetab2: quiet first boot device tree
2026-05-01 3144a7d pinetab2: enable MMCCAM for SDIO modules
2026-05-01 ad523b3 pinetab2: add first boot staging tools
2026-05-01 6eac91c pinetab2: add first boot kernel and dtb
2026-05-01 97703f2 site: add pinephone pro board index
2026-05-01 b81b6c0 ci: install bash for site tests
2026-05-01 b3475a2 site: add pinetab2 board index
2026-05-01 35f9366 site: improve mobile hardware references
2026-05-01 9cc4896 site: split board hardware references
2026-05-01 e8d6b2c fix: close candidate driver audit risks
2026-05-01 94a0721 fix: align candidate drivers with references
2026-05-01 75df20e build: retry coppice snapshot cleanup
2026-05-01 86aa107 build: add coppice source-cache snapshots
2026-05-01 6c5a589 docs: record coppice kernel smoke pass
2026-05-01 41aead6 build: include rk818 charger helper
2026-05-01 fda814e build: detach coppice kernel smoke
2026-05-01 de0c2cd tools: harden coppice build smoke
2026-05-01 08df16a docs: refresh phone support status
2026-05-01 a3f8407 hardware: correct PinePhone Pro spec map
2026-05-01 f2958d5 coppice: harden build smoke networking
2026-05-01 38a3fd4 coppice: add build smoke preflight
2026-05-01 7ec541a site: log phone bench prep work
2026-05-01 41c2bfa bench: add phone receipt analyzer
2026-05-01 9009f9f bench: add phone receipt bundle
2026-05-01 70763a9 sensors: add combined phone receipt
2026-05-01 b957995 gd25lq128: add read-only bench verifier
2026-05-01 47cd7e0 sgm3140: add bounded flash bench helper
2026-05-01 e3b9325 vibrator: quiesce on suspend
2026-05-01 d3857f0 vibrator: add rumble bench verifier
2026-05-01 5e5c8f8 vibrator: add gpio rumble candidate
2026-05-01 309ce76 tsadc: leave hardware shutdown disarmed by default
2026-04-30 59b7587 magnetometer: add polled raw axis reads
2026-04-30 f406007 wifi: add fallback rate matrix runner
2026-04-30 e6740a1 wifi: classify debug receipts
2026-04-30 8f89c06 bwfm_sdio: make poll fallback rate tunable
2026-04-30 b58ce61 wifi: capture irq fallback receipts
2026-04-30 1897d56 bwfm_sdio: expose poll fallback mode
2026-04-30 340dc6f usb-pd wifi sdio parity followups
2026-04-30 36d4794 rk_vop: latch page-flip events until FS_INTR
2026-04-30 e0ad0ad fusb302 + rk818: source-role / OTG path scaffold
2026-04-30 437cd8d docs: correct rt5640 register/bit info caught by implementation agents
2026-04-30 355600c rt5640: power analog headset capture chain on recsrc=headset
2026-04-30 335f2de pl330: enable RK3399 DMA controllers (dmac_bus + dmac_peri)
2026-04-30 111af72 overlay: phone-orientation + phone-proximity userland scripts
2026-04-30 5dd4330 mpu6500 + stk3311: IRQ-driven sample updates
2026-04-30 c3f2674 rk818: expose battery gauge to userspace via sysctls
2026-04-30 75660ac bwfm: gate ctrl-credit reservation by TX-queue head, not unconditionally
2026-04-30 0449a26 rk_tsadc: port RK3399 thermal sensor driver from Linux mainline
2026-04-30 141c927 bwfm: control-frame credits, EAPOL priority, BCM43455 scan v0 shortcut
2026-04-30 26998bd rt5640: enable DMIC1 microphone capture path
2026-04-30 85f2299 rk_tsadc: port RK3399 thermal sensor driver from Linux mainline
2026-04-30 6240500 site: components matrix reflects wave-2 implementation status
2026-04-30 d5258bf docs: sweep HARDWARE.md and hardware.mdx for stale info
2026-04-30 132d03f rk_efuse: port RK3399 eFuse driver from Linux mainline
2026-04-30 83ab0d0 magnetometer: i2c4@0x0c probe scaffold (AK09911 vs AF8133J)
2026-04-30 06002ba sgm3140: expose flash + torch as gpioled(4) consumers
2026-04-30 cd593f5 rt5640: defer init to taskqueue (LOR fix, matches Linux regmap pattern)
2026-04-30 a272046 vibrator: expose motor as /dev/led/vibrator gpioled consumer
2026-04-30 d17cd14 fusb302: post-Hard_Reset recovery without manual reattach
2026-04-30 21b88a8 rk_vop: ack only fired interrupts; restore wait_for_vblanks
2026-04-30 6523c81 gd25lq128: status delta + parity bench plan
2026-04-30 ce9c277 bwfm: NVRAM trailing-NUL count matches Linux
2026-04-30 149b97c site: per-component reference pages + matrix index for the PinePhone Pro
2026-04-30 89431f1 site: cross-driver audit appendix — Linux/OpenBSD comparison + open-wedge root causes
2026-04-30 30977bf site: log SDIO IRQ enablement series + reframe GPU next as the modeset wedge
2026-04-30 5df226f Retry Pages deployment
2026-04-30 fd96034 Clarify WiFi finishing plan on site
2026-04-29 5c4b836 Keep DWMMC clock running for SDIO IRQ
2026-04-29 4551918 Avoid SDIO transactions in debug sysctls
2026-04-29 1dc2f2a Bound WiFi transfer debug snapshots
2026-04-29 c907a95 Add passive WiFi IRQ state sysctls
2026-04-29 fe0d986 Make WiFi transfer trace dumps opt-in
2026-04-29 3a9470a Instrument SDIO IRQ bringup state
2026-04-29 db845c8 Keep bwfm poll fallback during IRQ bringup
2026-04-29 66f6174 Fix dwmmc DMA interrupt handling with SDIO IRQ
2026-04-29 916fe51 Add SDIO IRQ support for bwfm
2026-04-29 9b91e46 site: log latest WiFi stability work
2026-04-29 3ae7795 Defer bwfm firmware key deletes
2026-04-29 6a4965e Use net80211 TX completion helper
2026-04-29 edea1e8 Improve bwfm TX queue accounting
2026-04-29 f606fc5 Fix bwfm net80211 TX mbuf ownership
2026-04-29 4ea189c Harden bwfm SDIO bounce buffer bounds
2026-04-29 eaef93a Fix WiFi transfer harness quoting
2026-04-29 0a3d215 Add WiFi transfer debug harness
2026-04-29 fd7fd70 Add bwfm SDIO task trace
2026-04-29 395005f Disable unsupported bwfm SDIO glomming
2026-04-29 3aab580 Answer loader terminal query in serial logger
2026-04-29 f0285df Instrument bwfm SDIO TX path
2026-04-29 0f7cd11 site: document modeset-lock wedge reproduction + open WarStory
2026-04-29 279739c scripts/wedge-repro: deterministic load generator for the modeset-lock wedge
2026-04-29 e22bae6 drm: gate WARN_ON kdb_backtrace+panic behind sysctls for wedge debugging
2026-04-29 31bfa1f bwfm: enable 802.11n / HT advertisement, disable firmware power save
2026-04-29 582e402 fusb302+rk818: add manual source-role sysctl for USB-C OTG host mode
2026-04-29 329517a site: reconcile essay statuses with reality (touch working, GPU partial)
2026-04-29 33e5f28 rk818: force-clear OTG/SWITCH2 from periodic dump too
2026-04-29 9dd8ffc site: rk818 charge fault resolved — DCDC_EN.OTG/SWITCH2 was the answer
2026-04-29 8da75ba rk818: clear OTG/SWITCH2 in DCDC_EN — battery now charges from PD
2026-04-29 c11afd2 rk818: correct INT_STS register addresses + decoded bit names
2026-04-28 8f68bf9 rk818: forward decls for the new helpers (build fix for f8e26a1)
2026-04-28 f8e26a1 rk818: live debug — periodic dump, peek/poke sysctls, set USB_VLIM_EN
2026-04-28 8deedba fusb302: handle inbound Hard_Reset (INTA.HARDRST)
2026-04-28 5c662e5 site: appendix entry on rk818 charger stuck in discharging
2026-04-28 d4e3c83 rk818: decode SUP_STS FSM + dump USB_CTRL in charger status
2026-04-28 4e5a98d rk818: dump charger status after USB input-limit write (real diff)
2026-04-28 3814faf rk818: dump charger status after USB input-limit write
2026-04-28 f3d490a site: add callout(9) driver audit appendix
2026-04-28 12a63fe fusb302: PD timers via callout instead of state-age polling
2026-04-28 e6ca263 fusb302: send Request from EVALUATE, not SELECT
2026-04-28 045efa2 fusb302: event-driven TX completion + per-TX retry program + COLLISION unmask
2026-04-28 a8b584d fusb302: default GoodCRC to Rev3 (downgrade only on Rev2 partner)
2026-04-28 ee8daad fusb302: dynamic SPECREV, programmed MEASURE/POWER, rx_msgid tracking
2026-04-28 ce438be fusb302: reattach now drops Rd for 200ms before re-init
2026-04-28 94b42f7 fusb302: re-detect orientation on BC_LVL drop, add reattach sysctl
2026-04-28 721a522 Revert "fusb302: drop CONTROL0.TX_START write — TXON token in FIFO fires the PHY"
2026-04-28 5ca6317 fusb302: switch from 10ms polling to IRQ-driven worker
2026-04-28 a1c839d fusb302: drop CONTROL0.TX_START write — TXON token in FIFO fires the PHY
2026-04-28 ab55d7e Revert "fusb302: re-detect orientation on BC_LVL drop (cable flip / source replug)"
2026-04-28 1dcd3a6 fusb302: re-detect orientation on BC_LVL drop (cable flip / source replug)
2026-04-28 1d25aa9 fusb302: instrument TX path with full register snapshot
2026-04-28 bbf7aff site: status snapshot picks up audio amp, Hyprland v3, USB-PD partial, WiFi working
2026-04-28 85063e9 site: add USB-PD sink debug essay (essay 16)
2026-04-28 507b3b4 site: audio essay reflects working speaker route via simple-amp GPIO
2026-04-28 2d3fc5f fusb302: flush TX FIFO before queuing each PD message
2026-04-28 a4f63d3 fusb302: retry cable detection while in PE_DISABLED
2026-04-28 ef6035e fusb302+rk818: apply PD-negotiated input current to the charger
2026-04-28 c3809d5 fusb302: actually trigger transmission with CONTROL0.TX_START
2026-04-28 a9121e3 fusb302: forgive Request/PS_RDY timeouts; stop spurious hard resets
2026-04-28 809d9cf fusb302: stop blasting hard resets; advertise PD r3.0 GoodCRC
2026-04-28 86c8e52 swaybar: status_command emits battery+clock i3bar JSON
2026-04-28 623f775 overlay: add battery-status waybar module + sway-flavored waybar config
2026-04-28 a91a2a4 fusb302: dump CONTROL0/3/MASK/MASKA/MASKB/SWITCHES0/1 in 5s diagnostic
2026-04-28 263aef5 fusb302: fix prior commit's comment (had INTERRUPT*/* closing /* mid-line)
2026-04-28 7fb5992 fusb302: clear CONTROL0.M_INT_MASK so interrupt latches actually fire
2026-04-28 0d6a355 fusb302: accumulate interrupt bits across diagnostic dump window
2026-04-27 33f0e7a fusb302: log chip status periodically + drain RX when FIFO non-empty
2026-04-27 6bf3223 fusb302: drop PDWN on inactive CC line post-attach
2026-04-27 88f04f4 fusb302: add USB-PD sink state machine
2026-04-27 3d52952 hypr: migrate to 0.54 v3 windowrule syntax + phone.conf overlay
2026-04-27 5e67a6d sway: launch under dbus-run-session
2026-04-27 be6f2f1 audio: include GPIO definitions for simple amp
2026-04-27 3b23d2f audio: drive simple amplifier enable GPIO
2026-04-27 34d27be audio: default to loudspeaker route only
2026-04-27 d275af2 audio: add RT5640 route diagnostics
2026-04-27 593f456 audio: restore audible RT5640 speaker route
2026-04-27 94c18d7 audio: isolate loudspeaker path and add RT5640 gain tuning
2026-04-27 ade2835 Add audio path diagnostics
2026-04-27 615a8a5 Route RT5640 speaker volume through HP mixer
2026-04-27 8c8e5ad Add Panfrost GPU clock control
2026-04-27 1aa95a8 Update GPU site status
2026-04-27 be91afa Refcount Panfrost file lifetime
2026-04-27 34bb3d9 Fix Panfrost scheduler parking diagnostics and clock
2026-04-26 3378d3d Queue Panfrost reset before scheduler stop
2026-04-26 1a5666e Defer Panfrost timeout reset to taskqueue
2026-04-26 10cf49e Drain Panfrost jobs before MMU teardown
2026-04-26 a443bc7 Avoid sleeping under Panfrost queue lock
2026-04-26 cf2dd90 Fix Panfrost reset fence signaling context
2026-04-26 f5184d0 Harden Panfrost reset fence recovery
2026-04-26 ef37a4e Gate Panfrost first-event tracing
2026-04-26 a87cce0 Update PinePhone Pro site status
2026-04-26 f3ec9e1 Fix Panfrost large BO allocation fallback
2026-04-26 19d8fcb Add verified phone kernel deploy tasks
2026-04-26 9c0839d Gate SDIO debug and update sensor status
2026-04-26 963fc6c Add PinePhone sensor and LED tasks
2026-04-26 2f5b25f Use plaintext fences for DTS snippets
2026-04-26 dc46437 Document phone screen power toggle
2026-04-26 e44ec65 Add repeatable EG25 modem power task
2026-04-25 2b631b6 Add repeatable modem status probe
2026-04-25 9e5446a Gate bwfm diagnostics
2026-04-25 d10638e Make PinePhone WiFi boot setup repeatable
2026-04-25 bc58198 Wait for WPA before WiFi DHCP
2026-04-25 56b3a7b Start PinePhone WiFi with WPA DHCP
2026-04-25 2862f34 Pass WPA IE to bwfm firmware
2026-04-25 066702e Use 802.3 transmit encapsulation for bwfm
2026-04-25 871c39d Mark firmware-associated bwfm nodes
2026-04-25 1475c7a Handle successful bwfm link events
2026-04-25 c610a2e Defer bwfm state firmware commands
2026-04-25 cec94d9 Use FreeBSD 2GHz channel flags for bwfm
2026-04-25 ec07891 Avoid live reload for bwfm_sdio
2026-04-25 bb04072 Advertise BCM4345 2GHz WiFi channels
2026-04-25 478dd58 Fix bwfm WiFi boot race and SD repair
2026-04-25 7b597e4 Fix files.arm64 patch after bwfm revert
2026-04-25 8967f12 Use a single canonical bwfm_sdio module
2026-04-25 c8bc213 Fix bwfm_sdio kernel file list patch
2026-04-25 ff2aa6f Bake bwfm_sdio into the phone kernel
2026-04-24 7ddb64b Update site for working WiFi scan
2026-04-24 a07afa7 Tag synthetic bwfm scans with rx channel
2026-04-24 8038425 Fix scan-cache debug for FreeBSD 15
2026-04-24 2b565e6 Dump net80211 scan cache after escan
2026-04-24 33c5cea Trace escan truncation guard
2026-04-24 f0d022c Trace escan result ingestion
2026-04-24 c9c2b84 Load Broadcom CLM blob on SDIO attach
2026-04-24 5b3b1de Trace Broadcom chanspec availability
2026-04-24 123db51 Use chanspec iovar in scan probe
2026-04-24 0c1331d Probe firmware channel before scan
2026-04-24 75ad558 Fail fast on dead phone SSH
2026-04-24 fdb4102 Add repeatable WiFi debug capture
2026-04-24 55ca778 Add repeatable phone module deploy workflow
2026-04-24 bc88584 Program firmware channel from net80211
2026-04-24 ffb35ec Match OpenBSD bwfm C_UP baseline
2026-04-24 7cbb8e5 Use passive broad scans in bwfm
2026-04-24 3acf8cb Let bwfm firmware choose scan channels
2026-04-24 d53e1b2 Reset bwfm security state before scan
2026-04-24 5a79e84 Trace bwfm firmware state before scan
2026-04-24 3299d7a End bwfm offloaded scans on immediate firmware failure
2026-04-24 d146f2b Advertise bwfm scan offload to net80211
2026-04-24 b14fafb Trigger bwfm scans from ic_scan_start
2026-04-24 4e10d2f Send full scan payload in bwfm WLC_SCAN fallback
2026-04-24 388b21b Fix bwfm scan header order for FreeBSD build
2026-04-24 46fa56e Use net80211 scan state in bwfm scan requests
2026-04-24 ad6066c Use FreeBSD VAP scan state in bwfm
2026-04-24 216918c Align bwfm scan handling with OpenBSD
2026-04-24 3735513 Fix honor build tasks and module workflow
2026-04-24 00fcaea Gate bwfm scan on firmware interface readiness
2026-04-23 c4473b4 Reassert bwfm scan state before scan
2026-04-23 a1e70bf Probe legacy bwfm scan command
2026-04-23 df25cf7 Probe bwfm escan v2 before v0 fallback
2026-04-23 3dddfd8 Use active bwfm scan requests
2026-04-23 bd485da Disable bwfm MPC before scan
2026-04-23 9e62421 Trace bwfm interface bring-up
2026-04-23 1d60b38 Set bwfm interface up before scan
2026-04-23 9958a1d Trace bwfm scan path
2026-04-23 7b6561d Trace bwfm MAC handoff into net80211
2026-04-23 55f5b45 Copy bwfm firmware MAC into net80211
2026-04-23 c9d97c0 Repair bwfm tx queue on first control send
2026-04-23 1594fe4 Initialize bwfm tx queue before deferred init
2026-04-23 d9c7523 Tighten bwfm opportunistic fn2 reads
2026-04-23 272d79c Read bwfm fn2 opportunistically once ready
2026-04-23 3611221 Queue bwfm control TX behind firmware credits
2026-04-23 01ee639 Trim bwfm poll spam and trace attach
2026-04-23 263fbf8 Tune BCM43455 SDIO fn2 registers
2026-04-23 884d0c3 Restore bwfm deferred init after NVRAM fix
2026-04-23 8496e21 Match Linux bwfm SDIO NVRAM layout
2026-04-23 024b11d Filter commit timelines before limiting
2026-04-23 840c46f Experiment with an ARM-mode CR4 reset stub
2026-04-23 6b7fc9d Record the latest bwfm CR4 debug findings
2026-04-23 897d286 Instrument CR4 state during bwfm SDIO bringup
2026-04-23 12784c4 Theme and serialize the Sway volume OSD
2026-04-23 52138be Add a replacing volume OSD for Sway
2026-04-23 be07991 Verify volume keys and drop audio debug spew
2026-04-23 2612871 Add ADC keys debug sysctls
2026-04-23 ba35d36 Fix files.arm64 patch hunk formatting
2026-04-23 32e626d Add PPP SARADC volume keys and refresh status docs
2026-04-23 1a21934 site: landing verdict — on-device audio working
2026-04-23 54ca78f essay 15: on-device audio closed — DAC1_DIG_VOL was the bug
2026-04-23 1f7efe7 essay 14: flip on-device audio status to working
2026-04-23 e958ffe essay 13: audio working — DAC1_DIG_VOL polarity (TLV that lied)
2026-04-23 4ce7a60 rt5640: fix DAC1_DIG_VOL polarity (0x0000 was -65.6dB) + OUT MIX regs
2026-04-23 5c36c05 rt5640: disable internal JD (JD_HP_AUTO was muting HPOL/HPOR)
2026-04-23 79bbc43 rt5640: fix output-mixer addrs + open digital path through AD_DA_MIXER
2026-04-23 f2d2ebd essay 13: war story for codec rails + HPO topology + stale-DTB blast
2026-04-23 08eafa7 essay 06: war story for rk_i2c iicbus IRQ blackhole
2026-04-23 dffb1d4 essay 05: war story for dwc3 TX watchdog vs ISR race
2026-04-23 a7b237f dts: flip dr_mode back to peripheral (CDC Ethernet over USB-C)
2026-04-23 862b66f dts: mark vcca1v8_codec + vcca3v0_codec as always-on
2026-04-23 c5e384c rt5640: full HP power-on sequence per Linux mainline
2026-04-23 d51515f rt5640: unmute DAC1 in HPO_MIXER (was muted = zero signal to speaker amp)
2026-04-23 2bfc941 rt5640: read back speaker-path regs after init (debug)
2026-04-23 57d58de rt5640: fix speaker register bits — DAC_L1 and SPKVOL routes were inverted
2026-04-23 7aac896 rt5640: enable speaker output path
2026-04-23 fc5d687 rk_i2s: change ISR diagnostics from boot-cap to transition+rate-limited
2026-04-23 2972362 rk_i2c + goodix: fix iicbus child IRQ alloc
2026-04-23 02fa9f8 goodix: fix BUS_RELEASE_RESOURCE arg count (3 not 5)
2026-04-23 2b9f381 goodix: bypass iicbus's bus_generic_rl path to find which layer drops IRQ alloc
2026-04-23 9fa5edf goodix: defer IRQ setup via config_intrhook to test attach-order hypothesis
2026-04-23 d2e5654 goodix: split rman_reserve from activation in IRQ debug
2026-04-23 7188cd6 goodix: heavy debug instrumentation for IRQ alloc failure
2026-04-23 1da53f2 goodix: revert to canonical iicbus SYS_RES_IRQ path

By subsystem

Bluetooth

2026-05-05 4352319 bcm_hostwake: fix standalone module build
2026-04-25 bb04072 Advertise BCM4345 2GHz WiFi channels
2026-04-22 f9cb4c3 site: essays 9-12 — Bluetooth arc from H4 framing to A2DP playing
2026-04-22 baafaea A2DP AUDIO CONFIRMED PLAYING 🎉
2026-04-22 6796444 BT diagnostic scripts: checkpoint-based state capture + A2DP reached
2026-04-22 64b2c55 bt_one_shot.sh: single-ACL pair+encrypt+A2DP sequence
2026-04-22 67f80aa A2DP debug: bluez auto-confirmation agent + loader env tweak
2026-04-22 4b65e2a bcm_firmware_load.pl: set BlueZ event mask to deliver SSP events
2026-04-22 d943f11 bcm bringup: respect HCI command credit + drop unnecessary VSCs
2026-04-21 1c54ec5 bt diagnostics: hcisniff, hcicmd, bt_a2dp, bt_listen scripts
2026-04-21 b8a2632 bcm_hostwake: pin DEV_WAKE HIGH, remove idle drop
2026-04-21 38146c0 bcm-hostwake: switch to DT overlay instead of base-DTB patch
2026-04-21 0b3ae0c dts patch: use correct bt pinctrl labels (bt_host_wake_pin / bt_wake_pin)
2026-04-21 8f3fdeb dts patch: fix line numbers for bcm-hostwake insertion
2026-04-21 4fedd5c bcm_hostwake: rewrite as simplebus FDT driver for real GPIO IRQ
2026-04-21 f88462a bcm_hostwake: revert to polling with DEV_WAKE drive
2026-04-21 8ccee03 bcm_hostwake: rewrite as real IRQ handler mimicking hci_bcm
2026-04-21 905f61b bcm loader: set sleep_mode=0 with Linux-default polarity
2026-04-21 242c4ef ng_hci: handle SSP events 0x32/0x33/0x34/0x35
2026-04-21 db20935 bcm loader: skip LPM VSC, enable SSP + BlueZ event mask
2026-04-21 033ecf4 ng_l2cap: drop empty ACL packets (BCM4345 keepalive quirk)
2026-04-21 313881d l2cap: regenerate patch via diff -u
2026-04-21 912a091 ng_l2cap: accept raw-HCI-initiated connections via lp_con_cfm
2026-04-21 532cba8 ng_hci: tolerate spurious Command_Complete + notify upstream on raw-HCI conn
2026-04-21 22d91e3 bcm firmware + ng_hci: fix post-patchram init + preserve INITED
2026-04-21 6b2783c ng_hci: default page_scan_rep_mode=R1 for unknown peers
2026-04-20 e9f95fc snps: 200Hz polled RX on BT UART to bypass IRQ-delivery stalls
2026-04-20 19feac2 BCM4345: switch chip+host UART to 1500000 baud
2026-04-20 cd6b7ed bcm_hostwake: experimental module probing BCM4345 HOST_WAKE GPIO
2026-04-20 91261a8 hcsecd: add SSP (Just Works) pairing support
2026-04-20 185a961 ng_h4frame: only tickle when mid-parsing HCI event packets
2026-04-20 35a1969 ng_h4frame: bump tickle threshold to 500ms to avoid interfering with active L2CAP
2026-04-20 52a4ec0 ng_h4frame: TX tickler workaround for BCM trailing-byte stall
2026-04-20 4c81665 Fix BT trailing-byte stall: ns8250 BUSY-swallow + BCM LPM disable
2026-04-20 cd1630b bt: add BCM4345C0 firmware (correct chip variant)
2026-04-20 b5790e3 bt: add bt_attach userland tool + BCM4345C5 firmware
2026-04-20 248fe0e ng_h4frame: new netgraph node for HCI H4 framing

USB

2026-05-10 05a091f site: essay 17 — DWC3 runtime role swap
2026-05-10 5fdec51 dwc3: drop role_swap diagnostic printfs (root cause fixed)
2026-05-10 8d886ad dwc3: release gadget IRQ in quiesce so xhci can claim it
2026-05-10 7cda476 dwc3: tighter instrumentation — print before AND after each call
2026-05-10 ecedc69 dwc3: instrument role_swap so the next wedge tells us where it hangs
2026-05-10 5db9a9c dwc3: park gadget before chip soft-reset on role swap
2026-05-09 75485c6 dwc3: hw.dwc3.role_swap sysctl — attempt runtime gadget→host alongside
2026-05-09 14a9677 dwc3: hw.dwc3.prtcap sysctl for live PRTCAPDIR toggle (no child re-attach)
2026-05-08 cbf59c7 docs: usb-c displayport bring-up design
2026-05-08 1dbe486 rk_typec_phy: add tunable USB-3 SuperSpeed bring-up
2026-05-08 5589d8a PINEPHONE_PRO: add axge / axe / ure for downstream USB Ethernet
2026-05-08 1b4004e site: usb-c host mode and source role enumerated a real hub
2026-05-07 5a1cb12 dwc3: log host-attach state unconditionally
2026-05-07 31de592 site: document usb-c host-mode bringup
2026-05-07 16a9f5e dwc3: add host-mode boot override
2026-05-05 32c352d docs: record USB Ethernet throughput
2026-05-02 6cb29ab usb-c: roll back post-wednesday role scaffold
2026-04-30 340dc6f usb-pd wifi sdio parity followups
2026-04-29 582e402 fusb302+rk818: add manual source-role sysctl for USB-C OTG host mode
2026-04-28 4e5a98d rk818: dump charger status after USB input-limit write (real diff)
2026-04-28 3814faf rk818: dump charger status after USB input-limit write
2026-04-28 bbf7aff site: status snapshot picks up audio amp, Hyprland v3, USB-PD partial, WiFi working
2026-04-28 85063e9 site: add USB-PD sink debug essay (essay 16)
2026-04-27 88f04f4 fusb302: add USB-PD sink state machine
2026-04-23 dffb1d4 essay 05: war story for dwc3 TX watchdog vs ISR race
2026-04-23 a7b237f dts: flip dr_mode back to peripheral (CDC Ethernet over USB-C)

Display

2026-05-05 2b134eb panfrost: wait for GPU reset completion
2026-05-05 fdec208 docs: record Panfrost DVFS bring-up
2026-05-05 3bfc1d0 panfrost: avoid max clock for light auto work
2026-05-05 70a9c84 panfrost: quiet DVFS transition logging
2026-05-05 d3b80a7 panfrost: avoid active-job DVFS transitions
2026-05-05 737b881 panfrost: suppress no-op DVFS transitions
2026-05-05 59bde6a panfrost: add OPP-aware GPU DVFS
2026-05-05 0eea8bd docs: record panfrost stress results
2026-05-05 fb81d0f rk_vop: mask vblank interrupts when idle
2026-05-04 aced94d rk_vop: use crtc drm device for event lock
2026-05-04 fee7f1f rk_vop: register latch counters after attach
2026-05-04 583e66c rk_vop: latch page-flip events until FS_INTR
2026-05-04 b2a9e81 site: record VOP wedge follow-up
2026-05-04 a830a08 rk_vop: restore atomic vblank wait
2026-05-04 d7bd9b5 drm: instrument panfrost scanout imports
2026-05-04 3c6af28 ports: pin libdrm patch for FreeBSD platform DRM enumeration
2026-05-02 3f72b0e rk_vop: roll back unproven vblank latch
2026-04-30 36d4794 rk_vop: latch page-flip events until FS_INTR
2026-04-30 21b88a8 rk_vop: ack only fired interrupts; restore wait_for_vblanks
2026-04-29 e22bae6 drm: gate WARN_ON kdb_backtrace+panic behind sysctls for wedge debugging
2026-04-27 8c8e5ad Add Panfrost GPU clock control
2026-04-27 be91afa Refcount Panfrost file lifetime
2026-04-27 34bb3d9 Fix Panfrost scheduler parking diagnostics and clock
2026-04-26 3378d3d Queue Panfrost reset before scheduler stop
2026-04-26 1a5666e Defer Panfrost timeout reset to taskqueue
2026-04-26 10cf49e Drain Panfrost jobs before MMU teardown
2026-04-26 a443bc7 Avoid sleeping under Panfrost queue lock
2026-04-26 cf2dd90 Fix Panfrost reset fence signaling context
2026-04-26 f5184d0 Harden Panfrost reset fence recovery
2026-04-26 ef37a4e Gate Panfrost first-event tracing
2026-04-26 f3ec9e1 Fix Panfrost large BO allocation fallback
2026-04-22 bc6b664 drm: fix rk_plane panic that triggered DRM atomic_helper NULL deref
2026-04-22 3874652 site: essays 5-8 — DWC3, Goodix, display, panfrost war stories

Audio

2026-05-06 0624070 rt5640: default DMIC to verified internal mic mode
2026-05-06 174d61f rt5640: avoid sleeping I2C in trigger
2026-05-06 5852817 rt5640: expose DMIC capture tuning knobs
2026-05-06 de1e38a audio: quiet amp sysclk and expose rt5640 clock
2026-05-06 35229b9 rt5640: document DMIC divider evidence
2026-05-06 9ea4599 rt5640: follow Linux DMIC data-pin binding
2026-05-06 9c7c04b rt5640: declare modify helper before DMIC apply
2026-05-06 566c384 rt5640: route DMIC pins through GPIO mux
2026-05-06 36cbc9c rt5640: declare write helper before DMIC apply
2026-05-06 0ed81d9 rt5640: add bounded DMIC tuning controls
2026-05-06 853796d audio: route firefox media away from pulseaudio
2026-04-30 437cd8d docs: correct rt5640 register/bit info caught by implementation agents
2026-04-30 355600c rt5640: power analog headset capture chain on recsrc=headset
2026-04-30 26998bd rt5640: enable DMIC1 microphone capture path
2026-04-30 cd593f5 rt5640: defer init to taskqueue (LOR fix, matches Linux regmap pattern)
2026-04-28 bbf7aff site: status snapshot picks up audio amp, Hyprland v3, USB-PD partial, WiFi working
2026-04-28 507b3b4 site: audio essay reflects working speaker route via simple-amp GPIO
2026-04-27 be6f2f1 audio: include GPIO definitions for simple amp
2026-04-27 3b23d2f audio: drive simple amplifier enable GPIO
2026-04-27 34d27be audio: default to loudspeaker route only
2026-04-27 d275af2 audio: add RT5640 route diagnostics
2026-04-27 593f456 audio: restore audible RT5640 speaker route
2026-04-27 94c18d7 audio: isolate loudspeaker path and add RT5640 gain tuning
2026-04-27 ade2835 Add audio path diagnostics
2026-04-27 615a8a5 Route RT5640 speaker volume through HP mixer
2026-04-23 be07991 Verify volume keys and drop audio debug spew
2026-04-23 1a21934 site: landing verdict — on-device audio working
2026-04-23 54ca78f essay 15: on-device audio closed — DAC1_DIG_VOL was the bug
2026-04-23 1f7efe7 essay 14: flip on-device audio status to working
2026-04-23 e958ffe essay 13: audio working — DAC1_DIG_VOL polarity (TLV that lied)
2026-04-23 4ce7a60 rt5640: fix DAC1_DIG_VOL polarity (0x0000 was -65.6dB) + OUT MIX regs
2026-04-23 5c36c05 rt5640: disable internal JD (JD_HP_AUTO was muting HPOL/HPOR)
2026-04-23 79bbc43 rt5640: fix output-mixer addrs + open digital path through AD_DA_MIXER
2026-04-23 c5e384c rt5640: full HP power-on sequence per Linux mainline
2026-04-23 d51515f rt5640: unmute DAC1 in HPO_MIXER (was muted = zero signal to speaker amp)
2026-04-23 2bfc941 rt5640: read back speaker-path regs after init (debug)
2026-04-23 57d58de rt5640: fix speaker register bits — DAC_L1 and SPKVOL routes were inverted
2026-04-23 7aac896 rt5640: enable speaker output path
2026-04-22 8133d93 site: essays 13-15 — on-device audio, status snapshot, roadmap

WiFi

2026-05-06 3fc6aac bwfm: reschedule SDIO task while TX queue has credits
2026-05-06 08a1c04 bwfm: keep rx glom parser out of disabled path
2026-05-06 b52c010 bwfm: fix rx glom parser build
2026-05-06 a7e0718 bwfm: add runtime SDIO rx glom parser
2026-05-05 6f28d6e Revert "bwfm: add experimental SDIO rx glom path"
2026-05-05 1eb35cc Revert "bwfm: include endian helpers for glom parser"
2026-05-05 fe93bae Revert "bwfm: expose rx glom parser diagnostics"
2026-05-05 d5e3467 Revert "bwfm: gate rx glom behind runtime sysctl"
2026-05-05 3d56f23 bwfm: gate rx glom behind runtime sysctl
2026-05-05 b431a34 bwfm: expose rx glom parser diagnostics
2026-05-05 f440bd3 bwfm: include endian helpers for glom parser
2026-05-05 df545fd bwfm: add experimental SDIO rx glom path
2026-05-05 a70d431 bwfm: add SDIO datapath perf counters
2026-05-05 dcd7f5e docs: record WiFi throughput retest
2026-05-05 37c3d3a docs: clarify WiFi IRQ status
2026-05-05 00c2339 site: record WiFi PM evidence
2026-05-05 2458d80 bwfm: expose firmware power save control
2026-05-05 a962cf5 bwfm: keep MPC off after active scans
2026-05-05 9703c32 bwfm: defer SDIO IRQ tasking during attach
2026-05-04 d900b71 overlay+site: powerd on by default, document the wifi+CRU fixes
2026-05-04 4f93cc4 bwfm: extend fn2-enable timeout to 5 s, log mbdata on timeout
2026-05-04 6f93843 Revert mmc_pwrseq attach power-cycle — doesn't fix bwfm fn2 timeout
2026-05-02 b8223f6 wifi: wait longer for bwfm boot attach
2026-04-30 f406007 wifi: add fallback rate matrix runner
2026-04-30 e6740a1 wifi: classify debug receipts
2026-04-30 b58ce61 wifi: capture irq fallback receipts
2026-04-30 340dc6f usb-pd wifi sdio parity followups
2026-04-30 75660ac bwfm: gate ctrl-credit reservation by TX-queue head, not unconditionally
2026-04-30 141c927 bwfm: control-frame credits, EAPOL priority, BCM43455 scan v0 shortcut
2026-04-30 ce9c277 bwfm: NVRAM trailing-NUL count matches Linux
2026-04-30 fd96034 Clarify WiFi finishing plan on site
2026-04-29 1dc2f2a Bound WiFi transfer debug snapshots
2026-04-29 c907a95 Add passive WiFi IRQ state sysctls
2026-04-29 fe0d986 Make WiFi transfer trace dumps opt-in
2026-04-29 db845c8 Keep bwfm poll fallback during IRQ bringup
2026-04-29 916fe51 Add SDIO IRQ support for bwfm
2026-04-29 9b91e46 site: log latest WiFi stability work
2026-04-29 3ae7795 Defer bwfm firmware key deletes
2026-04-29 edea1e8 Improve bwfm TX queue accounting
2026-04-29 f606fc5 Fix bwfm net80211 TX mbuf ownership
2026-04-29 4ea189c Harden bwfm SDIO bounce buffer bounds
2026-04-29 eaef93a Fix WiFi transfer harness quoting
2026-04-29 0a3d215 Add WiFi transfer debug harness
2026-04-29 fd7fd70 Add bwfm SDIO task trace
2026-04-29 395005f Disable unsupported bwfm SDIO glomming
2026-04-29 f0285df Instrument bwfm SDIO TX path
2026-04-29 31bfa1f bwfm: enable 802.11n / HT advertisement, disable firmware power save
2026-04-28 bbf7aff site: status snapshot picks up audio amp, Hyprland v3, USB-PD partial, WiFi working
2026-04-25 9e5446a Gate bwfm diagnostics
2026-04-25 d10638e Make PinePhone WiFi boot setup repeatable
2026-04-25 bc58198 Wait for WPA before WiFi DHCP
2026-04-25 56b3a7b Start PinePhone WiFi with WPA DHCP
2026-04-25 2862f34 Pass WPA IE to bwfm firmware
2026-04-25 066702e Use 802.3 transmit encapsulation for bwfm
2026-04-25 871c39d Mark firmware-associated bwfm nodes
2026-04-25 1475c7a Handle successful bwfm link events
2026-04-25 c610a2e Defer bwfm state firmware commands
2026-04-25 cec94d9 Use FreeBSD 2GHz channel flags for bwfm
2026-04-25 bb04072 Advertise BCM4345 2GHz WiFi channels
2026-04-25 478dd58 Fix bwfm WiFi boot race and SD repair
2026-04-25 7b597e4 Fix files.arm64 patch after bwfm revert
2026-04-24 7ddb64b Update site for working WiFi scan
2026-04-24 a07afa7 Tag synthetic bwfm scans with rx channel
2026-04-24 fdb4102 Add repeatable WiFi debug capture
2026-04-24 ffb35ec Match OpenBSD bwfm C_UP baseline
2026-04-24 7cbb8e5 Use passive broad scans in bwfm
2026-04-24 3acf8cb Let bwfm firmware choose scan channels
2026-04-24 d53e1b2 Reset bwfm security state before scan
2026-04-24 5a79e84 Trace bwfm firmware state before scan
2026-04-24 3299d7a End bwfm offloaded scans on immediate firmware failure
2026-04-24 d146f2b Advertise bwfm scan offload to net80211
2026-04-24 b14fafb Trigger bwfm scans from ic_scan_start
2026-04-24 4e10d2f Send full scan payload in bwfm WLC_SCAN fallback
2026-04-24 388b21b Fix bwfm scan header order for FreeBSD build
2026-04-24 46fa56e Use net80211 scan state in bwfm scan requests
2026-04-24 ad6066c Use FreeBSD VAP scan state in bwfm
2026-04-24 216918c Align bwfm scan handling with OpenBSD
2026-04-24 00fcaea Gate bwfm scan on firmware interface readiness
2026-04-23 c4473b4 Reassert bwfm scan state before scan
2026-04-23 a1e70bf Probe legacy bwfm scan command
2026-04-23 df25cf7 Probe bwfm escan v2 before v0 fallback
2026-04-23 3dddfd8 Use active bwfm scan requests
2026-04-23 bd485da Disable bwfm MPC before scan
2026-04-23 9e62421 Trace bwfm interface bring-up
2026-04-23 1d60b38 Set bwfm interface up before scan
2026-04-23 9958a1d Trace bwfm scan path
2026-04-23 7b6561d Trace bwfm MAC handoff into net80211
2026-04-23 55f5b45 Copy bwfm firmware MAC into net80211
2026-04-23 c9d97c0 Repair bwfm tx queue on first control send
2026-04-23 1594fe4 Initialize bwfm tx queue before deferred init
2026-04-23 d9c7523 Tighten bwfm opportunistic fn2 reads
2026-04-23 272d79c Read bwfm fn2 opportunistically once ready
2026-04-23 3611221 Queue bwfm control TX behind firmware credits
2026-04-23 01ee639 Trim bwfm poll spam and trace attach