Conversation
…gnature df8903b changed ws2811UpdateStrip to take a used-LED count, but light_ws2811strip_rp2350.c kept the old void signature and its no-argument call site. RP2350_PICO has failed to compile since that landed, and because ninja stops the job, every firmware build on maintenance-10.x fails with it: light_ws2811strip_rp2350.c:230: error: too few arguments to function 'ws2811UpdateStrip' light_ws2811strip_rp2350.c:235: error: conflicting types for 'ws2811UpdateStrip'; have 'void(void)', declared 'void(uint16_t)' Take the count, clamp it the way the timer driver does, and drive the slots at or beyond it off instead of leaving them latched at their last colour.
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoFix RP2350 WS2811 update signature and inactive LEDs
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can type 'qodo, fix this' on a finding and the fix lands right on your PR |
|
RAM / Flash usage vs. base commit
See RAM/flash optimization guide for techniques to reduce usage. |
|
Test firmware build ready — commit Download firmware for PR #11968 249 targets built. Find your board's
|
Problem
Every firmware build on
maintenance-10.xfails.RP2350_PICOdoes not compile, and ninja stops the job, so all 16 matrix builds go red with it.df8903bc50("Replace whole-strip WS2811 DMA buffer with a bounded, chunked one", merged 17 Sept via #11798) changedws2811UpdateStripto take a used-LED count and updated the header and the timer driver, but not the RP2350 driver, which still declaredvoid ws2811UpdateStrip(void)and called it with no arguments.CI history on
maintenance-10.x: last green run is #11804 on 16 Sept; the first red one is the #11798 merge on 17 Sept, and everything after it is red.release/9.1does not carrydf8903bc50and is unaffected.Changes
src/main/drivers/light_ws2811strip_rp2350.c:ws2811UpdateStriptakesuint16_t usedLedCount, matching light_ws2811strip.h:33MIN(usedLedCount, WS2811_LED_STRIP_LENGTH), the same way light_ws2811strip.c:292 does it;common/maths.hadded forMINWS2811_LED_STRIP_LENGTH, as light_ws2811strip.c:183 doesTest
Not compiled locally, no ARM toolchain on this machine - CI on this PR is the check. Verified statically that the two reported errors cannot recur: the header declaration and both definitions now agree on
void(uint16_t), and all four call sites (light_ws2811strip.c:183, light_ws2811strip_rp2350.c:231, ledstrip.c:992, ledstrip.c:1080) pass exactly one argument.Behaviour on RP2350 hardware is unverified; I have no RP2350 board. The change is confined to which buffer slots get colour data, so a review from someone who can fly it would be welcome.