}
 
        if (hw_mdptop->ops.setup_vsync_source &&
-                       disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE) {
+                       disp_info->is_cmd_mode) {
                for (i = 0; i < dpu_enc->num_phys_encs; i++)
                        vsync_cfg.ppnumber[i] = dpu_enc->hw_pp[i]->idx;
 
        }
        dpu_enc = to_dpu_encoder_virt(drm_enc);
        priv = drm_enc->dev->dev_private;
-       is_vid_mode = dpu_enc->disp_info.capabilities &
-                                               MSM_DISPLAY_CAP_VID_MODE;
+       is_vid_mode = !dpu_enc->disp_info.is_cmd_mode;
 
        /*
         * when idle_pc is not supported, process only KICKOFF, STOP and MODESET
 
                /* update only for command mode primary ctl */
                if ((phys == dpu_enc->cur_master) &&
-                  (disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE)
+                   disp_info->is_cmd_mode
                    && ctl->ops.trigger_pending)
                        ctl->ops.trigger_pending(ctl);
        }
                return -EINVAL;
        }
 
-       if (disp_info->capabilities & MSM_DISPLAY_CAP_VID_MODE) {
-               enc = dpu_encoder_phys_vid_init(params);
+
+       if (disp_info->intf_type == DRM_MODE_ENCODER_VIRTUAL) {
+               enc = dpu_encoder_phys_wb_init(params);
 
                if (IS_ERR(enc)) {
-                       DPU_ERROR_ENC(dpu_enc, "failed to init vid enc: %ld\n",
+                       DPU_ERROR_ENC(dpu_enc, "failed to init wb enc: %ld\n",
                                PTR_ERR(enc));
                        return PTR_ERR(enc);
                }
 
                dpu_enc->phys_encs[dpu_enc->num_phys_encs] = enc;
                ++dpu_enc->num_phys_encs;
-       }
-
-       if (disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE) {
+       } else if (disp_info->is_cmd_mode) {
                enc = dpu_encoder_phys_cmd_init(params);
 
                if (IS_ERR(enc)) {
 
                dpu_enc->phys_encs[dpu_enc->num_phys_encs] = enc;
                ++dpu_enc->num_phys_encs;
-       }
-
-       if (disp_info->intf_type == DRM_MODE_ENCODER_VIRTUAL) {
-               enc = dpu_encoder_phys_wb_init(params);
+       } else {
+               enc = dpu_encoder_phys_vid_init(params);
 
                if (IS_ERR(enc)) {
-                       DPU_ERROR_ENC(dpu_enc, "failed to init wb enc: %ld\n",
-                                       PTR_ERR(enc));
+                       DPU_ERROR_ENC(dpu_enc, "failed to init vid enc: %ld\n",
+                               PTR_ERR(enc));
                        return PTR_ERR(enc);
                }
 
 
        DPU_DEBUG("dsi_info->num_of_h_tiles %d\n", disp_info->num_of_h_tiles);
 
-       if ((disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE) ||
-           (disp_info->capabilities & MSM_DISPLAY_CAP_VID_MODE))
+       if (disp_info->intf_type != DRM_MODE_ENCODER_VIRTUAL)
                dpu_enc->idle_pc_supported =
                                dpu_kms->catalog->caps->has_idle_pc;
 
 
 /**
  * struct msm_display_info - defines display properties
  * @intf_type:          DRM_MODE_ENCODER_ type
- * @capabilities:       Bitmask of display flags
  * @num_of_h_tiles:     Number of horizontal tiles in case of split interface
  * @h_tile_instance:    Controller instance used per tile. Number of elements is
  *                      based on num_of_h_tiles
+ * @is_cmd_mode                Boolean to indicate if the CMD mode is requested
  * @is_te_using_watchdog_timer:  Boolean to indicate watchdog TE is
  *                              used instead of panel TE in cmd mode panels
  * @dsc:               DSC configuration data for DSC-enabled displays
  */
 struct msm_display_info {
        int intf_type;
-       uint32_t capabilities;
        uint32_t num_of_h_tiles;
        uint32_t h_tile_instance[MAX_H_TILES_PER_DISPLAY];
+       bool is_cmd_mode;
        bool is_te_using_watchdog_timer;
        struct msm_display_dsc_config *dsc;
 };
 
                }
 
                info.h_tile_instance[info.num_of_h_tiles++] = i;
-               info.capabilities = msm_dsi_is_cmd_mode(priv->dsi[i]) ?
-                       MSM_DISPLAY_CAP_CMD_MODE :
-                       MSM_DISPLAY_CAP_VID_MODE;
+               info.is_cmd_mode = msm_dsi_is_cmd_mode(priv->dsi[i]);
 
                info.dsc = msm_dsi_get_dsc_config(priv->dsi[i]);
 
 
                info.num_of_h_tiles = 1;
                info.h_tile_instance[0] = i;
-               info.capabilities = MSM_DISPLAY_CAP_VID_MODE;
                info.intf_type = encoder->encoder_type;
                rc = dpu_encoder_setup(dev, encoder, &info);
                if (rc) {
 
 #define MSM_GPU_MAX_RINGS 4
 #define MAX_H_TILES_PER_DISPLAY 2
 
-/**
- * enum msm_display_caps - features/capabilities supported by displays
- * @MSM_DISPLAY_CAP_VID_MODE:           Video or "active" mode supported
- * @MSM_DISPLAY_CAP_CMD_MODE:           Command mode supported
- */
-enum msm_display_caps {
-       MSM_DISPLAY_CAP_VID_MODE        = BIT(0),
-       MSM_DISPLAY_CAP_CMD_MODE        = BIT(1),
-};
-
 /**
  * enum msm_event_wait - type of HW events to wait for
  * @MSM_ENC_COMMIT_DONE - wait for the driver to flush the registers to HW