Conversation
(cherry picked from commit 4f6e022)
Co-authored-by: Peter Feerick <peter.feerick@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> (cherry picked from commit 34afae5)
(cherry picked from commit bfe6cd1)
Co-authored-by: philmoz <phil.a.mitchell@gmail.com> (cherry picked from commit b0eb233)
(cherry picked from commit 9bab4ec)
…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>
…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>
pfeerick
force-pushed
the
pfeerick/backport-2.11.8
branch
from
September 25, 2026 05:06
1da6b1e to
7887c15
Compare
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>
pfeerick
force-pushed
the
pfeerick/backport-2.11.8
branch
from
October 3, 2026 22:21
7887c15 to
02845d1
Compare
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
force-pushed
the
pfeerick/backport-2.11.8
branch
from
October 3, 2026 23:28
02845d1 to
4c03c73
Compare
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
force-pushed
the
pfeerick/backport-2.11.8
branch
from
October 4, 2026 10:49
4c03c73 to
6acb7e3
Compare
pfeerick
marked this pull request as ready for review
October 4, 2026 10:51
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tracking PR for commits backported from
mainonto2.11for 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
bufferFullflag that both the producer and the consumer write. This replaces it with upstream's design, where each side only writes its own counter, and also brings in the fragment FIFO fix.filledAtleast()is kept, although upstream removes it, because 2.11's simulator (simpgmspace.cpp) still uses it. fix(sound): sound playing sometimes sluggish #7472's DAC underrun handling is unchanged.yaml_datastructs_funcs.cpphunk (r_cfs_nameonly exists onmain, from feat(radio): refactor of switch handling to better support customisable switches #6095) and themodelslist_labels.cpptest hunk (that test doesn't exist on 2.11). Thetheme_manager.cppandstrhelpers.cppchanges apply unchanged.main: an open community PR (its fork tracksmain, so it couldn't be retargeted), squashed and hand-ported here. Pin definitions converted to the LL style (GPIOx/LL_GPIO_PIN_n), andTRIMS_VIRTUAL_RV/RHadded to the alternative trim block so the virtual right-stick trims are still generated as in the stock X-Lite layout. It won't go to 2.12 ormain.radio_mic_recorder.cpphunk (that file comes from themain-only MEMS microphone support, feat: MEMS microphone software handling for TX15 and TX16SMK3 #7328). Nothing on 2.11 reads the flag either (unused since fix(color): Rework rotary encoder acceleration calculation removing double handling #3441), so there's no behaviour change. Re-milestoned from 3.0 to 2.11.8 after this PR was opened, so it's appended after Add compile time option for xlite alt layout #2662 rather than placed in merge order.dfu-utilfrom itsmingw64packages (MINGW-packages #31695, 2026-09-17), so every 2.11 Windows Companion build failed atpacman -Swith "target not found". This vendors the last signedmingw64build (0.11-2) and its.sigin.github/msys2/and installs it withpacman -Uafter checkout, which still checks the signature. It also installslibusbexplicitly, because the installer only bundlesdfu-util.exeandlibusb-1.0.dllwhen libusb is found, and adds.github/msys2/**to the Companion workflow's trigger paths. 2.12 andmaindon't need it, since they users_dfu(chore(cpn): refactor firmware flashing to use edgetx rs_dfu #6521).h750andc14board.hhunks are dropped (those boards don't exist on 2.11), the simulator stub change goes insimpgmspace.cpp(simulib.cppismain-only, from feat: WASM modules based simulation in Companion #6435), and the colorlcd boot menu's new flash error screen useslcd->, because 2.11's bootloaderlcdis aBitmapBuffer*. Same code as the release-test build in test: 2.11.8 release candidate (backport-2.11.8 + #7415) pfeerick/edgetx#27, which passed CI.Not included
ModelData, so the bug doesn't exist here. It's labelledbackport/2.12only.Behaviour changes worth noting for an LTS point release
All are intended upstream:
0.5 == 0isfalse), matching Lua 5.3.XLITE_ALT_LAYOUTbuild option for X-Lite / X-Lite S (defaultOFF, so default builds are unchanged). When enabled, it swaps the key and left-trim GPIO assignments.Outstanding Items
backport/2.11-labelled PRs milestoned 2.11.8 not yet coveredBuild-verified locally:
tx16s,x12s(VS1053 SPI audio),x9d(CLI=YES, covers the #6543 volume command) andx7firmware build cleanly with no new warnings.xlitewithXLITE_ALT_LAYOUT=ONbuilds, and its generated key table uses the alternative pins (4 trims, as in the stock layout).tx16srebuilt with #7809.cli.cppsyntax-checks withDEBUG_AUDIO. Every commit was reviewed against its source PR by two independent review passes.🤖 Generated with Claude Code