* SSPP sub blocks config
  *************************************************************/
 
+#define SSPP_SCALER_VER(maj, min) (((maj) << 16) | (min))
+
 /* SSPP common configuration */
-#define _VIG_SBLK(sdma_pri, qseed_ver) \
+#define _VIG_SBLK(sdma_pri, qseed_ver, scaler_ver) \
        { \
        .maxdwnscale = MAX_DOWNSCALE_RATIO, \
        .maxupscale = MAX_UPSCALE_RATIO, \
        .smart_dma_priority = sdma_pri, \
        .scaler_blk = {.name = "scaler", \
                .id = qseed_ver, \
+               .version = scaler_ver, \
                .base = 0xa00, .len = 0xa0,}, \
        .csc_blk = {.name = "csc", \
                .id = DPU_SSPP_CSC_10BIT, \
        .rotation_cfg = NULL, \
        }
 
-#define _VIG_SBLK_ROT(sdma_pri, qseed_ver, rot_cfg) \
+#define _VIG_SBLK_ROT(sdma_pri, qseed_ver, scaler_ver, rot_cfg) \
        { \
        .maxdwnscale = MAX_DOWNSCALE_RATIO, \
        .maxupscale = MAX_UPSCALE_RATIO, \
        .smart_dma_priority = sdma_pri, \
        .scaler_blk = {.name = "scaler", \
                .id = qseed_ver, \
+               .version = scaler_ver, \
                .base = 0xa00, .len = 0xa0,}, \
        .csc_blk = {.name = "csc", \
                .id = DPU_SSPP_CSC_10BIT, \
        }
 
 static const struct dpu_sspp_sub_blks msm8998_vig_sblk_0 =
-                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 2));
 static const struct dpu_sspp_sub_blks msm8998_vig_sblk_1 =
-                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 2));
 static const struct dpu_sspp_sub_blks msm8998_vig_sblk_2 =
-                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 2));
 static const struct dpu_sspp_sub_blks msm8998_vig_sblk_3 =
-                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(0, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 2));
 
 static const struct dpu_rotation_cfg dpu_rot_sc7280_cfg_v2 = {
        .rot_maxheight = 1088,
 };
 
 static const struct dpu_sspp_sub_blks sdm845_vig_sblk_0 =
-                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 3));
 static const struct dpu_sspp_sub_blks sdm845_vig_sblk_1 =
-                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 3));
 static const struct dpu_sspp_sub_blks sdm845_vig_sblk_2 =
-                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 3));
 static const struct dpu_sspp_sub_blks sdm845_vig_sblk_3 =
-                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED3);
+                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 3));
+
+static const struct dpu_sspp_sub_blks sm8150_vig_sblk_0 =
+                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 4));
+static const struct dpu_sspp_sub_blks sm8150_vig_sblk_1 =
+                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 4));
+static const struct dpu_sspp_sub_blks sm8150_vig_sblk_2 =
+                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 4));
+static const struct dpu_sspp_sub_blks sm8150_vig_sblk_3 =
+                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED3,
+                                         SSPP_SCALER_VER(1, 4));
 
 static const struct dpu_sspp_sub_blks sdm845_dma_sblk_0 = _DMA_SBLK(1);
 static const struct dpu_sspp_sub_blks sdm845_dma_sblk_1 = _DMA_SBLK(2);
 static const struct dpu_sspp_sub_blks sdm845_dma_sblk_3 = _DMA_SBLK(4);
 
 static const struct dpu_sspp_sub_blks sc7180_vig_sblk_0 =
-                               _VIG_SBLK(4, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(4, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
 
 static const struct dpu_sspp_sub_blks sc7280_vig_sblk_0 =
-                       _VIG_SBLK_ROT(4, DPU_SSPP_SCALER_QSEED4, &dpu_rot_sc7280_cfg_v2);
+                       _VIG_SBLK_ROT(4, DPU_SSPP_SCALER_QSEED4,
+                                     SSPP_SCALER_VER(3, 0),
+                                     &dpu_rot_sc7280_cfg_v2);
 
 static const struct dpu_sspp_sub_blks sm6115_vig_sblk_0 =
-                               _VIG_SBLK(2, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(2, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
 
 static const struct dpu_sspp_sub_blks sm6125_vig_sblk_0 =
-                               _VIG_SBLK(3, DPU_SSPP_SCALER_QSEED3LITE);
+                               _VIG_SBLK(3, DPU_SSPP_SCALER_QSEED3LITE,
+                                         SSPP_SCALER_VER(2, 4));
 
 static const struct dpu_sspp_sub_blks sm8250_vig_sblk_0 =
-                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
 static const struct dpu_sspp_sub_blks sm8250_vig_sblk_1 =
-                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
 static const struct dpu_sspp_sub_blks sm8250_vig_sblk_2 =
-                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
 static const struct dpu_sspp_sub_blks sm8250_vig_sblk_3 =
-                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 0));
+
+static const struct dpu_sspp_sub_blks sm8450_vig_sblk_0 =
+                               _VIG_SBLK(5, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 1));
+static const struct dpu_sspp_sub_blks sm8450_vig_sblk_1 =
+                               _VIG_SBLK(6, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 1));
+static const struct dpu_sspp_sub_blks sm8450_vig_sblk_2 =
+                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 1));
+static const struct dpu_sspp_sub_blks sm8450_vig_sblk_3 =
+                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 1));
 
 static const struct dpu_sspp_sub_blks sm8550_vig_sblk_0 =
-                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(7, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 2));
 static const struct dpu_sspp_sub_blks sm8550_vig_sblk_1 =
-                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(8, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 2));
 static const struct dpu_sspp_sub_blks sm8550_vig_sblk_2 =
-                               _VIG_SBLK(9, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(9, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 2));
 static const struct dpu_sspp_sub_blks sm8550_vig_sblk_3 =
-                               _VIG_SBLK(10, DPU_SSPP_SCALER_QSEED4);
+                               _VIG_SBLK(10, DPU_SSPP_SCALER_QSEED4,
+                                         SSPP_SCALER_VER(3, 2));
 static const struct dpu_sspp_sub_blks sm8550_dma_sblk_4 = _DMA_SBLK(5);
 static const struct dpu_sspp_sub_blks sm8550_dma_sblk_5 = _DMA_SBLK(6);