diff --git a/aom/aomcx.h b/aom/aomcx.h
index 92c5514..db2a744 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -1307,14 +1307,6 @@
   /*!\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
@@ -1579,9 +1571,6 @@
 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 fda2159..cc7aa86 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -118,118 +118,115 @@
   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_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,
+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,
 #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,
@@ -341,7 +338,6 @@
   &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,
@@ -435,6 +431,7 @@
 
 const arg_def_t *av1_key_val_args[] = {
   &g_av1_codec_arg_defs.disable_ml_transform_speed_features,
+  &g_av1_codec_arg_defs.disable_ml_partition_speed_features,
 #if CONFIG_SDP
   &g_av1_codec_arg_defs.enable_sdp,
 #endif
@@ -584,6 +581,7 @@
   config->enable_rect_partitions = 1;
   config->enable_1to4_partitions = 1;
   config->disable_ml_transform_speed_features = 0;
+  config->disable_ml_partition_speed_features = 0;
 #if CONFIG_SDP
   config->enable_sdp = 1;
 #endif
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index a483654..6400e19 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -913,6 +913,8 @@
   extra_cfg->enable_1to4_partitions = cfg->enable_1to4_partitions;
   extra_cfg->disable_ml_transform_speed_features =
       cfg->disable_ml_transform_speed_features;
+  extra_cfg->disable_ml_partition_speed_features =
+      cfg->disable_ml_partition_speed_features;
 #if CONFIG_SDP
   extra_cfg->enable_sdp = cfg->enable_sdp;
 #endif
@@ -1889,14 +1891,6 @@
   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;
@@ -3815,8 +3809,6 @@
   { 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 },
