Skip to content

Commit 92bdd5e

Browse files
committed
esp_modem: add patch for cmux exit on A767x
1 parent f5d6483 commit 92bdd5e

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
diff --git a/components/esp_modem/src/esp_modem_cmux.cpp b/components/esp_modem/src/esp_modem_cmux.cpp
2+
index 0c480f8..4418c3d 100644
3+
--- a/components/esp_modem/src/esp_modem_cmux.cpp
4+
+++ b/components/esp_modem/src/esp_modem_cmux.cpp
5+
@@ -206,6 +206,15 @@ bool CMux::on_header(CMuxFrame &frame)
6+
}
7+
size_t payload_offset = std::min(frame.len, 4 - frame_header_offset);
8+
memcpy(frame_header + frame_header_offset, frame.ptr, payload_offset);
9+
+ if (frame_header[1] == 0xEF) {
10+
+ dlci = 0;
11+
+ type = frame_header[1];
12+
+ payload_len = 0;
13+
+ data_available(&frame.ptr[0], payload_len); // Notify DISC
14+
+ frame.advance(payload_offset);
15+
+ state = cmux_state::FOOTER;
16+
+ return true;
17+
+ }
18+
if ((frame_header[3] & 1) == 0) {
19+
if (frame_header_offset + frame.len <= 4) {
20+
frame_header_offset += frame.len;

tools/install-esp-idf.sh

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ if [ ! -x $idf_was_installed ] || [ ! -x $commit_predefined ]; then
4141
cd $IDF_PATH
4242
patch -p1 -N -i $AR_PATCHES/esp32s2_i2c_ll_master_init.diff
4343
patch -p1 -N -i $AR_PATCHES/lwip_max_tcp_pcb.diff
44+
patch -p1 -N -i $AR_PATCHES/esp_modem_a7670_cmux_exit.diff
4445
cd -
4546
fi
4647

0 commit comments

Comments
 (0)