Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 218a2f7a authored by Yun-hao Chung's avatar Yun-hao Chung Committed by Gerrit Code Review
Browse files

Merge "Floss: Restrict allowed packet types of SCO codec" into main

parents 8b671fac d9609462
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -414,5 +414,26 @@ enh_esco_params_t esco_parameters_for_codec(esco_codec_t codec, bool offload) {
    param.output_bandwidth = TXRX_64KBITS_RATE;
  }

#if TARGET_FLOSS
  esco_packet_types_t new_packet_types = param.packet_types;
  if (codec == ESCO_CODEC_CVSD_S3 || codec == ESCO_CODEC_CVSD_S4 ||
      codec == ESCO_CODEC_MSBC_T2 || codec == ESCO_CODEC_LC3_T2) {
    new_packet_types =
        (ESCO_PKT_TYPES_MASK_NO_3_EV3 | ESCO_PKT_TYPES_MASK_NO_2_EV5 |
         ESCO_PKT_TYPES_MASK_NO_3_EV5);
  } else if (codec == ESCO_CODEC_CVSD_S1) {
    new_packet_types =
        (ESCO_PKT_TYPES_MASK_EV3 | ESCO_PKT_TYPES_MASK_EV4 |
         ESCO_PKT_TYPES_MASK_EV5 | ESCO_PKT_TYPES_MASK_NO_3_EV3 |
         ESCO_PKT_TYPES_MASK_NO_2_EV5 | ESCO_PKT_TYPES_MASK_NO_3_EV5);
  }

  if (param.packet_types != new_packet_types) {
    log::info("Applying restricted packet types for codec %d: 0x%04x -> 0x%04x",
              (int)codec, param.packet_types, new_packet_types);
    param.packet_types = new_packet_types;
  }
#endif

  return param;
}