patches/driver/bes2600/*-danctnix: reconstruct from cleanups (closes #29) #33

Merged
marfrit merged 1 commits from claude-noether/kernel-agent:noether/kernel-agent-29-per-series-reconstruct into main 2026-05-19 04:58:55 +00:00
Owner

Closes #29 — proper per-series mirrors

Replaces the broken DKMS-path mirrors from #17 with reconstructed in-tree-path series-dirs generated from marfrit/bes2600-dkms-mobian cleanups branch via git format-patch fe73571..cleanups --no-merges + sed prefix rewrite. Retires cumulative-c5x-danctnix/ from fleet/ohm.yaml includes (kept on disk for one cycle as bisection reference).

Phase 0 inventory result

The c5x cumulative was generated from the cleanups branch (29 non-merge commits) + bh-c-fossil-cleanup (1 cmt = Patch H). Base for the entire stack: fe73571183cd (the merge-base of all bes2600 branches with mobian, immediately before the Patch A merge into mobian).

Reconstruction (32 patches total in cumulative)

for commit in cleanups + bh-c-fossil-cleanup:
  determine target series-dir based on commit subject
  sed --src/--dst prefix: a/bes2600/foo.c -> a/drivers/staging/bes2600/foo.c
  drop into kernel-agent/patches/driver/bes2600/<series>/000N-<commit-subject>.patch

Apply order (matches cleanups commit chronology)

# series-dir patches legend
1-2 factory-series 2 c1 + STANDARD_FACTORY_EFUSE_FLAG off
3 factory-thread-dev 1 c1.2 (thread struct device through factory)
4 pm-gate-on-handshake 1 gate LP-mode entry on handshake
5 remove-chardev-user-interface 1 drop /dev/bes2600
6 enable-testmode 1 CONFIG_BES2600_TESTMODE=y
7 tx-sdio-dma-oob-danctnix 1 DMA OOB bounce
8 factory-drop-kernel-write-danctnix 1 drop kernel_write from factory save
9 drop-dpd-file-paths-danctnix 1 drop DPD file I/O
10 drop-orphan-file-io-danctnix 1 drop DATA_DUMP_OBSERVE
11 pm-timeout-silence-danctnix 1 demote 'wait pm ind timeout'
12 scan-defer-on-reject-danctnix 1 c5.1 scan-defer-on-reject
13 scan-defer-backoff-tune-danctnix 1 c5.1.1 backoff 30s + decay
14-15 lmac-recover-via-mmc-hw-reset-danctnix 2 c5.2 + c5.2.1 (multi-fn SDIO)
16 pm-state-resync-danctnix 1 c6.1 gate PM ind + track state
17 pm-wake-consume-state-danctnix 1 c6.2 short-circuit wake handshake
18 pm-detect-firmware-unsupported-danctnix 1 c7 PSM-not-honored self-detect
19 decrypt-storm-fast-recover-danctnix 1 Patch A decrypt-storm fast-recover
20 connection-loss-fast-recover-danctnix 1 Patch B bus_reset on conn-loss storm
21-23 cw1200-fix-backports-danctnix 3 Patches F3 + F2 + F1
24 sdio-rx-no-relay-danctnix 1 Patch C v3 IRQ→bh direct
25 license-spdx-restore-attribution-danctnix 1 Patch G SPDX + ST-E attribution
26 ba-lock-atomic-danctnix 1 Patch D ba_lock atomicization
27 ps-state-lock-skip-pm-disabled-danctnix 1 Patch E ps_state_lock skip
28 rx-list-batch-delivery-danctnix 1 Patch C2 ieee80211_rx_irqsafe → _ni
29 bh-c-fossil-cleanup-danctnix 1 Patch H bh.c hygiene
30 scan-filter-5ghz-danctnix 1 besser#1 (5 GHz multi-channel scan filter)
31 arch/arm64/xor-neon-...-scs-... 1 GCC 15 SCS workaround (no-op while SCS=n)
32 queue-pending-record-lock-bh-danctnix 1 besser#18 lockdep fix

Debian-metadata commit 0012 (debian/copyright FSF address) is intentionally skipped — it's packaging metadata, not a kernel change.

Self-consistency

ka-promote ohm
  cumulative: cumulative.patch (276 079 bytes)
  b2sum:      7418db5ddf8fe938b130bc9d0e9f7dc9060f3a13703cd50757835ac43140a13...
  patches:    32 resolved (32 from series-dirs)

The new cumulative is bigger than the c5x interim (276 079 vs 162 716) because each per-series patch carries its full From <sha> Mon Sep 17 header + commit message — vs the interim cumulative which was a single squashed commit's diff body.

Verification plan (Phase 7)

Building marfrit-packages pkgrel=6 from this manifest now. If bes2600.ko srcversion == 26B0003FE9F2B05DCE838C4 (pkgrel=5's, currently on ohm), the per-series cumulative produces a byte-identical source tree to the c5x interim — verified correct.

If srcversion differs, diff source trees + adjust until equivalence (likely missing-commit or apply-order issue).

Trailers

Every series-dir patch carries a standard -- \n2.54.0\n git-format-patch trailer EXCEPT the last in the cumulative (besser#18's queue-pending-record-lock-bh-danctnix/0001-...patch). Still brittle — kernel-agent#31 (ka-promote trailer normalisation) tracks the proper fix.

Followups still open after this lands

  • #31 (ka-promote trailer normalisation)
  • Per-series series-dirs without the -danctnix suffix (the bare pm-state-resync/, tx-sdio-dma-oob/, etc.) still have the original broken patches from #17. Out of scope here since ohm doesn't include them — but if other fleet manifests pull them, they'll still fail. Open a separate cleanup if needed.

Refs: #17, #28, #29, #31.

## Closes #29 — proper per-series mirrors Replaces the broken DKMS-path mirrors from #17 with reconstructed in-tree-path series-dirs generated from `marfrit/bes2600-dkms-mobian` `cleanups` branch via `git format-patch fe73571..cleanups --no-merges` + sed prefix rewrite. Retires `cumulative-c5x-danctnix/` from `fleet/ohm.yaml` includes (kept on disk for one cycle as bisection reference). ## Phase 0 inventory result The c5x cumulative was generated from the `cleanups` branch (29 non-merge commits) + `bh-c-fossil-cleanup` (1 cmt = Patch H). Base for the entire stack: `fe73571183cd` (the merge-base of all bes2600 branches with mobian, immediately before the Patch A merge into mobian). ## Reconstruction (32 patches total in cumulative) ``` for commit in cleanups + bh-c-fossil-cleanup: determine target series-dir based on commit subject sed --src/--dst prefix: a/bes2600/foo.c -> a/drivers/staging/bes2600/foo.c drop into kernel-agent/patches/driver/bes2600/<series>/000N-<commit-subject>.patch ``` ## Apply order (matches cleanups commit chronology) | # | series-dir | patches | legend | |---|---|---:|---| | 1-2 | factory-series | 2 | c1 + STANDARD_FACTORY_EFUSE_FLAG off | | 3 | factory-thread-dev | 1 | c1.2 (thread struct device through factory) | | 4 | pm-gate-on-handshake | 1 | gate LP-mode entry on handshake | | 5 | remove-chardev-user-interface | 1 | drop /dev/bes2600 | | 6 | enable-testmode | 1 | CONFIG_BES2600_TESTMODE=y | | 7 | tx-sdio-dma-oob-danctnix | 1 | DMA OOB bounce | | 8 | factory-drop-kernel-write-danctnix | 1 | drop kernel_write from factory save | | 9 | drop-dpd-file-paths-danctnix | 1 | drop DPD file I/O | | 10 | drop-orphan-file-io-danctnix | 1 | drop DATA_DUMP_OBSERVE | | 11 | pm-timeout-silence-danctnix | 1 | demote 'wait pm ind timeout' | | 12 | scan-defer-on-reject-danctnix | 1 | **c5.1** scan-defer-on-reject | | 13 | scan-defer-backoff-tune-danctnix | 1 | **c5.1.1** backoff 30s + decay | | 14-15 | lmac-recover-via-mmc-hw-reset-danctnix | 2 | **c5.2** + **c5.2.1** (multi-fn SDIO) | | 16 | pm-state-resync-danctnix | 1 | **c6.1** gate PM ind + track state | | 17 | pm-wake-consume-state-danctnix | 1 | **c6.2** short-circuit wake handshake | | 18 | pm-detect-firmware-unsupported-danctnix | 1 | **c7** PSM-not-honored self-detect | | 19 | decrypt-storm-fast-recover-danctnix | 1 | **Patch A** decrypt-storm fast-recover | | 20 | connection-loss-fast-recover-danctnix | 1 | **Patch B** bus_reset on conn-loss storm | | 21-23 | cw1200-fix-backports-danctnix | 3 | **Patches F3 + F2 + F1** | | 24 | sdio-rx-no-relay-danctnix | 1 | **Patch C v3** IRQ→bh direct | | 25 | license-spdx-restore-attribution-danctnix | 1 | **Patch G** SPDX + ST-E attribution | | 26 | ba-lock-atomic-danctnix | 1 | **Patch D** ba_lock atomicization | | 27 | ps-state-lock-skip-pm-disabled-danctnix | 1 | **Patch E** ps_state_lock skip | | 28 | rx-list-batch-delivery-danctnix | 1 | **Patch C2** ieee80211_rx_irqsafe → _ni | | 29 | bh-c-fossil-cleanup-danctnix | 1 | **Patch H** bh.c hygiene | | 30 | scan-filter-5ghz-danctnix | 1 | besser#1 (5 GHz multi-channel scan filter) | | 31 | arch/arm64/xor-neon-...-scs-... | 1 | GCC 15 SCS workaround (no-op while SCS=n) | | 32 | queue-pending-record-lock-bh-danctnix | 1 | besser#18 lockdep fix | Debian-metadata commit `0012` (debian/copyright FSF address) is intentionally skipped — it's packaging metadata, not a kernel change. ## Self-consistency ``` ka-promote ohm cumulative: cumulative.patch (276 079 bytes) b2sum: 7418db5ddf8fe938b130bc9d0e9f7dc9060f3a13703cd50757835ac43140a13... patches: 32 resolved (32 from series-dirs) ``` The new cumulative is bigger than the c5x interim (276 079 vs 162 716) because each per-series patch carries its full `From <sha> Mon Sep 17` header + commit message — vs the interim cumulative which was a single squashed commit's diff body. ## Verification plan (Phase 7) Building `marfrit-packages` pkgrel=6 from this manifest now. If `bes2600.ko srcversion == 26B0003FE9F2B05DCE838C4` (pkgrel=5's, currently on ohm), the per-series cumulative produces a byte-identical source tree to the c5x interim — verified correct. If srcversion differs, diff source trees + adjust until equivalence (likely missing-commit or apply-order issue). ## Trailers Every series-dir patch carries a standard `-- \n2.54.0\n` git-format-patch trailer EXCEPT the last in the cumulative (besser#18's `queue-pending-record-lock-bh-danctnix/0001-...patch`). Still brittle — `kernel-agent#31` (ka-promote trailer normalisation) tracks the proper fix. ## Followups still open after this lands - #31 (ka-promote trailer normalisation) - Per-series series-dirs **without** the `-danctnix` suffix (the bare `pm-state-resync/`, `tx-sdio-dma-oob/`, etc.) still have the original broken patches from #17. Out of scope here since ohm doesn't include them — but if other fleet manifests pull them, they'll still fail. Open a separate cleanup if needed. Refs: #17, #28, #29, #31.
marfrit added 1 commit 2026-05-19 04:42:31 +00:00
Replaces the 13 broken DKMS-path -danctnix mirrors from PR #17 + adds
9 new series-dirs for the c-stack patches that were never split
(Patches A/B/C-v3/F/D/E/C2/G/H) + retires the cumulative-c5x-danctnix
single-file interim from fleet/ohm.yaml.

Mechanism:
  cd marfrit/bes2600-dkms-mobian
  git format-patch fe73571..cleanups --no-merges -o /tmp/cleanups/
  git format-patch cleanups..bes2600/bh-c-fossil-cleanup --no-merges -o /tmp/h/
  for each commit: route to series-dir, sed-rewrite
                   a/bes2600/foo.c -> a/drivers/staging/bes2600/foo.c

The 29 cleanups commits + 1 Patch H commit map to 25 series-dirs (a
few series-dirs get multiple commits: lmac-recover gets c5.2 + c5.2.1
as 0001+0002; cw1200-fix-backports gets F3+F2+F1 as 0001-0003;
factory-series gets request_firmware + STANDARD_FACTORY_EFUSE_FLAG
as 0001+0002).

fleet/ohm.yaml apply order matches cleanups commit chronology, which
is what produced the working c5x interim. cumulative.patch from
ka-promote ohm now has 32 resolved patches (29 cleanups + 1 Patch H
+ scan-filter-5ghz + xor-neon SCS + besser#18-fix), 276 079 bytes,
b2sum 7418db5ddf8fe938b130bc9d0e9f7dc9060f3a13703cd50757835ac43140a13...

Apply order in cleanups + bh-c-fossil-cleanup:
  1   factory-series                       (c1 + factory-no-efuse-flag)
  3   factory-thread-dev
  4   pm-gate-on-handshake
  5   remove-chardev-user-interface
  6   enable-testmode
  7   tx-sdio-dma-oob-danctnix             (was 'staging-prep-series')
  8   factory-drop-kernel-write-danctnix
  9   drop-dpd-file-paths-danctnix
  10  drop-orphan-file-io-danctnix
  11  pm-timeout-silence-danctnix
  12  scan-defer-on-reject-danctnix        (c5.1)
  13  scan-defer-backoff-tune-danctnix     (c5.1.1)
  14  lmac-recover-via-mmc-hw-reset-danctnix  (c5.2 + c5.2.1)
  16  pm-state-resync-danctnix             (c6.1)
  17  pm-wake-consume-state-danctnix       (c6.2)
  18  pm-detect-firmware-unsupported-danctnix (c7)
  19  decrypt-storm-fast-recover-danctnix  (Patch A)
  20  connection-loss-fast-recover-danctnix (Patch B)
  21  cw1200-fix-backports-danctnix        (Patches F3 + F2 + F1)
  24  sdio-rx-no-relay-danctnix            (Patch C v3)
  25  license-spdx-restore-attribution-danctnix (Patch G)
  26  ba-lock-atomic-danctnix              (Patch D)
  27  ps-state-lock-skip-pm-disabled-danctnix (Patch E)
  28  rx-list-batch-delivery-danctnix      (Patch C2)
  29  bh-c-fossil-cleanup-danctnix         (Patch H)
  30  scan-filter-5ghz-danctnix            (besser#1)
  31  arch/arm64/xor-neon-...              (GCC 15 SCS)
  32  queue-pending-record-lock-bh-danctnix (besser#18)

Verification: pkgrel=6 build from this manifest in progress; if
srcversion == 26B0003FE9F2B05DCE838C4 (pkgrel=5's), source-tree is
byte-equivalent to the c5x interim + scan-filter + besser#18 stack
that's currently running on ohm.

Refs: #17 (the broken mirror), #28 (the interim PR that landed
cumulative-c5x), #31 (ka-promote trailer normalisation followup).
marfrit merged commit 38fd672940 into main 2026-05-19 04:58:55 +00:00
marfrit deleted branch noether/kernel-agent-29-per-series-reconstruct 2026-05-19 04:58:55 +00:00
Sign in to join this conversation.