diff --git a/esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp b/esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp index b567e02524..3f2103b401 100644 --- a/esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +++ b/esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp @@ -106,22 +106,18 @@ void MR24HPC1Component::update_() { // main loop void MR24HPC1Component::loop() { - // Early return avoids stack adjustment for the batch buffer below. - // loop() runs ~7000/min so most calls have nothing to read. + // Read all available bytes in batches to reduce UART call overhead. int avail = this->available(); - if (avail > 0) { - // Read all available bytes in batches to reduce UART call overhead. - uint8_t buf[64]; - while (avail > 0) { - size_t to_read = std::min(static_cast(avail), sizeof(buf)); - if (!this->read_array(buf, to_read)) { - break; - } - avail -= to_read; + uint8_t buf[64]; + while (avail > 0) { + size_t to_read = std::min(static_cast(avail), sizeof(buf)); + if (!this->read_array(buf, to_read)) { + break; + } + avail -= to_read; - for (size_t i = 0; i < to_read; i++) { - this->r24_split_data_frame_(buf[i]); // split data frame - } + for (size_t i = 0; i < to_read; i++) { + this->r24_split_data_frame_(buf[i]); // split data frame } } diff --git a/esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp b/esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp index 51e798f727..d95e13241d 100644 --- a/esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +++ b/esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp @@ -30,14 +30,8 @@ void MR60BHA2Component::dump_config() { // main loop void MR60BHA2Component::loop() { - // Early return avoids stack adjustment for the batch buffer below. - // loop() runs ~7000/min so most calls have nothing to read. - int avail = this->available(); - if (avail <= 0) { - return; - } - // Read all available bytes in batches to reduce UART call overhead. + int avail = this->available(); uint8_t buf[64]; while (avail > 0) { size_t to_read = std::min(static_cast(avail), sizeof(buf)); diff --git a/esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp b/esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp index 919185c0e3..441ee2b5c2 100644 --- a/esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +++ b/esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp @@ -49,14 +49,8 @@ void MR60FDA2Component::setup() { // main loop void MR60FDA2Component::loop() { - // Early return avoids stack adjustment for the batch buffer below. - // loop() runs ~7000/min so most calls have nothing to read. - int avail = this->available(); - if (avail <= 0) { - return; - } - // Read all available bytes in batches to reduce UART call overhead. + int avail = this->available(); uint8_t buf[64]; while (avail > 0) { size_t to_read = std::min(static_cast(avail), sizeof(buf));