Since 2.2.0, deInit() on main also calls bbepIODeInit, tearing down
the parallel bus. Firmware that uses an init/deinit-per-refresh pattern
(OpenDisplay Firmware does, to share pins and power down between
refreshes) works on 2.2.0 but hangs when built against main — the next
initPanel() finds the bus gone.
Observed on: M5Stack PaperS3 (BB_PANEL_M5PAPERS3), ESP32-S3.
Repro: build OpenDisplay Firmware against main instead of the 2.2.0 pin;
first refresh after a deinit/reinit cycle hangs.
Is the new deInit semantics intentional? If yes, could it be documented
(and/or a lighter "release frame only" API kept) so downstreams know
which teardown they get?
Since 2.2.0,
deInit()on main also callsbbepIODeInit, tearing downthe parallel bus. Firmware that uses an init/deinit-per-refresh pattern
(OpenDisplay Firmware does, to share pins and power down between
refreshes) works on 2.2.0 but hangs when built against main — the next
initPanel() finds the bus gone.
Observed on: M5Stack PaperS3 (BB_PANEL_M5PAPERS3), ESP32-S3.
Repro: build OpenDisplay Firmware against main instead of the 2.2.0 pin;
first refresh after a deinit/reinit cycle hangs.
Is the new deInit semantics intentional? If yes, could it be documented
(and/or a lighter "release frame only" API kept) so downstreams know
which teardown they get?