struct bios_parser *bp,
        struct bp_encoder_control *cntl);
 
+static enum bp_result encoder_control_fallback(
+       struct bios_parser *bp,
+       struct bp_encoder_control *cntl);
+
 static void init_dig_encoder_control(struct bios_parser *bp)
 {
        uint32_t version =
                break;
        default:
                dm_output_to_console("Don't have dig_encoder_control for v%d\n", version);
-               bp->cmd_tbl.dig_encoder_control = NULL;
+               bp->cmd_tbl.dig_encoder_control = encoder_control_fallback;
                break;
        }
 }
        return result;
 }
 
+static enum bp_result encoder_control_fallback(
+       struct bios_parser *bp,
+       struct bp_encoder_control *cntl)
+{
+       if (bp->base.ctx->dc->ctx->dmub_srv &&
+           bp->base.ctx->dc->debug.dmub_command_table) {
+               return encoder_control_digx_v1_5(bp, cntl);
+       }
+
+       return BP_RESULT_FAILURE;
+}
+
 /*****************************************************************************
  ******************************************************************************
  **
        struct bios_parser *bp,
        struct bp_transmitter_control *cntl);
 
+static enum bp_result transmitter_control_fallback(
+       struct bios_parser *bp,
+       struct bp_transmitter_control *cntl);
+
 static void init_transmitter_control(struct bios_parser *bp)
 {
        uint8_t frev;
                break;
        default:
                dm_output_to_console("Don't have transmitter_control for v%d\n", crev);
-               bp->cmd_tbl.transmitter_control = NULL;
+               bp->cmd_tbl.transmitter_control = transmitter_control_fallback;
                break;
        }
 }
        return result;
 }
 
+static enum bp_result transmitter_control_fallback(
+       struct bios_parser *bp,
+       struct bp_transmitter_control *cntl)
+{
+       if (bp->base.ctx->dc->ctx->dmub_srv &&
+           bp->base.ctx->dc->debug.dmub_command_table) {
+               return transmitter_control_v1_6(bp, cntl);
+       }
+
+       return BP_RESULT_FAILURE;
+}
+
 /******************************************************************************
  ******************************************************************************
  **
        struct bios_parser *bp,
        struct bp_pixel_clock_parameters *bp_params);
 
+static enum bp_result set_pixel_clock_fallback(
+       struct bios_parser *bp,
+       struct bp_pixel_clock_parameters *bp_params);
+
 static void init_set_pixel_clock(struct bios_parser *bp)
 {
        switch (BIOS_CMD_TABLE_PARA_REVISION(setpixelclock)) {
        default:
                dm_output_to_console("Don't have set_pixel_clock for v%d\n",
                         BIOS_CMD_TABLE_PARA_REVISION(setpixelclock));
-               bp->cmd_tbl.set_pixel_clock = NULL;
+               bp->cmd_tbl.set_pixel_clock = set_pixel_clock_fallback;
                break;
        }
 }
        return result;
 }
 
+static enum bp_result set_pixel_clock_fallback(
+       struct bios_parser *bp,
+       struct bp_pixel_clock_parameters *bp_params)
+{
+       if (bp->base.ctx->dc->ctx->dmub_srv &&
+           bp->base.ctx->dc->debug.dmub_command_table) {
+               return set_pixel_clock_v7(bp, bp_params);
+       }
+
+       return BP_RESULT_FAILURE;
+}
+
 /******************************************************************************
  ******************************************************************************
  **
        enum controller_id crtc_id,
        enum bp_pipe_control_action action);
 
+static enum bp_result enable_disp_power_gating_fallback(
+       struct bios_parser *bp,
+       enum controller_id crtc_id,
+       enum bp_pipe_control_action action);
+
 static void init_enable_disp_power_gating(
        struct bios_parser *bp)
 {
        default:
                dm_output_to_console("Don't enable_disp_power_gating enable_crtc for v%d\n",
                         BIOS_CMD_TABLE_PARA_REVISION(enabledisppowergating));
-               bp->cmd_tbl.enable_disp_power_gating = NULL;
+               bp->cmd_tbl.enable_disp_power_gating = enable_disp_power_gating_fallback;
                break;
        }
 }
        return result;
 }
 
+static enum bp_result enable_disp_power_gating_fallback(
+       struct bios_parser *bp,
+       enum controller_id crtc_id,
+       enum bp_pipe_control_action action)
+{
+       if (bp->base.ctx->dc->ctx->dmub_srv &&
+           bp->base.ctx->dc->debug.dmub_command_table) {
+               return enable_disp_power_gating_v2_1(bp, crtc_id, action);
+       }
+
+       return BP_RESULT_FAILURE;
+}
+
 /******************************************************************************
 *******************************************************************************
  **