diff --git a/aom/aom_encoder.h b/aom/aom_encoder.h
index 6e7589d..bf42dc7 100644
--- a/aom/aom_encoder.h
+++ b/aom/aom_encoder.h
@@ -234,6 +234,10 @@
    *
    */
   unsigned int enable_1to4_partitions;
+  /*!\brief disable ml-based speed-up for partition search
+   *
+   */
+  unsigned int disable_ml_partition_speed_features;
 #if CONFIG_SDP
   /*!\brief enable Semi-decoupled partitioning
    *
diff --git a/aom/aomcx.h b/aom/aomcx.h
index db2a744..92c5514 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -1307,6 +1307,14 @@
   /*!\brief Control to get frame info
    */
   AV1E_GET_FRAME_INFO = 165,
+
+  /*!\brief Codec control function to disable ML based partition search speed
+   * features.
+   *
+   * - 0 = off (default)
+   * - 1 = on
+   */
+  AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES = 166,
 };
 
 /*!\brief aom 1-D scaling mode
@@ -1571,6 +1579,9 @@
 AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */
 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE
 
+AOM_CTRL_USE_TYPE(AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES, int)
+#define AOM_CTRL_AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES
+
 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_PARTITIONS, int)
 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS
 
diff --git a/apps/aomenc.c b/apps/aomenc.c
index 29c0358..06a1079 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -118,115 +118,118 @@
   return 0;
 }
 
