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-04-22 bc6b664 drm: fix rk_plane panic that triggered DRM atomic_helper NULL deref
2026-04-22 326aa3d site: theme picker (modal+swatches) + phone screenshot pipeline + mobile breakouts
2026-04-22 b46ecb0 site: deploy at root (drop /pine64-freebsd base path)
2026-04-22 0cb2786 ci: fetch full git history (GIT_DEPTH: 0)
2026-04-22 c21ba06 docs: site v2 implementation plan
2026-04-22 81e7eb1 AGENTS.md: add site-evolution section
2026-04-22 72fa3da site: Phase 8 — essay/appendix routes + real landing page
2026-04-22 881527a site: write the eight appendix entries
2026-04-22 8133d93 site: essays 13-15 — on-device audio, status snapshot, roadmap
2026-04-22 f9cb4c3 site: essays 9-12 — Bluetooth arc from H4 framing to A2DP playing
2026-04-22 3874652 site: essays 5-8 — DWC3, Goodix, display, panfrost war stories
2026-04-22 3699c3b site: opening 4 essays — framing, SD boot, build pipeline, USB-Ethernet
2026-04-22 e78ff08 site v2: narrative MDX components (Verdict, Claim, WarStory + scaffolding, Reproduce, Diagram)
2026-04-22 ad2a9e6 site v2: coppice-shaped layout foundation
2026-04-22 4524b8b site: dts-load-node also matches anonymous nodes by name
2026-04-22 c64ada6 site: README with content + component reference
2026-04-22 b70915d ci: GitLab Pages deploy for site/
2026-04-22 fb8633f site: v1 appendix (hardware, build-env, glossary)
2026-04-22 f6b0b27 site: unify REPO_ROOT in utils (process.cwd() based, prerender-safe)
2026-04-22 82860c1 site: v1 subsystem stubs (usb, bluetooth, display, audio, touchscreen, wifi, modem)
2026-04-22 39ff4da site: v1 chapters (00-getting-started through 99-current-state)
2026-04-22 550309a site: landing page with latest chapter + StatusBoard + CommitTimeline
2026-04-22 ca78ba1 site: page templates (read/build index + slug + appendix + ContentPage layout)
2026-04-22 f00796c site: StatusBoard component (subsystem grid for landing page)
2026-04-22 40ea113 site: CommitTimeline component (filtered git log slice)
2026-04-22 c28dbef site: PatchList component (auto-discovers patches/, infers subsystem)
2026-04-22 66a07cd site: Recipe + DevlogEntry components
2026-04-22 3a9596e site: Commit decorator + commitInfo utility (build-time git log)
2026-04-22 c088b02 site: Status pill component (working/partial/broken/not-started)
2026-04-22 ea15c56 site: HciTrace decorator (CMD/EVT/ACL coloring + hw_error marking)
2026-04-22 6c13e26 site: DtNode decorator + dts-load-node utility
2026-04-22 870a66a site: Script decorator with line range + highlight + language detection
2026-04-22 d44e731 site: Patch component with file/hunk rendering + annotations
2026-04-22 e104ab3 site: parseDiff utility (ported from coppice) + tests
2026-04-22 8a4ab94 site: content collection schemas (chapters, subsystems, appendix)
2026-04-22 22e5214 site: base layout with header (READ/BUILD toggle + theme switcher) and footer
2026-04-22 6d90185 site: integrate omfreebdy DaisyUI themes (default: hackerman)
2026-04-22 584c1b8 site: scaffold pnpm + Astro 6 + MDX + Tailwind 4 + DaisyUI 5
2026-04-22 111008c docs: pineport site implementation plan (23 tasks, TDD)
2026-04-22 9dfbd5b gitignore: add .superpowers/ (visual brainstorm session state)
2026-04-22 e83ac1c docs: pineport Astro site design spec
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 5e479d4 bcm_firmware_load.pl: enable Secure Connections during load
2026-04-22 41f22e4 BCM4345C0.hcd: swap to Murata 1MW build 0187.0366
2026-04-22 7366036 bcm_firmware_load.pl: keep Write_Simple_Pairing_Mode=1
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 98a520c ng_hci_cmds patch: regenerate via diff -u from actual source
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-21 b7ba349 snps patch: regenerate as proper unified diff
2026-04-21 6f3cdf7 snps: remove polled-mode RX backstop — race causes data abort
2026-04-21 bc3b9fb virtual_oss int.h.patch: fix trailing context
2026-04-21 7b3fcf4 virtual_oss: bump path buffer to 96 chars for /dev/bluetooth/<bd_addr>
2026-04-21 62d3550 snps: include uart_cpu.h for uart_lock/unlock
2026-04-21 5a8a275 snps: add periodic printf to verify polled-mode callout fires
2026-04-21 08b34e8 snps: include sys/sysctl.h
2026-04-21 dcf916b snps: directly drain RBR in polled callout, with stats sysctl
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 6054487 uart_snps: include ns16550.h for FCR_RX_LOW/REG_FCR
2026-04-20 ccc6cc1 uart_snps: force RX_LOW (1-byte trigger) on UART with brcm,bcm43* child
2026-04-20 cd6b7ed bcm_hostwake: experimental module probing BCM4345 HOST_WAKE GPIO
2026-04-20 36d84b3 bcm_firmware_load.pl: stop sending 0xfc27 — caused chip HW errors
2026-04-20 5ea7193 ng_h4frame: gate per-byte/per-packet logging behind hw.h4frame_debug
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 56e2d78 ng_h4frame: move tickle sysctl to _hw (no parent net_bluetooth)
2026-04-20 e5cf7f5 ng_h4frame: add net.bluetooth.h4frame_tickle_enable sysctl
2026-04-20 52a4ec0 ng_h4frame: TX tickler workaround for BCM trailing-byte stall
2026-04-20 a421a98 Revert ns8250 BUSY-branch patch — broke boot
2026-04-20 4c81665 Fix BT trailing-byte stall: ns8250 BUSY-swallow + BCM LPM disable
2026-04-20 996c880 bcm_firmware_load.pl: fix Launch_RAM handling
2026-04-20 4542e91 Use in-tree clang for kernel/module builds (per AGENTS.md)
2026-04-20 e4de887 Revert redundant netgraph dep — NETGRAPH_INIT() already adds it
2026-04-20 c271368 ng_h4frame: add MODULE_DEPEND on netgraph for M_NETGRAPH resolution
2026-04-20 c12b456 ng_h4frame: use m_get2 instead of m_getcl for gcc14 compat
2026-04-20 677b4b1 ng_h4frame: mark h4frame_emit noinline to dodge gcc14 asm-goto error
2026-04-20 071d110 ng_h4frame: add TX + RX debug printfs to diagnose second-command timeout
2026-04-20 da33632 ng_h4frame: hex dump first bytes on emit
2026-04-20 e1ae6c7 ng_h4frame: debug print on emit
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
2026-04-20 001db94 bwfm: stop polling after DIAG done to avoid long-term instability
2026-04-20 d716e14 bwfm: silence poll callout log spam (was flooding dmesg)
2026-04-20 1057e87 debug: log any blocked CRU register writes
2026-04-20 3ce9b19 bwfm: dump NVRAM bytes + firmware bytes-after-reset for comparison
2026-04-20 a510af0 bwfm: poll task idles until deferred init done, NULL guards
2026-04-20 705c1ff bwfm: gate rx_frames on FRAME_IND + diagnostic-only deferred init
2026-04-20 e1e830f bwfm: wait 2s after FORCE_HT + check if firmware writes shared ptr
2026-04-20 2c95f61 bwfm: proceed past fn2 IOR timeout, reduce wait to 500ms
2026-04-20 53b3b7d bwfm: skip HT_AVAIL wait — just force HT on and proceed
2026-04-20 8890ee1 bwfm: force HT on directly with FORCE_HT + HT_AVAIL_REQ
2026-04-20 b2c22a6 bwfm: reset clkstate after load_microcode to force real HT request
2026-04-20 6dd3770 bwfm: debug clkstate before/after HT wait
2026-04-20 4b14cfc bwfm: verify fn2 IOE write actually reaches chip
2026-04-20 59c6c70 bwfm: restore CLK_SDONLY after firmware load
2026-04-20 e1e7099 bwfm: don't enable fn2 before firmware runs
2026-04-20 268bad9 bwfm: extend fn2 ready wait to 3s, continue on timeout
2026-04-20 d12e90a bwfm: wait for fn2 I/O Ready after enabling it
2026-04-20 24083e9 bwfm: diagnostic v2 — print before each SDIO read, remove periodic shared-mem poll
2026-04-20 bae8c0d bwfm: diagnostic mode — poll fw status without BCDC writes
2026-04-20 213f145 bwfm: print when task returns at counts 1, 5, 50, 500
2026-04-20 94c5077 bwfm: run deferred init on system taskqueue, not SDIO taskqueue
2026-04-20 e6a7d36 bwfm: log TOHOSTMAILBOXDATA + shared mem ptr periodically
2026-04-20 be96148 bwfm: instrument poll task, tx_ctrlframe, INTSTATUS reads
2026-04-20 e83830a bwfm: defer fwvar + net80211 attach to taskqueue
2026-04-20 83f263d bwfm: re-enable fwvar query, still skip net80211 attach
2026-04-20 a9a6b86 bwfm: TEMP return success after polling_started to isolate DRM deadlock
2026-04-20 00cd49f bwfm: keep clocks running after firmware load — don't go CLK_SDONLY
2026-04-20 5b54b03 bwfm: compare addr0 vs rambase, dump first 16 bytes
2026-04-20 a3f2990 bwfm: comprehensive ai_disable/ai_reset/set_passive/set_active instrumentation
2026-04-20 fc1a32a bwfm: verify reset vector write + use ram_read_write for shared ptr
2026-04-20 4f04ce8 bwfm: fix buscore_activate — write reset vector to addr 0, not rambase
2026-04-20 07e8acf bwfm: check shared memory after firmware load, revert to clkctl for HT
2026-04-20 71ba4fd bwfm: fix duplicate if statement (syntax error)
2026-04-10 d80ffd8 bwfm: request ALP before HT, extend timeout to 10s
2026-04-10 a918db6 bwfm: debug ARM core reset + HT clock
2026-04-10 e300927 bwfm: add 200ms delay before HT clock request + debug
2026-04-10 6db0319 bwfm: test both fn1 addresses, reduce poll spam
2026-04-10 93a70d3 bwfm: don't strip fn1 address prefix — chip needs full 17-bit addr
2026-04-10 6162759 bwfm: debug bp_read_1 vs direct read in buscore_prepare
2026-04-10 a915fe3 bwfm: fix SDIO bus method calls — must target parent sdiob device
2026-04-10 e82479f debug: comprehensive sdiob CMD52 logging
2026-04-10 c207e02 debug: comprehensive sdiob CMD52 logging
2026-04-10 d70b507 bwfm: fix fn1 CMD52 address — strip 0x10000 prefix
2026-04-10 ea9bf9d bwfm: debug SDIO_READ_DIRECT errors + init val
2026-04-10 55f98fb bwfm: debug CCCR fn1 enable + clock register access
2026-04-10 6fd7b9e bwfm: remove overly strict CHIPCLKCSR readback check
2026-04-10 4c1d2e0 bwfm: fix SDIO_READ/WRITE_EXTENDED argument order
2026-04-10 7fda880 bwfm: fix build errors — sdio_if.h path, missing if_media.h, warnings
2026-04-10 a5c9d78 bwfm: rc.d auto-load + rc.conf WiFi auto-connect
2026-04-10 511203c bwfm: net80211 integration — scan + WPA2 association working
2026-04-10 f4835aa bwfm: polling task + BCDC protocol working
2026-04-10 aceae08 bwfm: firmware download + chip boot
2026-04-10 fc6ff2c bwfm: backplane access + chip enumeration
2026-04-10 adec9d0 bwfm: skeleton driver + delete brcmfmac LinuxKPI code
2026-04-10 b2c6599 plan: native bwfm(4) WiFi driver port from OpenBSD
2026-04-10 4bdf0d9 spec: native bwfm(4) WiFi driver port from OpenBSD
2026-04-10 d467305 wifi: revert host_lock to MTX_DEF|MTX_RECURSE — sx crashes
2026-04-10 7a2a014 wifi: strip all poll thread code — back to clean firmware-loads state
2026-04-10 5049f18 wifi: fix build — remove sdio.h include (PAD conflicts), use void** cast
2026-04-10 437c0ba wifi: sx_lock + brcmf_sdio_isr(bus, true) — the correct IRQ fix
2026-04-10 38970b8 wifi: don't hold host_lock in poll thread — ISR does sleepable SDIO I/O
2026-04-10 3a6203a wifi: sdio_claim_irq must not do SDIO I/O — runs from non-sleepable taskqueue
2026-04-10 7f9a845 wifi: serialize poll thread ISR call with host_lock
2026-04-10 c314ceb wifi: blind-poll ISR instead of reading CCCR — CAM rejects concurrent SDIO ops
2026-04-10 9c30793 wifi: serialize IRQ poll SDIO reads with host_lock — concurrent CMD52 crashes dwmmc
2026-04-10 19e025e wifi: fix poll thread pause (hz/500=0 on FreeBSD) + add start printf
2026-04-10 6f036bf wifi: SDIO IRQ polling thread for brcmfmac BCDC message delivery
2026-04-10 7ef3506 wifi: revert to inline sdio_claim/release_irq — extern version caused crash
2026-04-10 fe5429e wifi: revert dwmmc changes, use polling kthread for SDIO IRQ
2026-04-10 b496be6 wifi: don't enable SDMMC_INTMASK_SDIO at boot — enable on claim only
2026-04-10 0637435 wifi: defer SDIO IRQ callback to taskqueue — can't call from ISR holding dwmmc lock
2026-04-10 f1fd137 wifi: proper SDIO interrupt support through dwmmc
2026-04-10 38c0fd4 wifi: remove crash-causing device_get_children from sdio_set_block_size
2026-04-10 29baa74 wifi: make sdio_claim_host recursive (MTX_RECURSE) — brcmfmac nests claims
2026-04-10 a721caa wifi: rename sdio_{set_block_size,enable,disable}_func to lkpi_ prefix — kernel symbol collision
2026-04-10 e51243b wifi: debug printfs in sdio_set_block_size
2026-04-10 2fef7fc wifi: fix critical block size desync between brcmfmac and sdiob
2026-04-10 5335926 wifi: pass matching sdio_device_id to brcmfmac probe (was NULL → ENODEV)
2026-04-10 6224d43 wifi: fix panic in sdio_register_driver — use device_probe_and_attach not bus_generic_driver_added
2026-04-10 c62a4b0 wifi: fix probe ordering — sdio_register_driver triggers sdiob reprobe
2026-04-10 24e2ac0 wifi: use macros for sdio_set/get_drvdata to override sdiob.h functions
2026-04-10 9b3df2c wifi: guard sdio_set/get_drvdata against sdiob.h conflict
2026-04-10 f6d300b wifi: newbus glue for brcmfmac SDIO on sdiob
2026-04-10 4e01244 wifi: stub enable/disable_irq_wake, sdio_readsb, sdio_get_host_pm_caps
2026-04-10 95a504e wifi: stub mmc_hw_reset
2026-04-10 4bfe091 wifi: stub skb_cloned — last undefined symbol for brcmfmac
2026-04-10 1e0f68f wifi: add skb_queue_is_last inline stub
2026-04-10 359838a wifi: stub allow_signal for brcmfmac watchdog kthread
2026-04-10 50e4df5 wifi: fix PROTO_MSGBUF — don't define when PCI off (#ifdef vs #if)
2026-04-10 fcfc54b wifi: fix MODULE_DEVICE_TABLE(sdio) — add bus-specific no-op macro
2026-04-10 79ec1b3 wifi: fix SDIO_DEVICE brace nesting, add mmc_pm_flag_t, alloc_ordered_workqueue varargs, msleep include, sdio_ids fix
2026-04-10 ca37c58 wifi: batch LinuxKPI stubs — SDIO IDs, MMC quirks, skb helpers
2026-04-10 179c9ed wifi: disable WITH_OF for now — of.c needs full Linux OF API
2026-04-10 3a47cbd wifi: more LinuxKPI stubs + DT wifi@1 child node
2026-04-10 320c2f1 wifi: LinuxKPI SDIO shim for brcmfmac
2026-04-10 b88c034 wifi: remove bogus 'device sdio' — sdiob is built via options MMCCAM
2026-04-10 f98253f wifi: MMCCAM + SDIO + wlan + brcmfmac SDIO module overlay
2026-04-10 a1c4c09 wifi: add BCM43455 firmware blobs + revert .profile to sway
2026-04-10 47dbc89 plan: BCM43455 WiFi integration via brcmfmac
2026-04-09 05e8b24 spec: BCM43455 WiFi via brcmfmac on PinePhone Pro
2026-04-09 8accb27 panfrost: runtime debug mask, counters, and state-dump sysctls
2026-04-09 61bd6f1 goodix: pass &rid to gpio_alloc_intr_resource for stable/15 API
2026-04-09 1f895ec panfrost: call drm_sysctl_init so libdrm can enumerate the device
2026-04-09 21d978d sway: try GPU rendering (unset WLR_RENDERER=pixman fallback)
2026-04-09 03c1404 wvkbd: atomic toggle script with lock to prevent double-spawn
2026-04-09 7f17ba1 theme-set: full path for icon-theme-set, restart nautilus in hook
2026-04-09 cb68c98 theme-set: sync kvantum wayland fix + mobile font sizes
2026-04-09 199d9e9 theme-set: fix apply_qt crash from kvantummanager
2026-04-09 c7a7685 sway: default vertical orientation for mobile
2026-04-09 944f0e9 sway: fix hide_cursor (0 means disabled, use 1) and disable pointer
2026-04-09 3e75e0b lisgd: use theme-set-wvkbd to launch keyboard with theme colors
2026-04-09 c82d22b lisgd: background all commands to avoid system() blocking wedge
2026-04-09 56ffa93 sway/lisgd: inherit env from compositor, fix duplicate wvkbd
2026-04-09 d69d33c sway: exec post-theme-set once (not exec_always) to avoid reload loop
2026-04-09 0532733 sway: scale 1.5 for readable UI, exec post-theme-set on startup
2026-04-09 eeed40c overlay: restore image backgrounds (mime.cache fix applied)
2026-04-09 e6f5455 overlay: use solid color swaybg (gdk-pixbuf2 broken on aarch64)
2026-04-09 e0041c3 overlay: add post-theme-set hook for mobile sway/wvkbd
2026-04-08 f78832b image: add Wayland packages, mesa, lisgd, wvkbd to preloaded image
2026-04-08 bd546f1 DTS: remove efuse node — label not in base RK3399 dtsi
2026-04-08 dc4d1e3 trivial fixes: SPI flash ID, gpiokeys keycodes, eFuse, mise.toml
2026-04-08 0eed4db USB: switch DWC3 to host mode for hub testing
2026-04-08 adfcb21 revert dwc3_gadget DWC3_DEBUG changes — broke USB networking
2026-04-08 fb08fc3 dwc3_gadget: fix unused setup_count when DWC3_DEBUG not defined
2026-04-08 158a098 cleanup: goodix IRQ debug, remove DWC3/panfrost debug spam
2026-04-08 311c413 docs: update HARDWARE.md with verified status from 2026-04-08 testing
2026-04-08 65fb052 rk_i2s: remove FIFO test (crashes in trigger context)
2026-04-08 832e067 rk_i2s: TEST — 500ms square wave directly to FIFO to test hardware path
2026-04-08 700acd0 rk_i2s: TEST — integer sawtooth pattern to FIFO
2026-04-08 7d9ddc7 rk_i2s: TEST — write sine wave directly to FIFO in trigger to test hardware path
2026-04-08 a6f0db5 docs: add TODO checklists and references to HARDWARE.md
2026-04-08 b0e0a55 docs: add complete PinePhone Pro hardware support status
2026-04-08 0f2deb5 fusb302: fix unused variable warning
2026-04-08 7ed36c7 config: enable quick-win hardware drivers
2026-04-08 7eff5a0 audio: add debug logging to trace zero-buffer issue
2026-04-08 0632d48 clk_gate: implement get_gate (fixes "unimplemented" sysctl) rk_i2s: skip clock disable/set/enable if already at correct frequency
2026-04-08 5194b94 rk818_battery: fix unused variable warning (data32 __unused)
2026-04-08 92897aa config: re-enable rk818 PMIC — provides regulators needed by rk_iodomain for audio IO voltage
2026-04-08 f1ebc07 rk_i2s: enable audio IO domain, add CKR/TXCR debug dump in trigger
2026-04-08 81e710e dts: fix i2s0 pinctrl-names to 'default' so FreeBSD applies the pin mux
2026-04-08 b7a0829 rt5640: enable MCLK (SCLK_I2S_8CH_OUT) clock gate — was gated off, codec had no clock
2026-04-07 ecc7e55 rk_i2s: add data flow logging to TX interrupt
2026-04-07 d7cb545 rk_i2s: add debug logging to trigger, interrupt handler, and setup_intr
2026-04-07 a5c044c docs: add RT5640 audio driver plan
2026-04-07 5abd6f5 rt5640: fix ADDA_CLK1 (0x0000 for 256fs MCLK), set HP_VOL to 0dB
2026-04-07 dfa399d rt5640: use MCLK directly (U-Boot configures it), remove PLL-from-BCLK
2026-04-07 c985e63 audio: use RT5640 internal PLL from BCLK, restore full CRU PLL block
2026-04-07 bb92c4f cru: allow CPLL/GPLL/NPLL/VPLL, only block CPU PLLs (LPLL/BPLL) and DDR (DPLL)
2026-04-07 c15e051 cru: only allow GPLL writes (for audio), block all other PLLs — CPU/DDR/display PLLs crash
2026-04-07 854d8b2 cru: block CPLL + VPLL (display), allow GPLL/NPLL/LPLL/BPLL/DPLL
2026-04-07 9c82b07 cru: only block VPLL writes (display), allow all other PLLs for audio/I2C
2026-04-07 4fc9908 cru: remove debug printfs, keep PLL-only block filter
2026-04-07 25cd048 cru: allow all CLKSEL/CLKGATE/SOFTRST writes, only block PLLs
2026-04-07 e2c1eb8 cru: add debug logging for blocked/allowed writes
2026-04-07 5d6a594 rk_gpio: add missing PIC methods for GPIO interrupts (enable/disable/pre/post)
2026-04-07 6188b81 cru: also whitelist CLKSEL_CON61 (i2c1 divider/mux) for assigned-clock-rates
2026-04-07 35d7b18 cru: whitelist I2C1 and I2S/audio clocks in CRU write filter
2026-04-07 68d1ccc dts: remove cif_clkouta from i2c1 pinctrl (may prevent bus probe)
2026-04-07 7445229 audio: add sine wave test script
2026-04-07 9c7b2a3 fix files.arm64 patch hunk count
2026-04-07 71fe3bf audio: add RT5640 codec driver for PinePhone Pro
2026-04-07 aee413f audio: add RT5640 register definitions
2026-04-07 147cd75 audio: enable i2c1 bus and add rt5640 + sound to kernel config
2026-04-07 cdde470 gestures: add 3-finger swipes — left/right workspace, up fullscreen, down close
2026-04-07 36e89d2 theme-set-wvkbd: fix hex parsing for POSIX sh (0x prefix not 16#)
2026-04-07 a4a9762 wvkbd: blended special key colors (20% toward foreground from key bg)
2026-04-07 0d46acd theming: fix keyboard on light themes + shrink mako notifications
2026-04-07 ec79e9e swayosd: set font-size 12px and restart server on theme change
2026-04-07 880a5dd theme-set: phone-friendly foot (size=10, pad=4, alpha=0.85) and fuzzel settings
2026-04-07 ab71610 fuzzel: phone-friendly sizing in theme-set (width=18, lines=8, anchor=top)
2026-04-07 04fab18 theming: persistent theme hooks + themed keyboard on boot
2026-04-07 7baa2cc ports: add fuzzel 1.14.1 port (fixes touch tap coordinate scaling bug #686)
2026-04-07 0ed920a panfrost: fix use-after-free in gem_create_object_with_handle
2026-04-07 2429ec5 sway: revert to fuzzel (1.13 has touch support), tune config for phone tap targets
2026-04-07 b2b9a9f wvkbd theme: fix color mapping — use color0 for key bg, not selection_background
2026-04-07 5e925e9 theming: wire theme-set-sway and theme-set-wvkbd into omfreebdy theme system
2026-04-07 25d78fc wvkbd: add theme-set-wvkbd to apply omfreebdy themes
2026-04-07 2a1531a sway: add theme-set-sway to apply omfreebdy themes dynamically
2026-04-07 44efb88 sway: replace fuzzel with nwg-drawer grid launcher for phone
2026-04-07 b3ca63a wvkbd: patch to replace Compose with Super key for phone
2026-04-07 2cbabb6 sway: hide mouse cursor on phone (seat hide_cursor 100)
2026-04-07 fef2d98 sway: working gesture system + omfreebdy menu integration
2026-04-07 2ad2a0c sway: fix binding conflict, add swipe-down-dismiss-kbd, system menu
2026-04-07 321814e sway: fix Mod+k binding conflict, remove bindgesture (touchscreen-only, not touchpad)
2026-04-07 c0d1312 lisgd: fix gesture zones — bottom-up toggles kbd, top-down opens system menu
2026-04-07 c8004af sway: fix lisgd gestures — set SWAYSOCK, drop sudo, use chmod
2026-04-07 617eb99 panfrost: fix debug print — kref has no .refs on FreeBSD
2026-04-07 bdd62bb panfrost: add debug logging to gem_free_object and gem_open error path
2026-04-07 5eaca58 sway: add lisgd gesture wrapper script, fix evdev permissions and screen size
2026-04-07 a940350 panfrost: fix GEM struct_mutex assertion — use _unlocked variant where lock not held
2026-04-07 27ef2b0 sway: fix output mode syntax and lisgd exec (no multiline in sway config)
2026-04-07 74b80c0 hyprland: disable explicit_sync for ARM GPU (Mali T860 lacks syncobj timelines)
2026-04-07 4ac5212 goodix: defer I2C work from callout to taskqueue (fix sleep-in-softclock panic)
2026-04-07 2131751 goodix: fix gpio_alloc_intr_resource parameter type (&rid -> rid)
2026-04-07 0729574 build: enable Goodix touchscreen driver
2026-04-07 9bd776a panfrost: remove mmu from in-use list before teardown to fix IRQ race
2026-04-07 604bd8f rk_drm: skip wait_for_vblanks in commit_tail to prevent GPU reset deadlock
2026-04-07 e275d21 panfrost: properly unmap all GPU pages in pgtable_free (fix postclose panic)
2026-04-07 75ea54b iommu: also fix KASSERT on sp_resident_count after clearing stale L3 entries
2026-04-06 d50072f iommu: clear stale L3 entries instead of panicking in smmu_pmap_remove_pages
2026-04-06 7fd58f9 panfrost: unmap GPU pages before pgtable teardown, fix postclose panic
2026-04-06 6fd3ad9 config: add IOMMU option to prevent duplicate symbol conflict
2026-04-06 45548ab config: add iommu device for panfrost GPU MMU (pmap_gpu_enter)
2026-04-06 ce2a0f5 build: add dwc3_gadget.c to files.arm64 via our own patch
2026-04-06 96dc226 rockchip: fix compile warnings — undeclared func, unused vars, uninitialized ptr
2026-04-06 0d07586 build: add dw_hdmi_if.m to bridges overlay (misplaced in drm-subtree root)
2026-04-06 563fa86 mise: copy drm-subtree into freebsd-src during patch step
2026-04-06 3c525c5 build: add missing files.arm64 and files.bridges for DRM/panfrost/DSI compilation
2026-04-06 098c350 fix kern.pre.mk patch format for FreeBSD patch(1)
2026-04-06 9357f33 build: add DRM_C build flags patch for kern.pre.mk
2026-04-06 236f059 dwc3: add dwc3_gadget_attach prototype to header to fix -Wmissing-prototypes
2026-04-06 6f92abd remove duplicate files.arm64.patch (already in honeyguide)
2026-04-06 51929aa mise: patch task now applies our repo's overlays and patches on top of honeyguide
2026-04-06 eb0e2d1 panfrost: inline GPU reset in timedout callback, fix build config
2026-04-06 3a682b4 drm: add detailed commit_tail logging to diagnose hw_done timeout
2026-04-06 f930a3d panfrost: signal pending fences during GPU reset
2026-04-06 736d191 vop: send commit event immediately instead of arming for vblank
2026-04-06 07aca7b vop: fix event race — handle page flip event only in atomic_flush
2026-04-06 4ee029b drm/scheduler: harden drm_sched_stop for FreeBSD
2026-04-06 02ce95d vop/plane: remove hot-path debug printfs causing 60fps console flood
2026-04-06 98406a4 vop: revert atomic_begin change — keep event handling in both begin and flush
2026-04-06 24af106 vop: enable vblank interrupt in U-Boot preserve path
2026-04-06 c11b579 vop: fix atomic commit completion — move event to atomic_flush only
2026-04-06 25f029c panfrost: increase job timeout and harden reset path
2026-04-06 eddd35f drm: fix negative errno from Linux ioctl compat layer
2026-04-06 b3c2366 DRM sysctl + libdrm platform device support
2026-04-06 3462965 MIPI DSI pipeline: full driver stack, VOP outputting frames
2026-04-06 02aac91 MIPI DSI pipeline: full driver stack, VOP outputting frames
2026-04-06 425e894 plan: MIPI DSI display pipeline implementation
2026-04-06 985970f spec: MIPI DSI display pipeline design for PinePhone Pro
2026-04-06 debee9a Phone desktop environment, USB fixes, GPU bring-up
2026-04-05 748290d preloaded image: fix rc.local overwrite — use correct growfs with UFS label
2026-04-05 7811345 preloaded image: X11-only packages, no Wayland deps
2026-04-05 68043e7 Add i3 phone config with svkbd scratchpad + lisgd gestures
2026-04-05 510148a Add preloaded image builder and mise tasks
2026-04-05 3c1fcda Fix auto-growfs: use UFS label, try both mmcsd devices
2026-04-05 085e863 honeyguide-create-img.sh: fix EFI format and paths
2026-04-04 df6fc30 Add clean image builder — no LUKS, growfs works on first boot
2026-04-04 2937ee4 overlay: working Sxmo-style setup — dwm iskbd + lisgd gestures + svkbd
2026-04-04 5e5c5ca Add Sxmo-style dwm + lisgd + svkbd setup to overlay
2026-04-04 f85de7b Add overlay and image setup for X11 + touchscreen + svkbd
2026-04-04 5184368 goodix: add ABS_X/ABS_Y for libinput touchscreen classification
2026-04-04 f8941a3 dwc3_gadget: restore to last known working state (9255d7a)
2026-04-04 3f9a6fb dwc3_gadget: move CDC notification to after SET_INTERFACE(alt=1)
2026-04-03 90800bd dwc3_gadget: add CDC ECM alt settings for data interface
2026-04-03 175dd10 dwc3_gadget: add ep_start_transfer error check and clear OACTIVE on reset
2026-04-03 05129b1 Revert TX ring changes — regression, no packets getting through
2026-04-03 1a7665e dwc3_gadget: clear OACTIVE and TX ring state on USB reset
2026-04-03 f0258c2 dwc3_gadget: TX completion advances ring, submits next slot
2026-04-03 569ebb7 dwc3_gadget: rewrite if_start with TX ring — queue up to 8 packets
2026-04-03 d4dfbbd dwc3_gadget: allocate 8 TX ring DMA buffers in attach
2026-04-03 67aab11 dwc3_gadget: replace single TX buffer with 8-slot ring in softc
2026-04-03 49bb53d plan: USB Ethernet stability — TX ring, error recovery, reset cleanup
2026-04-03 27a1dc7 spec: USB Ethernet stability — multi-buffer TX, error recovery, reset cleanup
2026-04-03 49e3cee dwc3_gadget: remove verbose debug logging — driver is stable
2026-04-03 19ce1cb goodix: add polling mode fallback when GPIO IRQ unavailable
2026-04-03 e99ffd7 goodix: debug GPIO interrupt allocation
2026-04-03 831f639 goodix: fix GPIO/IRQ — use explicit OFW node, gpio_alloc_intr_resource fallback
2026-04-03 8b08a28 goodix: fix build — add sys/gpio.h include, use evdev_sync()
2026-04-03 498b777 reflash.py: add goodix.c sync and build support
2026-04-03 bfda3ef PINEPHONE_PRO: add goodix touchscreen and evdev
2026-04-03 2464a0a goodix: add Goodix GT917S multitouch touchscreen driver
2026-04-03 bcbfda4 plan: Goodix GT917S touchscreen — 3 tasks, full driver + config + test
2026-04-03 c250400 spec: Goodix GT917S touchscreen driver — multitouch via evdev
2026-04-03 9255d7a dwc3_gadget: fix TRB ring index mismatch — always use TRB[0]
2026-04-03 9f13c7b dwc3_gadget: add debug prints for bulk RX/TX completion
2026-04-03 981ac97 dwc3_gadget: fix CDC notification buffer collision with bulk TX/RX
2026-04-01 f580710 dwc3_gadget: fix CDC Ethernet data path — different MAC, send notification
2026-04-01 5ef0162 dwc3_gadget: port network interface to FreeBSD 15 opaque if_t API
2026-04-01 7220fe3 dwc3_gadget: add ACTION_INIT to bulk endpoint DEPCFG
2026-04-01 aba89f0 dwc3_gadget: mark bulk endpoints stopped and link-down on USB reset
2026-04-01 8e2fa81 dwc3_gadget: handle bulk RX/TX completion — deliver packets to ifnet
2026-04-01 c76cb79 dwc3_gadget: activate bulk endpoints and pre-queue RX on SET_CONFIGURATION
2026-04-01 34f740b dwc3_gadget: add ue0 network interface with TX path
2026-04-01 713aa4e dwc3_gadget: allocate TX/RX DMA buffers for bulk endpoints
2026-04-01 39d5836 dwc3_gadget: add networking includes and TX/RX buffer fields to softc
2026-04-01 8b382a7 plan: CDC Ethernet data path — 7 tasks, bulk TX/RX, network interface, ping test
2026-04-01 1362d59 spec: CDC Ethernet data path — bulk endpoints, network interface, TX/RX
2026-04-01 72902b7 dwc3_gadget: add full CDC ECM descriptors for cdc_ether
2026-04-01 2ed4468 Revert usb_template integration — deferred callbacks too slow for EP0
2026-04-01 795eea3 dwc3_gadget: defer SETUP TRB queuing until USB stack calls ctrl_start
2026-04-01 8d50405 dwc3_gadget: delete inline EP0 descriptor handling
2026-04-01 4206457 dwc3_gadget: copy OUT data to xfer buffer on EP0 DATA completion
2026-04-01 e03526e dwc3_gadget: complete USB stack ctrl_xfer after STATUS phase
2026-04-01 84dfef5 dwc3_gadget: forward SETUP packets to USB stack via usbd_transfer_done
2026-04-01 8c6bc04 dwc3_gadget: rewrite ctrl_start to drive EP0 DATA phase from USB stack
2026-04-01 99e3a0a dwc3_gadget: add ep0_xfer field for USB stack ctrl_xfer tracking
2026-04-01 332d627 plan: usb_template integration — 7 tasks, replace inline EP0 with USB stack
2026-04-01 0d3f5ae spec: usb_template integration — replace inline descriptors with USB stack
2026-04-01 af3dce8 dwc3_gadget: ignore stale SETUP completions after USB reset
2026-04-01 d2cf055 dwc3_gadget: remove XferInProgress enable from EP0 (matches Linux)
2026-04-01 85eec98 dwc3_gadget: enable erratic error and event overflow detection in DEVTEN
2026-04-01 ef39f1e dwc3_gadget: configure LPM and HIRD threshold in connect-done
2026-04-01 52f48b9 dwc3_gadget: wait for XferNotReady before starting STATUS phase
2026-04-01 371662b dwc3_gadget: make bounce buffer cacheable with explicit bus_dmamap_sync
2026-04-01 ccfe918 dwc3_gadget: clear SUSPHY/ENBLSLPM before EP commands per programming guide
2026-04-01 9c29146 dwc3: add register defines for LPM, HIRD, DEVTEN, SUSPHY, EP0 phase
2026-04-01 7d5acff plan: EP0 enumeration fix — 8 tasks, STATUS race + SUSPHY + DMA + LPM
2026-04-01 1225157 spec: EP0 enumeration fix — STATUS race, SUSPHY, DMA coherency
2026-04-01 bf8ab6b dwc3_gadget: handle GET_DESCRIPTOR inline for EP0 enumeration
2026-04-01 92b3f13 dwc3_gadget: fix TRBCTL values — CONTROL_SETUP is 2 not 6
2026-04-01 0d538c3 dwc3_gadget: add spurious SETUP detection and re-queue
2026-04-01 50b4566 dwc3_gadget: move SETUP TRB to connect-done, use BUS_DMA_NOCACHE
2026-04-01 60f1183 dwc3: fix DEPCFG EP_NUMBER (bits [29:25] not [1:0]) and TRBCTL_SETUP (6 not 2)
2026-04-01 5db8e09 dwc3_gadget: fix USB reset handler — skip ENDTRANSFER, clear TSTCTL
2026-04-01 d963128 dwc3: fix DWC3_EVENT_TYPE macro — was extracting wrong bits
2026-04-01 9a99f0d dwc3: use DCTL.CSFTRST for device-mode reset, add CRU reset dance
2026-04-01 223f5b7 Add reflash.py automation, debug output, typec_phy usb2-only mode
2026-04-01 8e03db9 rk_usb2phy: fix phy_sus to also clear opmode bits [3:2]
2026-04-01 10e8b0a fusb302: minimal USB Type-C port controller driver
2026-04-01 4d26349 rk_usb2phy: add OTG port support for device mode
2026-04-01 d60ac4f dwc3_gadget: fix usbus attach, root hub emulation, usb_template
2026-04-01 adb4f70 dwc3: add USB device-mode (gadget) driver for CDC Ethernet over USB-C
2026-03-31 3136fef plan: DWC3 gadget driver implementation in 6 tasks
2026-03-31 a1b1f62 spec: DWC3 device-mode (gadget) driver design
2026-03-31 5cfbf71 Add .gitignore
2026-03-31 0998911 kernel: add USB modem drivers to PINEPHONE_PRO config
2026-03-31 d560714 dts: add modem GPIO pinctrl group
2026-03-31 f695c16 Fix USB on PinePhone Pro: selective CRU filter, PHY init, VBUS power
2026-03-31 a73add4 Initial commit

By subsystem

Bluetooth

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

USB

2026-04-22 3874652 site: essays 5-8 — DWC3, Goodix, display, panfrost war stories
2026-04-22 3699c3b site: opening 4 essays — framing, SD boot, build pipeline, USB-Ethernet
2026-04-22 82860c1 site: v1 subsystem stubs (usb, bluetooth, display, audio, touchscreen, wifi, modem)

Display

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-04-22 8133d93 site: essays 13-15 — on-device audio, status snapshot, roadmap
2026-04-22 82860c1 site: v1 subsystem stubs (usb, bluetooth, display, audio, touchscreen, wifi, modem)
2026-04-22 baafaea A2DP AUDIO CONFIRMED PLAYING 🎉

WiFi

2026-04-22 82860c1 site: v1 subsystem stubs (usb, bluetooth, display, audio, touchscreen, wifi, modem)