diff --git a/package/msposd/0001-wifilink-mspvtx-read-only.patch b/package/msposd/0001-wifilink-mspvtx-read-only.patch index 68cc5c3..fe93fe3 100644 --- a/package/msposd/0001-wifilink-mspvtx-read-only.patch +++ b/package/msposd/0001-wifilink-mspvtx-read-only.patch @@ -1,5 +1,5 @@ diff --git a/osd.c b/osd.c -index a8b756e..49673da 100644 +index a8b756e..ac9adf5 100644 --- a/osd.c +++ b/osd.c @@ -190,6 +190,8 @@ extern bool vtxMenuActive; @@ -11,9 +11,22 @@ index a8b756e..49673da 100644 extern bool DrawOSD; // SRT/OSD -@@ -960,48 +962,25 @@ static void rx_msp_callback(msp_msg_t *msp_message) { +@@ -959,49 +961,38 @@ static void rx_msp_callback(msp_msg_t *msp_message) { + break; } ++ case MSP_SET_VTX_CONFIG: { ++ // A new FC configuration frame is our lifecycle marker: it occurs after ++ // FC boot and after a Configurator save. Require a fresh short stream of ++ // VTX state frames before re-advertising the read-only table. ++ mspVtxConfigFramesReceived = 0; ++ mspVtxTableResentAfterFcTraffic = false; ++ if (verbose) { ++ printf("mspVTX: FC configuration changed; table sync re-armed\n"); ++ } ++ break; ++ } ++ case MSP_GET_VTX_CONFIG: { - if (vtxInitDone) { + // The FC publishes its VTX state only after its MSP descriptor is active.