diff --git a/firmware/patternflow/src/hub75/ESP32-HUB75-MatrixPanel-I2S-DMA.h b/firmware/patternflow/src/hub75/ESP32-HUB75-MatrixPanel-I2S-DMA.h index 05a3c56af..354f18761 100644 --- a/firmware/patternflow/src/hub75/ESP32-HUB75-MatrixPanel-I2S-DMA.h +++ b/firmware/patternflow/src/hub75/ESP32-HUB75-MatrixPanel-I2S-DMA.h @@ -347,7 +347,7 @@ struct HUB75_I2S_CFG bool _clockphase = true, uint16_t _min_refresh_rate = 60, uint8_t _pixel_color_depth_bits = PIXEL_COLOR_DEPTH_BITS_DEFAULT) - : mx_width(_w), mx_height(_h), chain_length(_chain), gpio(_pinmap), driver(_drv), double_buff(_dbuff), i2sspeed(_i2sspeed), latch_blanking(_latblk), clkphase(_clockphase), min_refresh_rate(_min_refresh_rate) + : mx_width(_w), mx_height(_h), chain_length(_chain), gpio(_pinmap), driver(_drv), line_decoder(_line_drv), double_buff(_dbuff), i2sspeed(_i2sspeed), latch_blanking(_latblk), clkphase(_clockphase), min_refresh_rate(_min_refresh_rate) { setPixelColorDepthBits(_pixel_color_depth_bits); } diff --git a/firmware/patternflow/src/hub75/UPSTREAM.md b/firmware/patternflow/src/hub75/UPSTREAM.md index 81f1d1b73..28abd48eb 100644 --- a/firmware/patternflow/src/hub75/UPSTREAM.md +++ b/firmware/patternflow/src/hub75/UPSTREAM.md @@ -5,11 +5,12 @@ at tag `3.0.13`, commit `a6221865c71fd5aeba885c31b81fe41bd36c5705` (25 October 2025). It was copied in on 31 July 2026, in `42bfc10`. Upstream's `master` was already past the tag that day, but the copy is the tag: every upstream file here that [patternflow.patch](patternflow.patch) does not name is byte for byte the -one at `a622186`. +one at `a622186`, plus the commits under +[Taken from upstream since](#taken-from-upstream-since). -The patch is every change since. It is `diff -ruN` of upstream's `src/` against -this folder, over the files both carry, and [VENDORED.md](VENDORED.md) says why -each change is there. +The patch is every change Patternflow made since. It is `diff -ruN` of +upstream's `src/`, with those commits on it, against this folder, over the +files both carry, and [VENDORED.md](VENDORED.md) says why each change is there. ## What was not copied @@ -38,6 +39,7 @@ From the repository root, with GNU diff: U=$(mktemp -d) git clone -q https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA "$U/upstream" git -C "$U/upstream" checkout -q a6221865c71fd5aeba885c31b81fe41bd36c5705 +git -C "$U/upstream" cherry-pick -n 7bf3b6c1dfb407f02ff6f3394b56d6f813048f5c ln -s "$U/upstream/src" "$U/a" ln -s "$PWD/firmware/patternflow/src/hub75" "$U/b" (cd "$U" && diff -ruN -x VENDORED.md -x UPSTREAM.md -x UPSTREAM_library.properties \ @@ -52,7 +54,8 @@ Upstream ends some lines in spaces, the patch carries them as context, and an editor that trims trailing whitespace (`.editorconfig` asks for that) breaks those hunks. -To check it, apply it to a clean copy of the tag. The last `diff -r` prints +To check it, apply it to a clean copy of the tag with the taken commits on it, +which is what the rebuild left in `$U/upstream`. The last `diff -r` prints nothing: ```sh @@ -64,7 +67,14 @@ diff -r -x VENDORED.md -x UPSTREAM.md -x UPSTREAM_library.properties \ ## Taken from upstream since -None yet. A commit taken from upstream gets a line here, oldest first, with its -hash and title. The rebuild above then picks it after the checkout -(`git -C "$U/upstream" cherry-pick -n `), so the patch stays Patternflow's +A commit taken from upstream gets a line here, in the order it was taken, with +its hash and title. Its full hash goes on the end of the `cherry-pick -n` line +in the rebuild above, in the same order, so the patch stays Patternflow's changes and nothing upstream wrote. + +- `7bf3b6c` "Fix: Properly set line_decoder in HUB75_I2S_CFG struct + constructor" (Christopher King, 3 April 2026). At 3.0.13 the constructor + never sets `line_decoder`, and `initDisplay()` in `core_display.h` builds its + config on the stack, so the field held whatever the stack held. It was taken + ahead of older commits because `c09362a`, the oldest one left, reads the + field to address every row.