-static const int av1_arg_ctrl_map[] = { AOME_SET_CPUUSED,
-                                        AOME_SET_ENABLEAUTOALTREF,
-                                        AOME_SET_SHARPNESS,
-                                        AOME_SET_STATIC_THRESHOLD,
-                                        AV1E_SET_ROW_MT,
-                                        AV1E_SET_TILE_COLUMNS,
-                                        AV1E_SET_TILE_ROWS,
-                                        AV1E_SET_ENABLE_TPL_MODEL,
-                                        AV1E_SET_ENABLE_KEYFRAME_FILTERING,
-                                        AOME_SET_ARNR_MAXFRAMES,
-                                        AOME_SET_ARNR_STRENGTH,
-                                        AOME_SET_TUNING,
-                                        AOME_SET_QP,
-                                        AOME_SET_MAX_INTRA_BITRATE_PCT,
-                                        AV1E_SET_MAX_INTER_BITRATE_PCT,
-                                        AV1E_SET_GF_CBR_BOOST_PCT,
-                                        AV1E_SET_LOSSLESS,
-                                        AV1E_SET_ENABLE_DEBLOCKING,
-                                        AV1E_SET_ENABLE_CDEF,
-                                        AV1E_SET_ENABLE_RESTORATION,
-                                        AV1E_SET_ENABLE_RECT_PARTITIONS,
-                                        AV1E_SET_ENABLE_AB_PARTITIONS,
-                                        AV1E_SET_ENABLE_1TO4_PARTITIONS,
-                                        AV1E_SET_MIN_PARTITION_SIZE,
-                                        AV1E_SET_MAX_PARTITION_SIZE,
+static const int av1_arg_ctrl_map[] = {
+  AOME_SET_CPUUSED,
+  AOME_SET_ENABLEAUTOALTREF,
+  AOME_SET_SHARPNESS,
+  AOME_SET_STATIC_THRESHOLD,
+  AV1E_SET_ROW_MT,
+  AV1E_SET_TILE_COLUMNS,
+  AV1E_SET_TILE_ROWS,
+  AV1E_SET_ENABLE_TPL_MODEL,
+  AV1E_SET_ENABLE_KEYFRAME_FILTERING,
+  AOME_SET_ARNR_MAXFRAMES,
+  AOME_SET_ARNR_STRENGTH,
+  AOME_SET_TUNING,
+  AOME_SET_QP,
+  AOME_SET_MAX_INTRA_BITRATE_PCT,
+  AV1E_SET_MAX_INTER_BITRATE_PCT,
+  AV1E_SET_GF_CBR_BOOST_PCT,
+  AV1E_SET_LOSSLESS,
+  AV1E_SET_ENABLE_DEBLOCKING,
+  AV1E_SET_ENABLE_CDEF,
+  AV1E_SET_ENABLE_RESTORATION,
+  AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES,
+  AV1E_SET_ENABLE_RECT_PARTITIONS,
+  AV1E_SET_ENABLE_AB_PARTITIONS,
+  AV1E_SET_ENABLE_1TO4_PARTITIONS,
+  AV1E_SET_MIN_PARTITION_SIZE,
+  AV1E_SET_MAX_PARTITION_SIZE,
 #if !CONFIG_REMOVE_DUAL_FILTER
-                                        AV1E_SET_ENABLE_DUAL_FILTER,
+  AV1E_SET_ENABLE_DUAL_FILTER,
 #endif  // !CONFIG_REMOVE_DUAL_FILTER
-                                        AV1E_SET_ENABLE_CHROMA_DELTAQ,
-                                        AV1E_SET_ENABLE_INTRA_EDGE_FILTER,
-                                        AV1E_SET_ENABLE_ORDER_HINT,
-                                        AV1E_SET_ENABLE_TX64,
-                                        AV1E_SET_ENABLE_FLIP_IDTX,
+  AV1E_SET_ENABLE_CHROMA_DELTAQ,
+  AV1E_SET_ENABLE_INTRA_EDGE_FILTER,
+  AV1E_SET_ENABLE_ORDER_HINT,
+  AV1E_SET_ENABLE_TX64,
+  AV1E_SET_ENABLE_FLIP_IDTX,
 #if !CONFIG_REMOVE_DIST_WTD_COMP
-                                        AV1E_SET_ENABLE_DIST_WTD_COMP,
+  AV1E_SET_ENABLE_DIST_WTD_COMP,
 #endif  // !CONFIG_REMOVE_DIST_WTD_COMP
-                                        AV1E_SET_ENABLE_MASKED_COMP,
-                                        AV1E_SET_ENABLE_ONESIDED_COMP,
-                                        AV1E_SET_ENABLE_INTERINTRA_COMP,
-                                        AV1E_SET_ENABLE_SMOOTH_INTERINTRA,
-                                        AV1E_SET_ENABLE_DIFF_WTD_COMP,
-                                        AV1E_SET_ENABLE_INTERINTER_WEDGE,
-                                        AV1E_SET_ENABLE_INTERINTRA_WEDGE,
-                                        AV1E_SET_ENABLE_GLOBAL_MOTION,
-                                        AV1E_SET_ENABLE_WARPED_MOTION,
-                                        AV1E_SET_ENABLE_FILTER_INTRA,
-                                        AV1E_SET_ENABLE_SMOOTH_INTRA,
-                                        AV1E_SET_ENABLE_PAETH_INTRA,
-                                        AV1E_SET_ENABLE_CFL_INTRA,
-                                        AV1E_SET_FORCE_VIDEO_MODE,
-                                        AV1E_SET_ENABLE_OBMC,
-                                        AV1E_SET_ENABLE_OVERLAY,
-                                        AV1E_SET_ENABLE_PALETTE,
-                                        AV1E_SET_ENABLE_INTRABC,
-                                        AV1E_SET_ENABLE_ANGLE_DELTA,
-                                        AV1E_SET_ENABLE_TRELLIS_QUANT,
-                                        AV1E_SET_ENABLE_QM,
-                                        AV1E_SET_QM_MIN,
-                                        AV1E_SET_QM_MAX,
-                                        AV1E_SET_REDUCED_TX_TYPE_SET,
-                                        AV1E_SET_INTRA_DCT_ONLY,
-                                        AV1E_SET_INTER_DCT_ONLY,
-                                        AV1E_SET_INTRA_DEFAULT_TX_ONLY,
-                                        AV1E_SET_QUANT_B_ADAPT,
-                                        AV1E_SET_COEFF_COST_UPD_FREQ,
-                                        AV1E_SET_MODE_COST_UPD_FREQ,
-                                        AV1E_SET_MV_COST_UPD_FREQ,
-                                        AV1E_SET_FRAME_PARALLEL_DECODING,
-                                        AV1E_SET_ERROR_RESILIENT_MODE,
-                                        AV1E_SET_AQ_MODE,
-                                        AV1E_SET_DELTAQ_MODE,
-                                        AV1E_SET_DELTALF_MODE,
-                                        AV1E_SET_FRAME_PERIODIC_BOOST,
-                                        AV1E_SET_NOISE_SENSITIVITY,
-                                        AV1E_SET_TUNE_CONTENT,
-                                        AV1E_SET_CDF_UPDATE_MODE,
-                                        AV1E_SET_COLOR_PRIMARIES,
-                                        AV1E_SET_TRANSFER_CHARACTERISTICS,
-                                        AV1E_SET_MATRIX_COEFFICIENTS,
-                                        AV1E_SET_CHROMA_SAMPLE_POSITION,
-                                        AV1E_SET_MIN_GF_INTERVAL,
-                                        AV1E_SET_MAX_GF_INTERVAL,
-                                        AV1E_SET_GF_MIN_PYRAMID_HEIGHT,
-                                        AV1E_SET_GF_MAX_PYRAMID_HEIGHT,
-                                        AV1E_SET_SUPERBLOCK_SIZE,
-                                        AV1E_SET_NUM_TG,
-                                        AV1E_SET_MTU,
-                                        AV1E_SET_TIMING_INFO_TYPE,
-                                        AV1E_SET_FILM_GRAIN_TEST_VECTOR,
-                                        AV1E_SET_FILM_GRAIN_TABLE,
+  AV1E_SET_ENABLE_MASKED_COMP,
+  AV1E_SET_ENABLE_ONESIDED_COMP,
+  AV1E_SET_ENABLE_INTERINTRA_COMP,
+  AV1E_SET_ENABLE_SMOOTH_INTERINTRA,
+  AV1E_SET_ENABLE_DIFF_WTD_COMP,
+  AV1E_SET_ENABLE_INTERINTER_WEDGE,
+  AV1E_SET_ENABLE_INTERINTRA_WEDGE,
+  AV1E_SET_ENABLE_GLOBAL_MOTION,
+  AV1E_SET_ENABLE_WARPED_MOTION,
+  AV1E_SET_ENABLE_FILTER_INTRA,
+  AV1E_SET_ENABLE_SMOOTH_INTRA,
+  AV1E_SET_ENABLE_PAETH_INTRA,
+  AV1E_SET_ENABLE_CFL_INTRA,
+  AV1E_SET_FORCE_VIDEO_MODE,
+  AV1E_SET_ENABLE_OBMC,
+  AV1E_SET_ENABLE_OVERLAY,
+  AV1E_SET_ENABLE_PALETTE,
+  AV1E_SET_ENABLE_INTRABC,
+  AV1E_SET_ENABLE_ANGLE_DELTA,
+  AV1E_SET_ENABLE_TRELLIS_QUANT,
+  AV1E_SET_ENABLE_QM,
+  AV1E_SET_QM_MIN,
+  AV1E_SET_QM_MAX,
+  AV1E_SET_REDUCED_TX_TYPE_SET,
+  AV1E_SET_INTRA_DCT_ONLY,
+  AV1E_SET_INTER_DCT_ONLY,
+  AV1E_SET_INTRA_DEFAULT_TX_ONLY,
+  AV1E_SET_QUANT_B_ADAPT,
+  AV1E_SET_COEFF_COST_UPD_FREQ,
+  AV1E_SET_MODE_COST_UPD_FREQ,
+  AV1E_SET_MV_COST_UPD_FREQ,
+  AV1E_SET_FRAME_PARALLEL_DECODING,
+  AV1E_SET_ERROR_RESILIENT_MODE,
+  AV1E_SET_AQ_MODE,
+  AV1E_SET_DELTAQ_MODE,
+  AV1E_SET_DELTALF_MODE,
+  AV1E_SET_FRAME_PERIODIC_BOOST,
+  AV1E_SET_NOISE_SENSITIVITY,
+  AV1E_SET_TUNE_CONTENT,
+  AV1E_SET_CDF_UPDATE_MODE,
+  AV1E_SET_COLOR_PRIMARIES,
+  AV1E_SET_TRANSFER_CHARACTERISTICS,
+  AV1E_SET_MATRIX_COEFFICIENTS,
+  AV1E_SET_CHROMA_SAMPLE_POSITION,
+  AV1E_SET_MIN_GF_INTERVAL,
+  AV1E_SET_MAX_GF_INTERVAL,
+  AV1E_SET_GF_MIN_PYRAMID_HEIGHT,
+  AV1E_SET_GF_MAX_PYRAMID_HEIGHT,
+  AV1E_SET_SUPERBLOCK_SIZE,
+  AV1E_SET_NUM_TG,
+  AV1E_SET_MTU,
+  AV1E_SET_TIMING_INFO_TYPE,
+  AV1E_SET_FILM_GRAIN_TEST_VECTOR,
+  AV1E_SET_FILM_GRAIN_TABLE,
 #if CONFIG_DENOISE
-                                        AV1E_SET_DENOISE_NOISE_LEVEL,
-                                        AV1E_SET_DENOISE_BLOCK_SIZE,
+  AV1E_SET_DENOISE_NOISE_LEVEL,
+  AV1E_SET_DENOISE_BLOCK_SIZE,
 #endif  // CONFIG_DENOISE
-                                        AV1E_SET_MAX_REFERENCE_FRAMES,
-                                        AV1E_SET_REDUCED_REFERENCE_SET,
-                                        AV1E_SET_ENABLE_REF_FRAME_MVS,
-                                        AV1E_SET_TARGET_SEQ_LEVEL_IDX,
-                                        AV1E_SET_TIER_MASK,
-                                        AV1E_SET_MIN_CR,
-                                        AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP,
-                                        AV1E_SET_CHROMA_SUBSAMPLING_X,
-                                        AV1E_SET_CHROMA_SUBSAMPLING_Y,
+  AV1E_SET_MAX_REFERENCE_FRAMES,
+  AV1E_SET_REDUCED_REFERENCE_SET,
+  AV1E_SET_ENABLE_REF_FRAME_MVS,
+  AV1E_SET_TARGET_SEQ_LEVEL_IDX,
+  AV1E_SET_TIER_MASK,
+  AV1E_SET_MIN_CR,
+  AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP,
+  AV1E_SET_CHROMA_SUBSAMPLING_X,
+  AV1E_SET_CHROMA_SUBSAMPLING_Y,
 #if CONFIG_TUNE_VMAF
-                                        AV1E_SET_VMAF_MODEL_PATH,
+  AV1E_SET_VMAF_MODEL_PATH,
 #endif
-                                        AV1E_SET_SUBGOP_CONFIG_STR,
-                                        AV1E_SET_SUBGOP_CONFIG_PATH,
-                                        0 };
+  AV1E_SET_SUBGOP_CONFIG_STR,
+  AV1E_SET_SUBGOP_CONFIG_PATH,
+  0
+};
 
 const arg_def_t *main_args[] = { &g_av1_codec_arg_defs.help,
                                  &g_av1_codec_arg_defs.use_cfg,
@@ -338,6 +341,7 @@
   &g_av1_codec_arg_defs.enable_deblocking,
   &g_av1_codec_arg_defs.enable_cdef,
   &g_av1_codec_arg_defs.enable_restoration,
+  &g_av1_codec_arg_defs.disable_ml_partition_speed_features,
   &g_av1_codec_arg_defs.enable_rect_partitions,
   &g_av1_codec_arg_defs.enable_ab_partitions,
   &g_av1_codec_arg_defs.enable_1to4_partitions,
diff --git a/av1/arg_defs.c b/av1/arg_defs.c
index ff2ea3d..c381ac9 100644
--- a/av1/arg_defs.c
+++ b/av1/arg_defs.c
@@ -333,6 +333,10 @@
                          "Enable cross component sample offset (0: false "
                          "1: true)"),
 #endif
