Skip to content

chore: 2.11.8 backports - #7816

Open
pfeerick wants to merge 18 commits into
2.11from
pfeerick/backport-2.11.8
Open

pfeerick wants to merge 18 commits into
2.11from
pfeerick/backport-2.11.8

Conversation

@pfeerick

@pfeerick pfeerick commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Tracking PR for commits backported from main onto 2.11 for the 2.11.8 release. Rebase-merge only. Please don't squash: the individual cherry-picked commit trail is the point.

Already on 2.11 (merged directly or backported earlier, no cherry-pick needed)

Backported commits

Not included

Behaviour changes worth noting for an LTS point release

All are intended upstream:

Outstanding Items

Build-verified locally: tx16s, x12s (VS1053 SPI audio), x9d (CLI=YES, covers the #6543 volume command) and x7 firmware build cleanly with no new warnings. xlite with XLITE_ALT_LAYOUT=ON builds, and its generated key table uses the alternative pins (4 trims, as in the stock layout). tx16s rebuilt with #7809. cli.cpp syntax-checks with DEBUG_AUDIO. Every commit was reviewed against its source PR by two independent review passes.

🤖 Generated with Claude Code

philmoz and others added 13 commits September 24, 2026 04:37
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
(cherry picked from commit 34afae5)
…te" (#7022)

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
(cherry picked from commit 076d80e)
Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
(cherry picked from commit b0eb233)
…7689)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

2.11 port: 2.11 already fixed the AudioBufferFifo full/empty ambiguity
its own way in #7472 (a0cd30f, a
volatile bufferFull flag) plus #7685
(53199fe, used() when full). That
flag is written by both the producer (audioPushBuffer) and the consumer
(freeNextFilledBuffer), so an interrupt between the index update and
the flag update can leave it wrong. This port replaces it with
upstream's free-running counters, so each side only writes its own
index, and also brings in the AudioFragmentFifo fix
(all AUDIO_QUEUE_LENGTH slots usable), the static_asserts and the CLI
output.

Conflicts in the AudioBufferFifo class were resolved to the upstream
version, and the bufferFull member and initialiser were removed. The
cli.cpp debug output prints full() instead of bufferFull, as upstream
does. The DAC underrun handling from #7472 is kept unchanged.

filledAtleast() is kept, although upstream removes it as unused. 2.11's
simulator audio callback (targets/simu/simpgmspace.cpp fillAudioBuffer)
still uses it as a pre-buffer threshold. used() keeps returning
AUDIO_BUFFER_COUNT when full, as it did after #7685.

(cherry picked from commit e2968ac)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…7814)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>

2.11 port: dropped the yaml_datastructs_funcs.cpp hunk (r_cfs_name only
exists on main, from #6095; 2.11 reads switchNames via the generated YAML
string node, so it has no strAppend there) and the modelslist_labels.cpp
test hunk (that test doesn't exist on 2.11). The theme_manager.cpp and
strhelpers.cpp changes apply unchanged.

(cherry picked from commit 69d016f)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pfeerick pfeerick added this to the 2.11.8 milestone Sep 24, 2026
…2662)

Adds the XLITE_ALT_LAYOUT CMake option (X-Lite and X-Lite S), which swaps
the key and left-trim GPIO assignments.

Squash of PR #2662 (commit 39bf1c4; the PR's two merge-from-main
commits dropped), hand-ported to 2.11: pin definitions converted to the
LL style (GPIOx / LL_GPIO_PIN_n), and TRIMS_VIRTUAL_RV/RH added to the
alternative trim block so the virtual right-stick trims are still
generated, as in the stock X-Lite layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.11 port: dropped the radio_mic_recorder.cpp hunk. That file was added
on main by the MEMS microphone support (#7328), and the flag line in it
by #7706. Neither is on 2.11:
  #7328 a7d730f
  #7706 ccc8387
As on main, nothing on 2.11 reads the flag (unused since #3441), so the
other hunks apply unchanged and there's no behaviour change.

(cherry picked from commit f364c6e)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Not an upstream cherry-pick.

MSYS2 has dropped dfu-util from its mingw64 package database (it's still
packaged for ucrt64, clang64 and clangarm64), so the Windows Companion
job's "pacman -S ... mingw-w64-x86_64-dfu-util" now fails with "target
not found" before the repo is even checked out. That breaks every 2.11
Windows Companion build, including nightly and release builds. The last
2.11 Companion run to pass was on 2026-08-20.

Dropping the package isn't enough. Companion only bundles dfu-util.exe
and libusb-1.0.dll into the Windows installer when libusb is found, and
libusb was only installed as dfu-util's dependency. The build would pass
but ship without DFU flashing support.

2.12 and main don't need dfu-util: Companion uses rs_dfu there (#6521,
dbce54d).
There is no upstream equivalent, so this change is 2.11-only.

- Vendor the last signed mingw64 build, dfu-util 0.11-2 (MSYS2 CI,
  2025-05-31), and its detached signature in .github/msys2, with a
  README giving its source, checksum and licence. SHA-256:
  950652382f6632ac4b7e42d39d0cda19ef593f1a490c56c814e9f65a5aabe89c
- Install it with "pacman -U" after checkout. Its dependencies (libusb,
  libwinpthread) are still in the mingw64 database.
- Install mingw-w64-x86_64-libusb explicitly, since the installer
  bundling depends on it.
- Add .github/msys2/** to companion.yml's trigger paths, so a change to
  the vendored package alone still runs the Companion build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pfeerick
pfeerick force-pushed the pfeerick/backport-2.11.8 branch from 02845d1 to 4c03c73 Compare October 3, 2026 23:28
richardclli and others added 2 commits October 4, 2026 10:32
Co-authored-by: 3djc <3djc@gh.com>
Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>

(cherry picked from commit 5204f6c)

Port notes for 2.11:
- The h750 board.h and c14/board.h hunks are dropped (those boards
  don't exist on 2.11). Git's rename detection paired rm-h750/board.h
  with nv14/board.h, which is left unchanged.
- The simulator stub change is applied to simpgmspace.cpp instead of
  simulib.cpp (simulib.cpp is main-only, added by #6435).
- The colorlcd boot menu's flash error screen uses lcd-> instead of
  lcd., because 2.11's colorlcd bootloader lcd is a BitmapBuffer*.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pfeerick
pfeerick force-pushed the pfeerick/backport-2.11.8 branch from 4c03c73 to 6acb7e3 Compare October 4, 2026 10:49
@pfeerick
pfeerick marked this pull request as ready for review October 4, 2026 10:51

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants