)]}'
{
  "commit": "11737aea3da5a9303e0d04821b5f23175fbc238c",
  "tree": "6b9e0c4bfa5d3edf0419d10ab19b7c9afd21d9a5",
  "parents": [
    "2cdadce615fbae55b3fb5a76926b23beb1a8ced9"
  ],
  "author": {
    "name": "Graham Sanderson",
    "email": "graham.sanderson@raspberrypi.com",
    "time": "Wed May 20 16:15:45 2026 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 20 16:15:45 2026 -0500"
  },
  "message": "Fix rapid changes to colored_status_led (#2938)\n\n* WS2812 style LEDs require a reset time before setting the color again. prior to this fix, setting color/on/off\nin rapid succession would just send the updated values \"down the string\"\n\nWhilst it would be nice to have the PIO program take care of updating the latest FIFO value after the\nrelevant delay, that costs a fair amount of PIO instrution space, so I have decided to \"fix\"\nthe issue on the CPU side.\n\nSince the delays in question are non trivial (e.g. 50us), i\u0027ve decided not to have the call block,  but instead\nset a timer when necessary (using the default alarm pool) - if that isn\u0027t available or the alarm add fails,\nthen the caller blocks instead.\n\nNote the implementation uses a spin lock, because it needs to work with multicore, but also to be fair\nyou might expect to be able to set an LED from an IRQ\n\n* PICO_CONFIG fix\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* - change reset delay to 100us\n- actually include the color setting time in the caluclation\n- split out non alarm pool code for clarity\n- fix cleanup code and return value from set_ws2812 (we guess if we are deferring!)\n\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "309b21e73f0194bc0b7ca430e614ebcaaccc2331",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_status_led/status_led.c",
      "new_id": "41610f79e11c31bf39cf11354355283d01bd3ec4",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_status_led/status_led.c"
    }
  ]
}