+  .disable_ml_partition_speed_features =
+      ARG_DEF(NULL, "disable-ml-partition-speed-features", 1,
+              "Disable ML partition speed features "
+              "(0: false (default), 1: true)"),
   .enable_rect_partitions = ARG_DEF(NULL, "enable-rect-partitions", 1,
                                     "Enable rectangular partitions "
                                     "(0: false, 1: true (default))"),
diff --git a/av1/arg_defs.h b/av1/arg_defs.h
index 5e9d244..60a1ff6 100644
--- a/av1/arg_defs.h
+++ b/av1/arg_defs.h
@@ -134,6 +134,7 @@
 #if CONFIG_CCSO
   arg_def_t enable_ccso;
 #endif
+  arg_def_t disable_ml_partition_speed_features;
   arg_def_t enable_rect_partitions;
   arg_def_t enable_ab_partitions;
   arg_def_t enable_1to4_partitions;
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 9c3c69f..35651e5 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -109,6 +109,7 @@
   const char *film_grain_table_filename;
   unsigned int motion_vector_unit_test;
   unsigned int cdf_update_mode;
+  int disable_ml_partition_speed_features;
   int enable_rect_partitions;  // enable rectangular partitions for sequence
   int enable_ab_partitions;    // enable AB partitions for sequence
   int enable_1to4_partitions;  // enable 1:4 and 4:1 partitions for sequence
