* @id:                enum identifying this block
  * @base:              register base offset to mdss
  * @len:               length of hardware block
- * @features           bit mask identifying sub-blocks/features
  */
 #define DPU_HW_BLK_INFO \
        char name[DPU_HW_BLK_NAME_LEN]; \
        u32 id; \
        u32 base; \
-       u32 len; \
-       unsigned long features
+       u32 len
 
 /**
  * struct dpu_scaler_blk: Scaler information
 /* struct dpu_mdp_cfg : MDP TOP-BLK instance info
  * @id:                index identifying this block
  * @base:              register base offset to mdss
- * @features           bit mask identifying sub-blocks/features
  * @clk_ctrls          clock control register definition
  */
 struct dpu_mdp_cfg {
  */
 struct dpu_ctl_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        unsigned int intr_start;
 };
 
  */
 struct dpu_sspp_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        const struct dpu_sspp_sub_blks *sblk;
        u32 xin_id;
        enum dpu_clk_ctrl_type clk_ctrl;
  */
 struct dpu_lm_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        const struct dpu_lm_sub_blks *sblk;
        u32 pingpong;
        u32 dspp;
  * struct dpu_dspp_cfg - information of DSPP blocks
  * @id                 enum identifying this block
  * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
  *                     supported by this block
  * @sblk               sub-blocks information
  */
  * struct dpu_pingpong_cfg - information of PING-PONG blocks
  * @id                 enum identifying this block
  * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
  * @intr_done:         index for PINGPONG done interrupt
  * @intr_rdptr:        index for PINGPONG readpointer done interrupt
  * @sblk               sub-blocks information
  * struct dpu_merge_3d_cfg - information of DSPP blocks
  * @id                 enum identifying this block
  * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
- *                     supported by this block
  * @sblk               sub-blocks information
  */
 struct dpu_merge_3d_cfg  {
  */
 struct dpu_dsc_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        const struct dpu_dsc_sub_blks *sblk;
 };
 
  * struct dpu_intf_cfg - information of timing engine blocks
  * @id                 enum identifying this block
  * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
  * @type:              Interface type(DSI, DP, HDMI)
  * @controller_id:     Controller Instance ID in case of multiple of intf type
  * @prog_fetch_lines_worst_case        Worst case latency num lines needed to prefetch
  */
 struct dpu_wb_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        u8 vbif_idx;
        u32 maxlinewidth;
        u32 xin_id;
  */
 struct dpu_vbif_cfg {
        DPU_HW_BLK_INFO;
+       unsigned long features;
        u32 default_ot_rd_limit;
        u32 default_ot_wr_limit;
        u32 xin_halt_timeout;
  * @name               string name for debug purposes
  * @id                 enum identifying this block
  * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
  */
 struct dpu_cdm_cfg {
        DPU_HW_BLK_INFO;