From d052f80b662be073d83498b9722c3d240c125eaf Mon Sep 17 00:00:00 2001 From: Steve Evans Date: Tue, 1 Nov 2022 21:33:38 +0000 Subject: [PATCH 1/2] Allow serial port to share all MSP functions at once --- src/main/io/serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/io/serial.c b/src/main/io/serial.c index 1f6eefa2f4..7616dfb75b 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -311,7 +311,7 @@ bool isSerialConfigValid(const serialConfig_t *serialConfigToCheck) if (bitCount > 1) { // shared - if (bitCount > 2) { + if (bitCount > (BITCOUNT(FUNCTION_MSP | ALL_FUNCTIONS_SHARABLE_WITH_MSP))) { return false; } From 340fa242d78d62599503c99347c576fac4247203 Mon Sep 17 00:00:00 2001 From: Steve Evans Date: Wed, 2 Nov 2022 19:59:33 +0000 Subject: [PATCH 2/2] Enable MSP displayport if FUNCTION_VTX_MSP and FUNCTION_MSP are set --- src/main/config/config.c | 2 +- src/main/io/serial.c | 4 ++-- src/main/io/serial.h | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/config/config.c b/src/main/config/config.c index c8b89f66a9..14d6d2fbac 100644 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -586,7 +586,7 @@ static void validateAndFixConfig(void) if (portConfig && (portConfig->identifier != SERIAL_PORT_USB_VCP) && - ((portConfig->functionMask & FUNCTION_MSP_DISPLAYPORT) == FUNCTION_MSP_DISPLAYPORT)) { + ((portConfig->functionMask & (FUNCTION_VTX_MSP | FUNCTION_MSP)) == (FUNCTION_VTX_MSP | FUNCTION_MSP))) { displayPortMspSetSerial(portConfig->identifier); break; } diff --git a/src/main/io/serial.c b/src/main/io/serial.c index 7616dfb75b..8a76e06372 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -272,9 +272,9 @@ serialPort_t *findSharedSerialPort(uint16_t functionMask, serialPortFunction_e s } #ifdef USE_TELEMETRY -#define ALL_FUNCTIONS_SHARABLE_WITH_MSP (FUNCTION_BLACKBOX | TELEMETRY_PORT_FUNCTIONS_MASK | FUNCTION_VTX_MSP | FUNCTION_MSP_DISPLAYPORT) +#define ALL_FUNCTIONS_SHARABLE_WITH_MSP (FUNCTION_BLACKBOX | TELEMETRY_PORT_FUNCTIONS_MASK | FUNCTION_VTX_MSP) #else -#define ALL_FUNCTIONS_SHARABLE_WITH_MSP (FUNCTION_BLACKBOX | FUNCTION_VTX_MSP | FUNCTION_MSP_DISPLAYPORT) +#define ALL_FUNCTIONS_SHARABLE_WITH_MSP (FUNCTION_BLACKBOX | FUNCTION_VTX_MSP) #endif bool isSerialConfigValid(const serialConfig_t *serialConfigToCheck) diff --git a/src/main/io/serial.h b/src/main/io/serial.h index 3702f4b6ce..61dd6bab46 100644 --- a/src/main/io/serial.h +++ b/src/main/io/serial.h @@ -51,7 +51,6 @@ typedef enum { FUNCTION_LIDAR_TF = (1 << 15), // 32768 FUNCTION_FRSKY_OSD = (1 << 16), // 65536 FUNCTION_VTX_MSP = (1 << 17), // 131072 - FUNCTION_MSP_DISPLAYPORT = (1 << 18) | FUNCTION_MSP, // 262145 } serialPortFunction_e; #define TELEMETRY_SHAREABLE_PORT_FUNCTIONS_MASK (FUNCTION_TELEMETRY_FRSKY_HUB | FUNCTION_TELEMETRY_LTM | FUNCTION_TELEMETRY_MAVLINK)