@@ -384,6 +385,7 @@
   0,                            // film_grain_table_filename
   0,                            // motion_vector_unit_test
   1,                            // CDF update mode
+  0,                            // disable ML based partition speed up features
   1,                            // enable rectangular partitions
   1,                            // enable ab shape partitions
   1,                            // enable 1:4 and 4:1 partitions
@@ -834,6 +836,8 @@
   cfg->enable_dual_filter = extra_cfg->enable_dual_filter;
 #endif  // !CONFIG_REMOVE_DUAL_FILTER
   cfg->enable_angle_delta = extra_cfg->enable_angle_delta;
+  cfg->disable_ml_partition_speed_features =
+      extra_cfg->disable_ml_partition_speed_features;
   cfg->enable_rect_partitions = extra_cfg->enable_rect_partitions;
   cfg->enable_ab_partitions = extra_cfg->enable_ab_partitions;
   cfg->enable_1to4_partitions = extra_cfg->enable_1to4_partitions;
@@ -1344,6 +1348,8 @@
       (extra_cfg->allow_warped_motion & extra_cfg->enable_warped_motion);
 
   // Set partition related configuration.
+  part_cfg->disable_ml_partition_speed_features =
+      extra_cfg->disable_ml_partition_speed_features;
   part_cfg->enable_rect_partitions = extra_cfg->enable_rect_partitions;
   part_cfg->enable_ab_partitions = extra_cfg->enable_ab_partitions;
   part_cfg->enable_1to4_partitions = extra_cfg->enable_1to4_partitions;
