J. Nick Koston
7126b01a45
Merge branch 'scheduler-inline-cleanup' into integration
2026-04-12 17:35:36 -10:00
J. Nick Koston
942cb0733b
[scheduler] Force-inline cleanup_() fast path into Scheduler::call()
...
cleanup_() has a two-line fast path (check to_remove count, return
!items_.empty()) with the slow path already out-of-line in
cleanup_slow_path_(). Despite `inline` hint, GCC on Xtensa emits it
as a separate function, adding unnecessary call overhead on every
Scheduler::call() invocation even when there is nothing to clean up.
Use ESPHOME_ALWAYS_INLINE to guarantee inlining. Verified on ESP8266:
- cleanup_() symbol eliminated from binary
- Scheduler::call() grows 4 bytes (inlined fast path)
- Net savings: 23 bytes (27-byte out-of-line body removed)
- Idle loop path: 1 out-of-line call instead of 2
2026-04-12 17:26:00 -10:00
J. Nick Koston
dde66ff1e1
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-12 16:39:30 -10:00
J. Nick Koston
93a5984a95
Merge branch 'ld24xx-lazy-sensor-dedup' into integration
2026-04-12 15:31:21 -10:00
J. Nick Koston
5d8dc8e62c
fix missing semis
2026-04-12 15:30:30 -10:00
J. Nick Koston
099a45cf2e
bot comments
2026-04-12 15:19:27 -10:00
Jesse Hills
dc1dd9ebb7
Merge branch 'beta' into dev
2026-04-13 12:45:02 +12:00
Jesse Hills
0c06d78a4f
Merge pull request #15675 from esphome/bump-2026.4.0b2
...
2026.4.0b2
2026.4.0b2
2026-04-13 12:44:27 +12:00
schrob and J. Nick Koston
41c9ed28cd
[esp32] Use static stack memory for loop task instead of heap ( #15659 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-12 23:23:01 +00:00
J. Nick Koston
49e3bea13c
Merge branch 'esp32-static-task-stack' into integration
2026-04-12 13:08:53 -10:00
J. Nick Koston
40c2ac2f8f
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-12 13:08:40 -10:00
J. Nick Koston
3188111da9
Merge branch 'dev' into esp32-static-task-stack
2026-04-12 12:49:36 -10:00
Jesse Hills
5608aa10a5
[CI] Don't run label workflow on closed/merged PRs ( #15678 )
2026-04-12 12:46:49 -10:00
J. Nick Koston
dd4a367088
Merge branch 'ld24xx-lazy-sensor-dedup' into integration
2026-04-12 12:40:11 -10:00
J. Nick Koston
931ef66a2f
Rename LazySensorWithDedup to SensorWithDedup
...
There is no lazy allocation to justify the name — it's just inline
with a null check. Drop the Lazy prefix.
2026-04-12 12:36:10 -10:00
Javier Peletier
daa68a2a60
[packages] fix support packages: !include mypackages.yaml ( #15677 )
2026-04-13 09:48:30 +12:00
J. Nick Koston
66a3e3a705
[ld24xx] Replace heap-allocated SensorWithDedup with inline LazySensorWithDedup
...
Replace heap-allocated SensorWithDedup wrapper with inline
LazySensorWithDedup that stores the sensor pointer and deduplicator
directly in the component, eliminating heap allocations and reducing
RAM usage for configured sensors.
2026-04-12 11:04:17 -10:00
J. Nick Koston
eb7799631d
Merge remote-tracking branch 'origin/ltr390-reduce-blocking' into integration
2026-04-12 10:50:48 -10:00
Jesse Hills
a408b5a4fe
Bump version to 2026.4.0b2
2026-04-13 08:48:19 +12:00
Clyde Stubbs and Jesse Hills
e264c97454
[lvgl] Fix use of rotation on host SDL ( #15611 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-13 08:48:19 +12:00
J. Nick Koston
8790dec137
[packages] Fix false deprecation warning and wrong error paths in nested packages ( #15605 )
2026-04-13 08:48:19 +12:00
Jonathan Swoboda
6480868e6e
[esp32] Bump platform to 55.03.38, Arduino to 3.3.8, ESP-IDF to 5.5.4 ( #15666 )
2026-04-13 08:48:19 +12:00
Jonathan Swoboda
0578e43352
[canbus] Fix canbus.send can_id compile error ( #15668 )
2026-04-13 08:48:19 +12:00
Jonathan Swoboda
2a89d4835f
[mdns] Bump espressif/mdns to 1.11.0 ( #15670 )
2026-04-13 08:48:19 +12:00
dependabot[bot]
5084c61016
Bump aioesphomeapi from 44.13.2 to 44.13.3 ( #15641 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 08:48:19 +12:00
dependabot[bot]
b45f94d511
Bump aioesphomeapi from 44.13.1 to 44.13.2 ( #15637 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 08:48:18 +12:00
J. Nick Koston and Copilot
66a4752e13
[rp2040] Fix W5500 Ethernet pbuf corruption by mirroring LWIPMutex semantics ( #15624 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-13 08:48:18 +12:00
Jonathan Swoboda
4d4f78de81
[sx127x][cc1101][sx126x] Use GPIO interrupt to wake loop ( #15627 )
2026-04-13 08:48:18 +12:00
Kevin Ahrendt
0faa641c8a
[micro_wake_word] Pin esp-nn version ( #15628 )
2026-04-13 08:48:18 +12:00
J. Nick Koston
0f16d27a72
[api] Add (inline_encode) proto option for sub-message inlining ( #15599 )
2026-04-13 08:48:18 +12:00
J. Nick Koston
835ee456a5
[mcp23016] Add interrupt pin support ( #15616 )
2026-04-13 08:48:18 +12:00
J. Nick Koston
17f3b7dbd5
[pca6416a] Add interrupt pin support ( #15614 )
2026-04-13 08:48:18 +12:00
J. Nick Koston
171a429526
[tca9555] Add interrupt pin support ( #15613 )
2026-04-13 08:48:18 +12:00
Jesse Hills
e4ee2b7c04
[hbridge] Move light pin switching to loop ( #15615 )
2026-04-13 08:48:18 +12:00
Jonathan Swoboda
c85a062e23
[sx127x][cc1101] Disable loop when packet mode is inactive ( #15606 )
2026-04-13 08:48:18 +12:00
J. Nick Koston
873378fa1f
[gdk101] Increase reset retries for slow-booting sensor MCU ( #15584 )
2026-04-13 08:48:18 +12:00
dependabot[bot]
4f00ad409e
Bump aioesphomeapi from 44.12.0 to 44.13.1 ( #15600 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 08:48:18 +12:00
J. Nick Koston
20b516ff11
[api] Fix ListEntitiesRequest not read due to LWIP rcvevent tracking ( #15589 )
2026-04-13 08:48:18 +12:00
Clyde Stubbs and Jesse Hills
8754bbfa89
[lvgl] Fix use of rotation on host SDL ( #15611 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-12 20:29:11 +00:00
J. Nick Koston
6d92cc3d2b
[packages] Fix false deprecation warning and wrong error paths in nested packages ( #15605 )
2026-04-13 08:24:23 +12:00
J. Nick Koston
09e544125a
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-12 10:07:28 -10:00
Jonathan Swoboda
2f684bf4f3
[esp32] Bump platform to 55.03.38, Arduino to 3.3.8, ESP-IDF to 5.5.4 ( #15666 )
2026-04-12 10:07:04 -10:00
Jonathan Swoboda
45af21bf38
[canbus] Fix canbus.send can_id compile error ( #15668 )
2026-04-12 09:58:51 -10:00
Jonathan Swoboda
e6318a2d16
[mdns] Bump espressif/mdns to 1.11.0 ( #15670 )
2026-04-12 09:54:30 -10:00
J. Nick Koston
b286a67334
Merge remote-tracking branch 'upstream/fast-millis-esp32' into integration
2026-04-12 09:50:55 -10:00
J. Nick Koston
e5a0246c80
[core] Document clock divergence between millis() and millis_64_from_()
...
On ESP32, millis() uses xTaskGetTickCount (tick clock) but
millis_64_from_() discards the 32-bit value and calls millis_64()
(esp_timer clock). Safe because scheduling only compares millis_64
against millis_64. On ESP8266, both use the same accumulator clock.
2026-04-12 09:49:28 -10:00
J. Nick Koston
0249c30cbf
[esp32] Document why millis_64() uses a different clock than millis()
...
millis() uses xTaskGetTickCount (tick clock) while millis_64() uses
esp_timer_get_time (hardware timer). Safe because they are never
cross-compared: Scheduler::millis_64_from_() on ESP32 discards the
32-bit millis parameter and calls millis_64() directly, keeping all
64-bit scheduling on the esp_timer clock.
2026-04-12 09:48:23 -10:00
J. Nick Koston
e06c54d100
Merge branch 'fast-millis-esp32' into integration
2026-04-12 09:37:12 -10:00
J. Nick Koston
2cd54b209d
Merge branch 'fast-millis-esp8266' into integration
2026-04-12 09:37:02 -10:00
J. Nick Koston
b5a2d58b80
[esp32] Keep millis() out-of-line with IRAM_ATTR, add ISR context check
...
Revert the inline hal.h approach — millis() must remain IRAM_ATTR
because Wiegand and ZyAura call it from IRAM_ATTR ISR handlers on
all platforms including ESP32.
Use xPortInIsrContext() to dispatch to xTaskGetTickCountFromISR()
from ISR or xTaskGetTickCount() from task context, satisfying the
FreeRTOS API contract. ISR check is [[unlikely]] so the hot path
stays fast.
Benchmarked: 686 ns -> 361 ns (1.9x faster). Correctness verified.
2026-04-12 09:07:08 -10:00