@@ -1875,6 +1881,14 @@
   return update_extra_cfg(ctx, &extra_cfg);
 }
 
+static aom_codec_err_t ctrl_set_disable_ml_partition_speed_features(
+    aom_codec_alg_priv_t *ctx, va_list args) {
+  struct av1_extracfg extra_cfg = ctx->extra_cfg;
+  extra_cfg.disable_ml_partition_speed_features =
+      CAST(AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES, args);
+  return update_extra_cfg(ctx, &extra_cfg);
+}
+
 static aom_codec_err_t ctrl_set_enable_rect_partitions(
     aom_codec_alg_priv_t *ctx, va_list args) {
   struct av1_extracfg extra_cfg = ctx->extra_cfg;
@@ -3523,6 +3537,12 @@
                               &g_av1_codec_arg_defs.enable_1to4_partitions,
                               argv, err_string)) {
     extra_cfg.enable_1to4_partitions = arg_parse_int_helper(&arg, err_string);
+  } else if (arg_match_helper(
+                 &arg,
+                 &g_av1_codec_arg_defs.disable_ml_partition_speed_features,
+                 argv, err_string)) {
+    extra_cfg.disable_ml_partition_speed_features =
+        arg_parse_int_helper(&arg, err_string);
 #if CONFIG_SDP
   } else if (arg_match_helper(&arg, &g_av1_codec_arg_defs.enable_sdp, argv,
                               err_string)) {
@@ -3781,6 +3801,8 @@
   { AV1E_SET_FRAME_PARALLEL_DECODING, ctrl_set_frame_parallel_decoding_mode },
   { AV1E_SET_ERROR_RESILIENT_MODE, ctrl_set_error_resilient_mode },
   { AV1E_SET_S_FRAME_MODE, ctrl_set_s_frame_mode },
+  { AV1E_SET_DISABLE_ML_PARTITION_SPEED_FEATURES,
+    ctrl_set_disable_ml_partition_speed_features },
   { AV1E_SET_ENABLE_RECT_PARTITIONS, ctrl_set_enable_rect_partitions },
   { AV1E_SET_ENABLE_AB_PARTITIONS, ctrl_set_enable_ab_partitions },
   { AV1E_SET_ENABLE_1TO4_PARTITIONS, ctrl_set_enable_1to4_partitions },
@@ -3948,7 +3970,7 @@
     0,                           // use_fixed_qp_offsets
     { -1, -1, -1, -1, -1, -1 },  // fixed_qp_offsets
     {
-        0, 128, 128, 4, 1, 1, 1,
+        0, 128, 128, 4, 1, 1, 1, 0,
 #if CONFIG_SDP
         1,
 #endif  // CONFIG_SDP
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 903c8d7..9c3f4c2 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -201,6 +201,11 @@
  */
 typedef struct {
   /*!
+   * Flag to indicate if ml-based speed-up for partition search should be
+   * disabled.
+   */
+  bool disable_ml_partition_speed_features;
+  /*!
    * Flag to indicate if rectanguar partitions should be enabled.
    */
   bool enable_rect_partitions;
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 52e8b87..067986b 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -883,6 +883,23 @@
   lpf_sf->disable_lr_filter = 0;
 }
 
+static void av1_disable_ml_based_partition_sf(
+    PARTITION_SPEED_FEATURES *const part_sf) {
+  part_sf->ml_prune_4_partition = 0;
+  part_sf->ml_prune_ab_partition = 0;
+  part_sf->ml_prune_rect_partition = 0;
+  part_sf->ml_early_term_after_part_split_level = 0;
+  part_sf->auto_max_partition_based_on_simple_motion = NOT_IN_USE;
+  part_sf->intra_cnn_split = 0;
+  part_sf->simple_motion_search_split = 0;
+  part_sf->simple_motion_search_prune_rect = 0;
+  part_sf->simple_motion_search_early_term_none = 0;
+
+  for (int i = 0; i < PARTITION_BLOCK_SIZES; ++i) {
+    part_sf->ml_partition_search_breakout_thresh[i] = -1;
+  }
+}
+
 void av1_set_speed_features_framesize_dependent(AV1_COMP *cpi, int speed) {
   SPEED_FEATURES *const sf = &cpi->sf;
   const AV1EncoderConfig *const oxcf = &cpi->oxcf;
@@ -896,6 +913,9 @@
     cpi->mv_search_params.find_fractional_mv_step = av1_return_max_sub_pixel_mv;
   else if (cpi->oxcf.unit_test_cfg.motion_vector_unit_test == 2)
     cpi->mv_search_params.find_fractional_mv_step = av1_return_min_sub_pixel_mv;
+
+  if (oxcf->part_cfg.disable_ml_partition_speed_features)
+    av1_disable_ml_based_partition_sf(&sf->part_sf);
 }
 
 void av1_set_speed_features_framesize_independent(AV1_COMP *cpi, int speed) {
diff --git a/common/args.c b/common/args.c
index b4d2715..6c8e401 100644
--- a/common/args.c
+++ b/common/args.c
@@ -80,6 +80,7 @@
     GET_PARAMS(enable_ab_partitions);
     GET_PARAMS(enable_rect_partitions);
     GET_PARAMS(enable_1to4_partitions);
+    GET_PARAMS(disable_ml_partition_speed_features);
 #if CONFIG_SDP
     GET_PARAMS(enable_sdp);
 #endif
