All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeykumar Sankaran <jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
	Jeykumar Sankaran
	<jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Subject: [DPU PATCH v3 2/7] drm/msm/dpu: clean up dpu plane custom properties
Date: Mon, 11 Jun 2018 14:13:19 -0700	[thread overview]
Message-ID: <1528751604-32541-3-git-send-email-jsanka@codeaurora.org> (raw)
In-Reply-To: <1528751604-32541-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>

This change removes all the dpu plane custom properties
and its handlers.

changes in v2:
    - remove stale code in blend config(Sean Paul)
    - Makefile changes to remove warning flags(Sean Paul)
changes in v3:
    - rebased on https://gitlab.freedesktop.org/seanpaul/
      dpu-staging/commit/481d29d31cd629fd216381b53de5695f645465d5

Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
---
 drivers/gpu/drm/msm/Makefile                       |    8 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h            |   99 --
 .../gpu/drm/msm/disp/dpu1/dpu_color_processing.c   | 1521 --------------------
 .../gpu/drm/msm/disp/dpu1/dpu_color_processing.h   |  120 --
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c           |  205 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h           |    3 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        |    2 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c         | 1443 -------------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |   72 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h     |   89 --
 .../msm/disp/dpu1/dpu_hw_color_proc_common_v4.h    |   69 -
 .../gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c   |  242 ----
 .../gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h   |   40 -
 .../drm/msm/disp/dpu1/dpu_hw_color_processing.h    |   20 -
 .../msm/disp/dpu1/dpu_hw_color_processing_v1_7.c   |  565 --------
 .../msm/disp/dpu1/dpu_hw_color_processing_v1_7.h   |   92 --
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c         |   44 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h         |   15 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c        |  209 ---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h        |  220 ---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c          |    1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h        |   44 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c    |   68 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h    |    6 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c  |  757 ----------
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h  |   27 -
 .../msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c   |  943 ------------
 .../msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h   |   75 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c        |  220 ---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h        |   73 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c        |    1 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h        |  156 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            |   11 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c          | 1269 +---------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h          |   31 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c        |  139 --
 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h        |  310 ----
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c             |  102 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h             |    2 -
 drivers/gpu/drm/msm/msm_drv.h                      |   28 -
 include/uapi/drm/dpu_drm.h                         |  187 ---
 include/uapi/drm/msm_drm.h                         |    1 -
 42 files changed, 282 insertions(+), 9247 deletions(-)
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_common_v4.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c
 delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h

diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile
index 9d1d52c..8ec0bff 100644
--- a/drivers/gpu/drm/msm/Makefile
+++ b/drivers/gpu/drm/msm/Makefile
@@ -46,7 +46,6 @@ msm-y := \
 	disp/mdp5/mdp5_mixer.o \
 	disp/mdp5/mdp5_plane.o \
 	disp/mdp5/mdp5_smp.o \
-	disp/dpu1/dpu_color_processing.o \
 	disp/dpu1/dpu_core_irq.o \
 	disp/dpu1/dpu_core_perf.o \
 	disp/dpu1/dpu_crtc.o \
@@ -54,21 +53,15 @@ msm-y := \
 	disp/dpu1/dpu_encoder_phys_cmd.o \
 	disp/dpu1/dpu_encoder_phys_vid.o \
 	disp/dpu1/dpu_formats.o \
-	disp/dpu1/dpu_hw_ad4.o \
 	disp/dpu1/dpu_hw_blk.o \
 	disp/dpu1/dpu_hw_catalog.o \
 	disp/dpu1/dpu_hw_cdm.o \
-	disp/dpu1/dpu_hw_color_proc_v4.o \
-	disp/dpu1/dpu_hw_color_processing_v1_7.o \
 	disp/dpu1/dpu_hw_ctl.o \
 	disp/dpu1/dpu_hw_ds.o \
-	disp/dpu1/dpu_hw_dspp.o \
 	disp/dpu1/dpu_hw_interrupts.o \
 	disp/dpu1/dpu_hw_intf.o \
 	disp/dpu1/dpu_hw_lm.o \
 	disp/dpu1/dpu_hw_pingpong.o \
-	disp/dpu1/dpu_hw_reg_dma_v1.o \
-	disp/dpu1/dpu_hw_reg_dma_v1_color_proc.o \
 	disp/dpu1/dpu_hw_sspp.o \
 	disp/dpu1/dpu_hw_top.o \
 	disp/dpu1/dpu_hw_util.o \
@@ -78,7 +71,6 @@ msm-y := \
 	disp/dpu1/dpu_kms.o \
 	disp/dpu1/dpu_kms_utils.o \
 	disp/dpu1/dpu_plane.o \
-	disp/dpu1/dpu_reg_dma.o \
 	disp/dpu1/dpu_rm.o \
 	disp/dpu1/dpu_vbif.o \
 	disp/dpu1/dpu_mdss.o \
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h
deleted file mode 100644
index 5b70c4a..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#ifndef _DPU_AD4_H_
-#define _DPU_AD4_H_
-
-#include <drm/drm_mode.h>
-#include <drm/drm_property.h>
-#include "dpu_hw_dspp.h"
-
-/**
- * enum ad4_modes - ad4 modes supported by driver
- */
-enum ad4_modes {
-	AD4_OFF,
-	AD4_AUTO_STRENGTH,
-	AD4_CALIBRATION,
-	AD4_MANUAL,
-};
-
-/**
- * struct drm_prop_enum_list - drm structure for creating enum property and
- *                             enumerating values
- */
-static const struct drm_prop_enum_list ad4_modes[] = {
-	{AD4_OFF, "off"},
-	{AD4_AUTO_STRENGTH, "auto_strength_mode"},
-	{AD4_CALIBRATION, "calibration_mode"},
-	{AD4_MANUAL, "manual_mode"},
-};
-
-/**
- * enum ad_property - properties that can be set for ad
- */
-enum ad_property {
-	AD_MODE,
-	AD_INIT,
-	AD_CFG,
-	AD_INPUT,
-	AD_SUSPEND,
-	AD_ASSERTIVE,
-	AD_BACKLIGHT,
-	AD_IPC_SUSPEND,
-	AD_IPC_RESUME,
-	AD_IPC_RESET,
-	AD_PROPMAX,
-};
-
-/**
- * enum ad_intr_resp_property - ad4 interrupt response enum
- */
-enum ad_intr_resp_property {
-	AD4_BACKLIGHT,
-	AD4_RESPMAX,
-};
-
-/**
- * struct dpu_ad_hw_cfg - structure for setting the ad properties
- * @prop: enum of ad property
- * @hw_cfg: payload for the prop being set.
- */
-struct dpu_ad_hw_cfg {
-	enum ad_property prop;
-	struct dpu_hw_cp_cfg *hw_cfg;
-};
-
-/**
- * dpu_validate_dspp_ad4() - api to validate if ad property is allowed for
- *                           the display with allocated dspp/mixers.
- * @dspp: pointer to dspp info structure.
- * @prop: pointer to u32 pointing to ad property
- */
-int dpu_validate_dspp_ad4(struct dpu_hw_dspp *dspp, u32 *prop);
-
-/**
- * dpu_setup_dspp_ad4 - api to apply the ad property, dpu_validate_dspp_ad4
- *                      should be called before call this function
- * @dspp: pointer to dspp info structure.
- * @cfg: pointer to struct dpu_ad_hw_cfg
- */
-void dpu_setup_dspp_ad4(struct dpu_hw_dspp *dspp, void *cfg);
-
-/**
- * dpu_read_intr_resp_ad4 - api to get ad4 interrupt status for event
- * @dspp: pointer to dspp object
- * @event: event for which response is needed
- * @resp: value of event requested
- */
-void dpu_read_intr_resp_ad4(struct dpu_hw_dspp *dspp, u32 event, u32 *resp);
-
-#endif /* _DPU_AD4_H_ */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.c
deleted file mode 100644
index f13d1cc..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.c
+++ /dev/null
@@ -1,1521 +0,0 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#define pr_fmt(fmt)	"%s: " fmt, __func__
-
-#include <drm/msm_drm_pp.h>
-#include "dpu_color_processing.h"
-#include "dpu_kms.h"
-#include "dpu_crtc.h"
-#include "dpu_hw_dspp.h"
-#include "dpu_hw_lm.h"
-#include "dpu_ad4.h"
-#include "dpu_hw_interrupts.h"
-#include "dpu_core_irq.h"
-
-struct dpu_cp_node {
-	u32 property_id;
-	u32 prop_flags;
-	u32 feature;
-	void *blob_ptr;
-	uint64_t prop_val;
-	const struct dpu_pp_blk *pp_blk;
-	struct list_head feature_list;
-	struct list_head active_list;
-	struct list_head dirty_list;
-	bool is_dspp_feature;
-	u32 prop_blob_sz;
-	struct dpu_irq_callback *irq;
-};
-
-struct dpu_cp_prop_attach {
-	struct drm_crtc *crtc;
-	struct drm_property *prop;
-	struct dpu_cp_node *prop_node;
-	u32 feature;
-	uint64_t val;
-};
-
-static void dspp_pcc_install_property(struct drm_crtc *crtc);
-
-static void dspp_hsic_install_property(struct drm_crtc *crtc);
-
-static void dspp_ad_install_property(struct drm_crtc *crtc);
-
-static void dspp_vlut_install_property(struct drm_crtc *crtc);
-
-static void dspp_gamut_install_property(struct drm_crtc *crtc);
-
-static void dspp_gc_install_property(struct drm_crtc *crtc);
-
-static void dspp_igc_install_property(struct drm_crtc *crtc);
-
-typedef void (*dspp_prop_install_func_t)(struct drm_crtc *crtc);
-
-static dspp_prop_install_func_t dspp_prop_install_func[DPU_DSPP_MAX];
-
-static void dpu_cp_update_list(struct dpu_cp_node *prop_node,
-		struct dpu_crtc *crtc, bool dirty_list);
-
-static int dpu_cp_ad_validate_prop(struct dpu_cp_node *prop_node,
-		struct dpu_crtc *crtc);
-
-static void dpu_cp_notify_ad_event(struct drm_crtc *crtc_drm, void *arg);
-
-static void dpu_cp_ad_set_prop(struct dpu_crtc *dpu_crtc,
-		enum ad_property ad_prop);
-
-#define setup_dspp_prop_install_funcs(func) \
-do { \
-	func[DPU_DSPP_PCC] = dspp_pcc_install_property; \
-	func[DPU_DSPP_HSIC] = dspp_hsic_install_property; \
-	func[DPU_DSPP_AD] = dspp_ad_install_property; \
-	func[DPU_DSPP_VLUT] = dspp_vlut_install_property; \
-	func[DPU_DSPP_GAMUT] = dspp_gamut_install_property; \
-	func[DPU_DSPP_GC] = dspp_gc_install_property; \
-	func[DPU_DSPP_IGC] = dspp_igc_install_property; \
-} while (0)
-
-typedef void (*lm_prop_install_func_t)(struct drm_crtc *crtc);
-
-static lm_prop_install_func_t lm_prop_install_func[DPU_MIXER_MAX];
-
-static void lm_gc_install_property(struct drm_crtc *crtc);
-
-#define setup_lm_prop_install_funcs(func) \
-	(func[DPU_MIXER_GC] = lm_gc_install_property)
-
-enum {
-	/* Append new DSPP features before DPU_CP_CRTC_DSPP_MAX */
-	/* DSPP Features start */
-	DPU_CP_CRTC_DSPP_IGC,
-	DPU_CP_CRTC_DSPP_PCC,
-	DPU_CP_CRTC_DSPP_GC,
-	DPU_CP_CRTC_DSPP_HUE,
-	DPU_CP_CRTC_DSPP_SAT,
-	DPU_CP_CRTC_DSPP_VAL,
-	DPU_CP_CRTC_DSPP_CONT,
-	DPU_CP_CRTC_DSPP_MEMCOLOR,
-	DPU_CP_CRTC_DSPP_SIXZONE,
-	DPU_CP_CRTC_DSPP_GAMUT,
-	DPU_CP_CRTC_DSPP_DITHER,
-	DPU_CP_CRTC_DSPP_HIST,
-	DPU_CP_CRTC_DSPP_AD,
-	DPU_CP_CRTC_DSPP_VLUT,
-	DPU_CP_CRTC_DSPP_AD_MODE,
-	DPU_CP_CRTC_DSPP_AD_INIT,
-	DPU_CP_CRTC_DSPP_AD_CFG,
-	DPU_CP_CRTC_DSPP_AD_INPUT,
-	DPU_CP_CRTC_DSPP_AD_ASSERTIVENESS,
-	DPU_CP_CRTC_DSPP_AD_BACKLIGHT,
-	DPU_CP_CRTC_DSPP_MAX,
-	/* DSPP features end */
-
-	/* Append new LM features before DPU_CP_CRTC_MAX_FEATURES */
-	/* LM feature start*/
-	DPU_CP_CRTC_LM_GC,
-	/* LM feature end*/
-
-	DPU_CP_CRTC_MAX_FEATURES,
-};
-
-#define INIT_PROP_ATTACH(p, crtc, prop, node, feature, val) \
-	do { \
-		(p)->crtc = crtc; \
-		(p)->prop = prop; \
-		(p)->prop_node = node; \
-		(p)->feature = feature; \
-		(p)->val = val; \
-	} while (0)
-
-static void dpu_cp_get_hw_payload(struct dpu_cp_node *prop_node,
-				  struct dpu_hw_cp_cfg *hw_cfg,
-				  bool *feature_enabled)
-{
-
-	struct drm_property_blob *blob = NULL;
-
-	memset(hw_cfg, 0, sizeof(*hw_cfg));
-	*feature_enabled = false;
-
-	blob = prop_node->blob_ptr;
-	if (prop_node->prop_flags & DRM_MODE_PROP_BLOB) {
-		if (blob) {
-			hw_cfg->len = blob->length;
-			hw_cfg->payload = blob->data;
-			*feature_enabled = true;
-		}
-	} else if (prop_node->prop_flags & DRM_MODE_PROP_RANGE) {
-		/* Check if local blob is Set */
-		if (!blob) {
-			if (prop_node->prop_val) {
-				hw_cfg->len = sizeof(prop_node->prop_val);
-				hw_cfg->payload = &prop_node->prop_val;
-			}
-		} else {
-			hw_cfg->len = (prop_node->prop_val) ? blob->length :
-					0;
-			hw_cfg->payload = (prop_node->prop_val) ? blob->data
-						: NULL;
-		}
-		if (prop_node->prop_val)
-			*feature_enabled = true;
-	} else if (prop_node->prop_flags & DRM_MODE_PROP_ENUM) {
-		*feature_enabled = (prop_node->prop_val != 0);
-		hw_cfg->len = sizeof(prop_node->prop_val);
-		hw_cfg->payload = &prop_node->prop_val;
-	} else {
-		DRM_ERROR("property type is not supported\n");
-	}
-}
-
-static int dpu_cp_disable_crtc_blob_property(struct dpu_cp_node *prop_node)
-{
-	struct drm_property_blob *blob = prop_node->blob_ptr;
-
-	if (!blob)
-		return 0;
-	drm_property_blob_put(blob);
-	prop_node->blob_ptr = NULL;
-	return 0;
-}
-
-static int dpu_cp_create_local_blob(struct drm_crtc *crtc, u32 feature, int len)
-{
-	int ret = -EINVAL;
-	bool found = false;
-	struct dpu_cp_node *prop_node = NULL;
-	struct drm_property_blob *blob_ptr;
-	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
-
-	list_for_each_entry(prop_node, &dpu_crtc->feature_list, feature_list) {
-		if (prop_node->feature == feature) {
-			found = true;
-			break;
-		}
-	}
-
-	if (!found || !(prop_node->prop_flags & DRM_MODE_PROP_RANGE)) {
-		DRM_ERROR("local blob create failed prop found %d flags %d\n",
-		       found, prop_node->prop_flags);
-		return ret;
-	}
-
-	blob_ptr = drm_property_create_blob(crtc->dev, len, NULL);
-	ret = (IS_ERR_OR_NULL(blob_ptr)) ? PTR_ERR(blob_ptr) : 0;
-	if (!ret)
-		prop_node->blob_ptr = blob_ptr;
-
-	return ret;
-}
-
-static void dpu_cp_destroy_local_blob(struct dpu_cp_node *prop_node)
-{
-	if (!(prop_node->prop_flags & DRM_MODE_PROP_BLOB) &&
-		prop_node->blob_ptr)
-		drm_property_blob_put(prop_node->blob_ptr);
-}
-
-static int dpu_cp_handle_range_property(struct dpu_cp_node *prop_node,
-					uint64_t val)
-{
-	int ret = 0;
-	struct drm_property_blob *blob_ptr = prop_node->blob_ptr;
-
-	if (!blob_ptr) {
-		prop_node->prop_val = val;
-		return 0;
-	}
-
-	if (!val) {
-		prop_node->prop_val = 0;
-		return 0;
-	}
-
-	ret = copy_from_user(blob_ptr->data, u64_to_user_ptr(val),
-			     blob_ptr->length);
-	if (ret) {
-		DRM_ERROR("failed to get the property info ret %d", ret);
-		ret = -EFAULT;
-	} else {
-		prop_node->prop_val = val;
-	}
-
-	return ret;
-}
-
-static int dpu_cp_disable_crtc_property(struct drm_crtc *crtc,
-					 struct drm_property *property,
-					 struct dpu_cp_node *prop_node)
-{
-	int ret = -EINVAL;
-
-	if (property->flags & DRM_MODE_PROP_BLOB) {
-		ret = dpu_cp_disable_crtc_blob_property(prop_node);
-	} else if (property->flags & DRM_MODE_PROP_RANGE) {
-		ret = dpu_cp_handle_range_property(prop_node, 0);
-	} else if (property->flags & DRM_MODE_PROP_ENUM) {
-		ret = 0;
-		prop_node->prop_val = 0;
-	}
-	return ret;
-}
-
-static int dpu_cp_enable_crtc_blob_property(struct drm_crtc *crtc,
-					       struct dpu_cp_node *prop_node,
-					       uint64_t val)
-{
-	struct drm_property_blob *blob = NULL;
-
-	/**
-	 * For non-blob based properties add support to create a blob
-	 * using the val and store the blob_ptr in prop_node.
-	 */
-	blob = drm_property_lookup_blob(crtc->dev, val);
-	if (!blob) {
-		DRM_ERROR("invalid blob id %lld\n", val);
-		return -EINVAL;
-	}
-	if (blob->length != prop_node->prop_blob_sz) {
-		DRM_ERROR("invalid blob len %zd exp %d feature %d\n",
-		    blob->length, prop_node->prop_blob_sz, prop_node->feature);
-		drm_property_blob_put(blob);
-		return -EINVAL;
-	}
-	/* Release refernce to existing payload of the property */
-	if (prop_node->blob_ptr)
-		drm_property_blob_put(prop_node->blob_ptr);
-
-	prop_node->blob_ptr = blob;
-	return 0;
-}
-
-static int dpu_cp_enable_crtc_property(struct drm_crtc *crtc,
-				       struct drm_property *property,
-				       struct dpu_cp_node *prop_node,
-				       uint64_t val)
-{
-	int ret = -EINVAL;
-
-	if (property->flags & DRM_MODE_PROP_BLOB) {
-		ret = dpu_cp_enable_crtc_blob_property(crtc, prop_node, val);
-	} else if (property->flags & DRM_MODE_PROP_RANGE) {
-		ret = dpu_cp_handle_range_property(prop_node, val);
-	} else if (property->flags & DRM_MODE_PROP_ENUM) {
-		ret = 0;
-		prop_node->prop_val = val;
-	}
-	return ret;
-}
-
-static struct dpu_kms *get_kms(struct drm_crtc *crtc)
-{
-	struct msm_drm_private *priv = crtc->dev->dev_private;
-
-	return to_dpu_kms(priv->kms);
-}
-
-static void dpu_cp_crtc_prop_attach(struct dpu_cp_prop_attach *prop_attach)
-{
-
-	struct dpu_crtc *dpu_crtc = to_dpu_crtc(prop_attach->crtc);
-
-	drm_object_attach_property(&prop_attach->crtc->base,
-				   prop_attach->prop, prop_attach->val);
-
-	INIT_LIST_HEAD(&prop_attach->prop_node->active_list);
-	INIT_LIST_HEAD(&prop_attach->prop_node->dirty_list);
-
-	prop_attach->prop_node->property_id = prop_attach->prop->base.id;
-	prop_attach->prop_node->prop_flags = prop_attach->prop->flags;
-	prop_attach->prop_node->feature = prop_attach->feature;
-
-	if (prop_attach->feature < DPU_CP_CRTC_DSPP_MAX)
-		prop_attach->prop_node->is_dspp_feature = true;
-	else
-		prop_attach->prop_node->is_dspp_feature = false;
-
-	list_add(&prop_attach->prop_node->feature_list,
-		 &dpu_crtc->feature_list);
-}
-
-void dpu_cp_crtc_init(struct drm_crtc *crtc)
-{
-	struct dpu_crtc *dpu_crtc = NULL;
-
-	if (!crtc) {
-		DRM_ERROR("invalid crtc %pK\n", crtc);
-		return;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	INIT_LIST_HEAD(&dpu_crtc->active_list);
-	INIT_LIST_HEAD(&dpu_crtc->dirty_list);
-	INIT_LIST_HEAD(&dpu_crtc->feature_list);
-	INIT_LIST_HEAD(&dpu_crtc->ad_dirty);
-	INIT_LIST_HEAD(&dpu_crtc->ad_active);
-}
-
-static void dpu_cp_crtc_install_immutable_property(struct drm_crtc *crtc,
-						   char *name,
-						   u32 feature)
-{
-	struct drm_property *prop;
-	struct dpu_cp_node *prop_node = NULL;
-	struct msm_drm_private *priv;
-	struct dpu_cp_prop_attach prop_attach;
-	uint64_t val = 0;
-
-	if (feature >=  DPU_CP_CRTC_MAX_FEATURES) {
-		DRM_ERROR("invalid feature %d max %d\n", feature,
-		       DPU_CP_CRTC_MAX_FEATURES);
-		return;
-	}
-
-	prop_node = kzalloc(sizeof(*prop_node), GFP_KERNEL);
-	if (!prop_node)
-		return;
-
-	priv = crtc->dev->dev_private;
-	prop = priv->cp_property[feature];
-
-	if (!prop) {
-		prop = drm_property_create_range(crtc->dev,
-				DRM_MODE_PROP_IMMUTABLE, name, 0, 1);
-		if (!prop) {
-			DRM_ERROR("property create failed: %s\n", name);
-			kfree(prop_node);
-			return;
-		}
-		priv->cp_property[feature] = prop;
-	}
-
-	INIT_PROP_ATTACH(&prop_attach, crtc, prop, prop_node,
-				feature, val);
-	dpu_cp_crtc_prop_attach(&prop_attach);
-}
-
-static void dpu_cp_crtc_install_range_property(struct drm_crtc *crtc,
-					     char *name,
-					     u32 feature,
-					     uint64_t min, uint64_t max,
-					     uint64_t val)
-{
-	struct drm_property *prop;
-	struct dpu_cp_node *prop_node = NULL;
-	struct msm_drm_private *priv;
-	struct dpu_cp_prop_attach prop_attach;
-
-	if (feature >=  DPU_CP_CRTC_MAX_FEATURES) {
-		DRM_ERROR("invalid feature %d max %d\n", feature,
-			  DPU_CP_CRTC_MAX_FEATURES);
-		return;
-	}
-
-	prop_node = kzalloc(sizeof(*prop_node), GFP_KERNEL);
-	if (!prop_node)
-		return;
-
-	priv = crtc->dev->dev_private;
-	prop = priv->cp_property[feature];
-
-	if (!prop) {
-		prop = drm_property_create_range(crtc->dev, 0, name, min, max);
-		if (!prop) {
-			DRM_ERROR("property create failed: %s\n", name);
-			kfree(prop_node);
-			return;
-		}
-		priv->cp_property[feature] = prop;
-	}
-
-	INIT_PROP_ATTACH(&prop_attach, crtc, prop, prop_node,
-				feature, val);
-
-	dpu_cp_crtc_prop_attach(&prop_attach);
-}
-
-static void dpu_cp_crtc_install_blob_property(struct drm_crtc *crtc, char *name,
-			u32 feature, u32 blob_sz)
-{
-	struct drm_property *prop;
-	struct dpu_cp_node *prop_node = NULL;
-	struct msm_drm_private *priv;
-	uint64_t val = 0;
-	struct dpu_cp_prop_attach prop_attach;
-
-	if (feature >=  DPU_CP_CRTC_MAX_FEATURES) {
-		DRM_ERROR("invalid feature %d max %d\n", feature,
-		       DPU_CP_CRTC_MAX_FEATURES);
-		return;
-	}
-
-	prop_node = kzalloc(sizeof(*prop_node), GFP_KERNEL);
-	if (!prop_node)
-		return;
-
-	priv = crtc->dev->dev_private;
-	prop = priv->cp_property[feature];
-
-	if (!prop) {
-		prop = drm_property_create(crtc->dev,
-					   DRM_MODE_PROP_BLOB, name, 0);
-		if (!prop) {
-			DRM_ERROR("property create failed: %s\n", name);
-			kfree(prop_node);
-			return;
-		}
-		priv->cp_property[feature] = prop;
-	}
-
-	INIT_PROP_ATTACH(&prop_attach, crtc, prop, prop_node,
-				feature, val);
-	prop_node->prop_blob_sz = blob_sz;
-
-	dpu_cp_crtc_prop_attach(&prop_attach);
-}
-
-static void dpu_cp_crtc_install_enum_property(struct drm_crtc *crtc,
-	u32 feature, const struct drm_prop_enum_list *list, u32 enum_sz,
-	char *name)
-{
-	struct drm_property *prop;
-	struct dpu_cp_node *prop_node = NULL;
-	struct msm_drm_private *priv;
-	uint64_t val = 0;
-	struct dpu_cp_prop_attach prop_attach;
-
-	if (feature >=  DPU_CP_CRTC_MAX_FEATURES) {
-		DRM_ERROR("invalid feature %d max %d\n", feature,
-		       DPU_CP_CRTC_MAX_FEATURES);
-		return;
-	}
-
-	prop_node = kzalloc(sizeof(*prop_node), GFP_KERNEL);
-	if (!prop_node)
-		return;
-
-	priv = crtc->dev->dev_private;
-	prop = priv->cp_property[feature];
-
-	if (!prop) {
-		prop = drm_property_create_enum(crtc->dev, 0, name,
-			list, enum_sz);
-		if (!prop) {
-			DRM_ERROR("property create failed: %s\n", name);
-			kfree(prop_node);
-			return;
-		}
-		priv->cp_property[feature] = prop;
-	}
-
-	INIT_PROP_ATTACH(&prop_attach, crtc, prop, prop_node,
-				feature, val);
-
-	dpu_cp_crtc_prop_attach(&prop_attach);
-}
-
-static void dpu_cp_crtc_setfeature(struct dpu_cp_node *prop_node,
-				   struct dpu_crtc *dpu_crtc)
-{
-	struct dpu_hw_cp_cfg hw_cfg;
-	struct dpu_hw_mixer *hw_lm;
-	struct dpu_hw_dspp *hw_dspp;
-	u32 num_mixers = dpu_crtc->num_mixers;
-	int i = 0;
-	bool feature_enabled = false;
-	int ret = 0;
-	struct dpu_ad_hw_cfg ad_cfg;
-
-	dpu_cp_get_hw_payload(prop_node, &hw_cfg, &feature_enabled);
-	hw_cfg.num_of_mixers = dpu_crtc->num_mixers;
-	hw_cfg.displayh = dpu_crtc->base.mode.hdisplay;
-	hw_cfg.displayv = dpu_crtc->base.mode.vdisplay;
-	hw_cfg.last_feature = 0;
-
-	for (i = 0; i < num_mixers && !ret; i++) {
-		hw_lm = dpu_crtc->mixers[i].hw_lm;
-		hw_dspp = dpu_crtc->mixers[i].hw_dspp;
-		hw_cfg.ctl = dpu_crtc->mixers[i].hw_ctl;
-		hw_cfg.mixer_info = hw_lm;
-		switch (prop_node->feature) {
-		case DPU_CP_CRTC_DSPP_VLUT:
-			if (!hw_dspp || !hw_dspp->ops.setup_vlut) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_vlut(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_PCC:
-			if (!hw_dspp || !hw_dspp->ops.setup_pcc) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_pcc(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_IGC:
-			if (!hw_dspp || !hw_dspp->ops.setup_igc) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_igc(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_GC:
-			if (!hw_dspp || !hw_dspp->ops.setup_gc) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_gc(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_HUE:
-			if (!hw_dspp || !hw_dspp->ops.setup_hue) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_hue(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_SAT:
-			if (!hw_dspp || !hw_dspp->ops.setup_sat) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_sat(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_VAL:
-			if (!hw_dspp || !hw_dspp->ops.setup_val) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_val(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_CONT:
-			if (!hw_dspp || !hw_dspp->ops.setup_cont) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_cont(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_MEMCOLOR:
-			if (!hw_dspp || !hw_dspp->ops.setup_pa_memcolor) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_pa_memcolor(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_SIXZONE:
-			if (!hw_dspp || !hw_dspp->ops.setup_sixzone) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_sixzone(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_GAMUT:
-			if (!hw_dspp || !hw_dspp->ops.setup_gamut) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_dspp->ops.setup_gamut(hw_dspp, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_LM_GC:
-			if (!hw_lm || !hw_lm->ops.setup_gc) {
-				ret = -EINVAL;
-				continue;
-			}
-			hw_lm->ops.setup_gc(hw_lm, &hw_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_MODE:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_MODE;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_INIT:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_INIT;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_CFG:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_CFG;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_INPUT:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_INPUT;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_ASSERTIVENESS:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_ASSERTIVE;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		case DPU_CP_CRTC_DSPP_AD_BACKLIGHT:
-			if (!hw_dspp || !hw_dspp->ops.setup_ad) {
-				ret = -EINVAL;
-				continue;
-			}
-			ad_cfg.prop = AD_BACKLIGHT;
-			ad_cfg.hw_cfg = &hw_cfg;
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-			break;
-		default:
-			ret = -EINVAL;
-			break;
-		}
-	}
-
-	if (ret) {
-		DRM_ERROR("failed to %s feature %d\n",
-			((feature_enabled) ? "enable" : "disable"),
-			prop_node->feature);
-		return;
-	}
-
-	if (feature_enabled) {
-		DRM_DEBUG_DRIVER("Add feature to active list %d\n",
-				 prop_node->property_id);
-		dpu_cp_update_list(prop_node, dpu_crtc, false);
-	} else {
-		DRM_DEBUG_DRIVER("remove feature from active list %d\n",
-			 prop_node->property_id);
-		list_del_init(&prop_node->active_list);
-	}
-	/* Programming of feature done remove from dirty list */
-	list_del_init(&prop_node->dirty_list);
-}
-
-void dpu_cp_crtc_apply_properties(struct drm_crtc *crtc)
-{
-	struct dpu_crtc *dpu_crtc = NULL;
-	bool set_dspp_flush = false, set_lm_flush = false;
-	struct dpu_cp_node *prop_node = NULL, *n = NULL;
-	struct dpu_hw_ctl *ctl;
-	uint32_t flush_mask = 0;
-	u32 num_mixers = 0, i = 0;
-
-	if (!crtc || !crtc->dev) {
-		DRM_ERROR("invalid crtc %pK dev %pK\n", crtc,
-			  (crtc ? crtc->dev : NULL));
-		return;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	num_mixers = dpu_crtc->num_mixers;
-	if (!num_mixers) {
-		DRM_DEBUG_DRIVER("no mixers for this crtc\n");
-		return;
-	}
-
-	/* Check if dirty lists are empty and ad features are disabled for
-	 * early return. If ad properties are active then we need to issue
-	 * dspp flush.
-	 **/
-	if (list_empty(&dpu_crtc->dirty_list) &&
-		list_empty(&dpu_crtc->ad_dirty)) {
-		if (list_empty(&dpu_crtc->ad_active)) {
-			DRM_DEBUG_DRIVER("Dirty list is empty\n");
-			return;
-		}
-		dpu_cp_ad_set_prop(dpu_crtc, AD_IPC_RESET);
-		set_dspp_flush = true;
-	}
-
-	list_for_each_entry_safe(prop_node, n, &dpu_crtc->dirty_list,
-				dirty_list) {
-		dpu_cp_crtc_setfeature(prop_node, dpu_crtc);
-		/* Set the flush flag to true */
-		if (prop_node->is_dspp_feature)
-			set_dspp_flush = true;
-		else
-			set_lm_flush = true;
-	}
-
-	list_for_each_entry_safe(prop_node, n, &dpu_crtc->ad_dirty,
-				dirty_list) {
-		set_dspp_flush = true;
-		dpu_cp_crtc_setfeature(prop_node, dpu_crtc);
-	}
-
-	for (i = 0; i < num_mixers; i++) {
-		ctl = dpu_crtc->mixers[i].hw_ctl;
-		if (!ctl)
-			continue;
-		if (set_dspp_flush && ctl->ops.get_bitmask_dspp
-				&& dpu_crtc->mixers[i].hw_dspp) {
-			ctl->ops.get_bitmask_dspp(ctl,
-					&flush_mask,
-					dpu_crtc->mixers[i].hw_dspp->idx);
-			ctl->ops.update_pending_flush(ctl, flush_mask);
-		}
-		if (set_lm_flush && ctl->ops.get_bitmask_mixer
-				&& dpu_crtc->mixers[i].hw_lm) {
-			flush_mask = ctl->ops.get_bitmask_mixer(ctl,
-					dpu_crtc->mixers[i].hw_lm->idx);
-			ctl->ops.update_pending_flush(ctl, flush_mask);
-		}
-	}
-}
-
-void dpu_cp_crtc_install_properties(struct drm_crtc *crtc)
-{
-	struct dpu_kms *kms = NULL;
-	struct dpu_crtc *dpu_crtc = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	unsigned long features = 0;
-	int i = 0;
-	struct msm_drm_private *priv;
-
-	if (!crtc || !crtc->dev || !crtc->dev->dev_private) {
-		DRM_ERROR("invalid crtc %pK dev %pK\n",
-		       crtc, ((crtc) ? crtc->dev : NULL));
-		return;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	kms = get_kms(crtc);
-	if (!kms || !kms->catalog) {
-		DRM_ERROR("invalid dpu kms %pK catalog %pK dpu_crtc %pK\n",
-		 kms, ((kms) ? kms->catalog : NULL), dpu_crtc);
-		return;
-	}
-
-	/**
-	 * Function can be called during the atomic_check with test_only flag
-	 * and actual commit. Allocate properties only if feature list is
-	 * empty during the atomic_check with test_only flag.
-	 */
-	if (!list_empty(&dpu_crtc->feature_list))
-		return;
-
-	catalog = kms->catalog;
-	priv = crtc->dev->dev_private;
-	/**
-	 * DSPP/LM properties are global to all the CRTCS.
-	 * Properties are created for first CRTC and re-used for later
-	 * crtcs.
-	 */
-	if (!priv->cp_property) {
-		priv->cp_property = kzalloc((sizeof(priv->cp_property) *
-				DPU_CP_CRTC_MAX_FEATURES), GFP_KERNEL);
-		setup_dspp_prop_install_funcs(dspp_prop_install_func);
-		setup_lm_prop_install_funcs(lm_prop_install_func);
-	}
-	if (!priv->cp_property)
-		return;
-
-	if (!catalog->dspp_count)
-		goto lm_property;
-
-	/* Check for all the DSPP properties and attach it to CRTC */
-	features = catalog->dspp[0].features;
-	for (i = 0; i < DPU_DSPP_MAX; i++) {
-		if (!test_bit(i, &features))
-			continue;
-		if (dspp_prop_install_func[i])
-			dspp_prop_install_func[i](crtc);
-	}
-
-lm_property:
-	if (!catalog->mixer_count)
-		return;
-
-	/* Check for all the LM properties and attach it to CRTC */
-	features = catalog->mixer[0].features;
-	for (i = 0; i < DPU_MIXER_MAX; i++) {
-		if (!test_bit(i, &features))
-			continue;
-		if (lm_prop_install_func[i])
-			lm_prop_install_func[i](crtc);
-	}
-}
-
-int dpu_cp_crtc_set_property(struct drm_crtc *crtc,
-				struct drm_property *property,
-				uint64_t val)
-{
-	struct dpu_cp_node *prop_node = NULL;
-	struct dpu_crtc *dpu_crtc = NULL;
-	int ret = 0, i = 0, dspp_cnt, lm_cnt;
-	u8 found = 0;
-
-	if (!crtc || !property) {
-		DRM_ERROR("invalid crtc %pK property %pK\n", crtc, property);
-		return -EINVAL;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return -EINVAL;
-	}
-
-	list_for_each_entry(prop_node, &dpu_crtc->feature_list, feature_list) {
-		if (property->base.id == prop_node->property_id) {
-			found = 1;
-			break;
-		}
-	}
-
-	if (!found)
-		return 0;
-	/**
-	 * dpu_crtc is virtual ensure that hardware has been attached to the
-	 * crtc. Check LM and dspp counts based on whether feature is a
-	 * dspp/lm feature.
-	 */
-	if (!dpu_crtc->num_mixers ||
-	    dpu_crtc->num_mixers > ARRAY_SIZE(dpu_crtc->mixers)) {
-		DRM_ERROR("Invalid mixer config act cnt %d max cnt %zd\n",
-			dpu_crtc->num_mixers, ARRAY_SIZE(dpu_crtc->mixers));
-		return -EINVAL;
-	}
-
-	dspp_cnt = 0;
-	lm_cnt = 0;
-	for (i = 0; i < dpu_crtc->num_mixers; i++) {
-		if (dpu_crtc->mixers[i].hw_dspp)
-			dspp_cnt++;
-		if (dpu_crtc->mixers[i].hw_lm)
-			lm_cnt++;
-	}
-
-	if (prop_node->is_dspp_feature && dspp_cnt < dpu_crtc->num_mixers) {
-		DRM_ERROR("invalid dspp cnt %d mixer cnt %d\n", dspp_cnt,
-			dpu_crtc->num_mixers);
-		return -EINVAL;
-	} else if (lm_cnt < dpu_crtc->num_mixers) {
-		DRM_ERROR("invalid lm cnt %d mixer cnt %d\n", lm_cnt,
-			dpu_crtc->num_mixers);
-		return -EINVAL;
-	}
-
-	ret = dpu_cp_ad_validate_prop(prop_node, dpu_crtc);
-	if (ret) {
-		DRM_ERROR("ad property validation failed ret %d\n", ret);
-		return ret;
-	}
-
-	/* remove the property from dirty list */
-	list_del_init(&prop_node->dirty_list);
-
-	if (!val)
-		ret = dpu_cp_disable_crtc_property(crtc, property, prop_node);
-	else
-		ret = dpu_cp_enable_crtc_property(crtc, property,
-						  prop_node, val);
-
-	if (!ret) {
-		/* remove the property from active list */
-		list_del_init(&prop_node->active_list);
-		/* Mark the feature as dirty */
-		dpu_cp_update_list(prop_node, dpu_crtc, true);
-	}
-	return ret;
-}
-
-int dpu_cp_crtc_get_property(struct drm_crtc *crtc,
-			     struct drm_property *property, uint64_t *val)
-{
-	struct dpu_cp_node *prop_node = NULL;
-	struct dpu_crtc *dpu_crtc = NULL;
-
-	if (!crtc || !property || !val) {
-		DRM_ERROR("invalid crtc %pK property %pK val %pK\n",
-			  crtc, property, val);
-		return -EINVAL;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return -EINVAL;
-	}
-	/* Return 0 if property is not supported */
-	*val = 0;
-	list_for_each_entry(prop_node, &dpu_crtc->feature_list, feature_list) {
-		if (property->base.id == prop_node->property_id) {
-			*val = prop_node->prop_val;
-			break;
-		}
-	}
-	return 0;
-}
-
-void dpu_cp_crtc_destroy_properties(struct drm_crtc *crtc)
-{
-	struct dpu_crtc *dpu_crtc = NULL;
-	struct dpu_cp_node *prop_node = NULL, *n = NULL;
-
-	if (!crtc) {
-		DRM_ERROR("invalid crtc %pK\n", crtc);
-		return;
-	}
-
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	list_for_each_entry_safe(prop_node, n, &dpu_crtc->feature_list,
-				 feature_list) {
-		if (prop_node->prop_flags & DRM_MODE_PROP_BLOB
-		    && prop_node->blob_ptr)
-			drm_property_blob_put(prop_node->blob_ptr);
-
-		list_del_init(&prop_node->active_list);
-		list_del_init(&prop_node->dirty_list);
-		list_del_init(&prop_node->feature_list);
-		dpu_cp_destroy_local_blob(prop_node);
-		kfree(prop_node);
-	}
-
-	INIT_LIST_HEAD(&dpu_crtc->active_list);
-	INIT_LIST_HEAD(&dpu_crtc->dirty_list);
-	INIT_LIST_HEAD(&dpu_crtc->feature_list);
-}
-
-void dpu_cp_crtc_suspend(struct drm_crtc *crtc)
-{
-	struct dpu_crtc *dpu_crtc = NULL;
-	struct dpu_cp_node *prop_node = NULL, *n = NULL;
-
-	if (!crtc) {
-		DRM_ERROR("crtc %pK\n", crtc);
-		return;
-	}
-	dpu_crtc = to_dpu_crtc(crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	list_for_each_entry_safe(prop_node, n, &dpu_crtc->active_list,
-				 active_list) {
-		dpu_cp_update_list(prop_node, dpu_crtc, true);
-		list_del_init(&prop_node->active_list);
-	}
-
-	list_for_each_entry_safe(prop_node, n, &dpu_crtc->ad_active,
-				 active_list) {
-		dpu_cp_update_list(prop_node, dpu_crtc, true);
-		list_del_init(&prop_node->active_list);
-	}
-}
-
-void dpu_cp_crtc_resume(struct drm_crtc *crtc)
-{
-	/* placeholder for operations needed during resume */
-}
-
-static void dspp_pcc_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-
-	version = catalog->dspp[0].sblk->pcc.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_PCC_V", version);
-	switch (version) {
-	case 1:
-	case 4:
-		dpu_cp_crtc_install_blob_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_PCC, sizeof(struct drm_msm_pcc));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_hsic_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-	version = catalog->dspp[0].sblk->hsic.version >> 16;
-	switch (version) {
-	case 1:
-		snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-			"DPU_DSPP_HUE_V", version);
-		dpu_cp_crtc_install_range_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_HUE, 0, U32_MAX, 0);
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_vlut_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-	version = catalog->dspp[0].sblk->vlut.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_VLUT_V", version);
-	switch (version) {
-	case 1:
-		dpu_cp_crtc_install_range_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_VLUT, 0, U64_MAX, 0);
-		dpu_cp_create_local_blob(crtc,
-			DPU_CP_CRTC_DSPP_VLUT,
-			sizeof(struct drm_msm_pa_vlut));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_ad_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-	version = catalog->dspp[0].sblk->ad.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_AD_V", version);
-	switch (version) {
-	case 3:
-		dpu_cp_crtc_install_immutable_property(crtc,
-			feature_name, DPU_CP_CRTC_DSPP_AD);
-		break;
-	case 4:
-		dpu_cp_crtc_install_immutable_property(crtc,
-			feature_name, DPU_CP_CRTC_DSPP_AD);
-
-		dpu_cp_crtc_install_enum_property(crtc,
-			DPU_CP_CRTC_DSPP_AD_MODE, ad4_modes,
-			ARRAY_SIZE(ad4_modes), "DPU_DSPP_AD_V4_MODE");
-
-		dpu_cp_crtc_install_range_property(crtc, "DPU_DSPP_AD_V4_INIT",
-			DPU_CP_CRTC_DSPP_AD_INIT, 0, U64_MAX, 0);
-		dpu_cp_create_local_blob(crtc, DPU_CP_CRTC_DSPP_AD_INIT,
-			sizeof(struct drm_msm_ad4_init));
-
-		dpu_cp_crtc_install_range_property(crtc, "DPU_DSPP_AD_V4_CFG",
-			DPU_CP_CRTC_DSPP_AD_CFG, 0, U64_MAX, 0);
-		dpu_cp_create_local_blob(crtc, DPU_CP_CRTC_DSPP_AD_CFG,
-			sizeof(struct drm_msm_ad4_cfg));
-		dpu_cp_crtc_install_range_property(crtc,
-			"DPU_DSPP_AD_V4_ASSERTIVENESS",
-			DPU_CP_CRTC_DSPP_AD_ASSERTIVENESS, 0, (BIT(8) - 1), 0);
-		dpu_cp_crtc_install_range_property(crtc, "DPU_DSPP_AD_V4_INPUT",
-			DPU_CP_CRTC_DSPP_AD_INPUT, 0, U16_MAX, 0);
-		dpu_cp_crtc_install_range_property(crtc,
-				"DPU_DSPP_AD_V4_BACKLIGHT",
-			DPU_CP_CRTC_DSPP_AD_BACKLIGHT, 0, (BIT(16) - 1),
-			0);
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void lm_gc_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-	version = catalog->mixer[0].sblk->gc.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		 "DPU_LM_GC_V", version);
-	switch (version) {
-	case 1:
-		dpu_cp_crtc_install_blob_property(crtc, feature_name,
-			DPU_CP_CRTC_LM_GC, sizeof(struct drm_msm_pgc_lut));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_gamut_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-
-	version = catalog->dspp[0].sblk->gamut.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_GAMUT_V", version);
-	switch (version) {
-	case 4:
-		dpu_cp_crtc_install_blob_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_GAMUT,
-			sizeof(struct drm_msm_3d_gamut));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_gc_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-
-	version = catalog->dspp[0].sblk->gc.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_GC_V", version);
-	switch (version) {
-	case 1:
-		dpu_cp_crtc_install_blob_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_GC, sizeof(struct drm_msm_pgc_lut));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dspp_igc_install_property(struct drm_crtc *crtc)
-{
-	char feature_name[256];
-	struct dpu_kms *kms = NULL;
-	struct dpu_mdss_cfg *catalog = NULL;
-	u32 version;
-
-	kms = get_kms(crtc);
-	catalog = kms->catalog;
-
-	version = catalog->dspp[0].sblk->igc.version >> 16;
-	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
-		"DPU_DSPP_IGC_V", version);
-	switch (version) {
-	case 3:
-		dpu_cp_crtc_install_blob_property(crtc, feature_name,
-			DPU_CP_CRTC_DSPP_IGC, sizeof(struct drm_msm_igc_lut));
-		break;
-	default:
-		DRM_ERROR("version %d not supported\n", version);
-		break;
-	}
-}
-
-static void dpu_cp_update_list(struct dpu_cp_node *prop_node,
-		struct dpu_crtc *crtc, bool dirty_list)
-{
-	switch (prop_node->feature) {
-	case DPU_CP_CRTC_DSPP_AD_MODE:
-	case DPU_CP_CRTC_DSPP_AD_INIT:
-	case DPU_CP_CRTC_DSPP_AD_CFG:
-	case DPU_CP_CRTC_DSPP_AD_INPUT:
-	case DPU_CP_CRTC_DSPP_AD_ASSERTIVENESS:
-	case DPU_CP_CRTC_DSPP_AD_BACKLIGHT:
-		if (dirty_list)
-			list_add_tail(&prop_node->dirty_list, &crtc->ad_dirty);
-		else
-			list_add_tail(&prop_node->active_list,
-					&crtc->ad_active);
-		break;
-	default:
-		/* color processing properties handle here */
-		if (dirty_list)
-			list_add_tail(&prop_node->dirty_list,
-					&crtc->dirty_list);
-		else
-			list_add_tail(&prop_node->active_list,
-					&crtc->active_list);
-		break;
-	};
-}
-
-static int dpu_cp_ad_validate_prop(struct dpu_cp_node *prop_node,
-		struct dpu_crtc *crtc)
-{
-	int i = 0, ret = 0;
-	u32 ad_prop;
-
-	for (i = 0; i < crtc->num_mixers && !ret; i++) {
-		if (!crtc->mixers[i].hw_dspp) {
-			ret = -EINVAL;
-			continue;
-		}
-		switch (prop_node->feature) {
-		case DPU_CP_CRTC_DSPP_AD_MODE:
-			ad_prop = AD_MODE;
-			break;
-		case DPU_CP_CRTC_DSPP_AD_INIT:
-			ad_prop = AD_INIT;
-			break;
-		case DPU_CP_CRTC_DSPP_AD_CFG:
-			ad_prop = AD_CFG;
-			break;
-		case DPU_CP_CRTC_DSPP_AD_INPUT:
-			ad_prop = AD_INPUT;
-			break;
-		case DPU_CP_CRTC_DSPP_AD_ASSERTIVENESS:
-			ad_prop = AD_ASSERTIVE;
-			break;
-		case DPU_CP_CRTC_DSPP_AD_BACKLIGHT:
-			ad_prop = AD_BACKLIGHT;
-			break;
-		default:
-			/* Not an AD property */
-			return 0;
-		}
-		if (!crtc->mixers[i].hw_dspp->ops.validate_ad)
-			ret = -EINVAL;
-		else
-			ret = crtc->mixers[i].hw_dspp->ops.validate_ad(
-				crtc->mixers[i].hw_dspp, &ad_prop);
-	}
-	return ret;
-}
-
-static void dpu_cp_ad_interrupt_cb(void *arg, int irq_idx)
-{
-	struct dpu_crtc *crtc = arg;
-
-	dpu_crtc_event_queue(&crtc->base, dpu_cp_notify_ad_event, NULL);
-}
-
-static void dpu_cp_notify_ad_event(struct drm_crtc *crtc_drm, void *arg)
-{
-	uint32_t bl = 0;
-	struct dpu_hw_mixer *hw_lm = NULL;
-	struct dpu_hw_dspp *hw_dspp = NULL;
-	u32 num_mixers;
-	struct dpu_crtc *crtc;
-	struct drm_event event;
-	int i;
-
-	crtc = to_dpu_crtc(crtc_drm);
-	num_mixers = crtc->num_mixers;
-	if (!num_mixers)
-		return;
-
-	for (i = 0; i < num_mixers; i++) {
-		hw_lm = crtc->mixers[i].hw_lm;
-		hw_dspp = crtc->mixers[i].hw_dspp;
-		if (!hw_lm->cfg.right_mixer)
-			break;
-	}
-
-	if (!hw_dspp)
-		return;
-
-	hw_dspp->ops.ad_read_intr_resp(hw_dspp, AD4_BACKLIGHT, &bl);
-	event.length = sizeof(u32);
-	event.type = DRM_EVENT_AD_BACKLIGHT;
-	msm_mode_object_event_notify(&crtc_drm->base, crtc_drm->dev,
-			&event, (u8 *)&bl);
-}
-
-int dpu_cp_ad_interrupt(struct drm_crtc *crtc_drm, bool en,
-	struct dpu_irq_callback *ad_irq)
-{
-	struct dpu_kms *kms = NULL;
-	u32 num_mixers;
-	struct dpu_hw_mixer *hw_lm;
-	struct dpu_hw_dspp *hw_dspp = NULL;
-	struct dpu_crtc *crtc;
-	int i;
-	int irq_idx, ret;
-	struct dpu_cp_node prop_node;
-
-	if (!crtc_drm || !ad_irq) {
-		DRM_ERROR("invalid crtc %pK irq %pK\n", crtc_drm, ad_irq);
-		return -EINVAL;
-	}
-
-	crtc = to_dpu_crtc(crtc_drm);
-	if (!crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", crtc);
-		return -EINVAL;
-	}
-
-	kms = get_kms(crtc_drm);
-	num_mixers = crtc->num_mixers;
-
-	memset(&prop_node, 0, sizeof(prop_node));
-	prop_node.feature = DPU_CP_CRTC_DSPP_AD_BACKLIGHT;
-	ret = dpu_cp_ad_validate_prop(&prop_node, crtc);
-	if (ret) {
-		DRM_ERROR("Ad not supported ret %d\n", ret);
-		goto exit;
-	}
-
-	for (i = 0; i < num_mixers; i++) {
-		hw_lm = crtc->mixers[i].hw_lm;
-		hw_dspp = crtc->mixers[i].hw_dspp;
-		if (!hw_lm->cfg.right_mixer)
-			break;
-	}
-
-	if (!hw_dspp) {
-		DRM_ERROR("invalid dspp\n");
-		ret = -EINVAL;
-		goto exit;
-	}
-
-	irq_idx = dpu_core_irq_idx_lookup(kms, DPU_IRQ_TYPE_AD4_BL_DONE,
-			hw_dspp->idx);
-	if (irq_idx < 0) {
-		DRM_ERROR("failed to get the irq idx ret %d\n", irq_idx);
-		ret = irq_idx;
-		goto exit;
-	}
-
-	if (!en) {
-		dpu_core_irq_disable(kms, &irq_idx, 1);
-		dpu_core_irq_unregister_callback(kms, irq_idx, ad_irq);
-		ret = 0;
-		goto exit;
-	}
-
-	ad_irq->arg = crtc;
-	ad_irq->func = dpu_cp_ad_interrupt_cb;
-	ret = dpu_core_irq_register_callback(kms, irq_idx, ad_irq);
-	if (ret) {
-		DRM_ERROR("failed to register the callback ret %d\n", ret);
-		goto exit;
-	}
-	ret = dpu_core_irq_enable(kms, &irq_idx, 1);
-	if (ret) {
-		DRM_ERROR("failed to enable irq ret %d\n", ret);
-		dpu_core_irq_unregister_callback(kms, irq_idx, ad_irq);
-	}
-exit:
-	return ret;
-}
-
-static void dpu_cp_ad_set_prop(struct dpu_crtc *dpu_crtc,
-		enum ad_property ad_prop)
-{
-	struct dpu_ad_hw_cfg ad_cfg;
-	struct dpu_hw_cp_cfg hw_cfg;
-	struct dpu_hw_dspp *hw_dspp = NULL;
-	struct dpu_hw_mixer *hw_lm = NULL;
-	u32 num_mixers = dpu_crtc->num_mixers;
-	int i = 0, ret = 0;
-
-	hw_cfg.num_of_mixers = dpu_crtc->num_mixers;
-	hw_cfg.displayh = dpu_crtc->base.mode.hdisplay;
-	hw_cfg.displayv = dpu_crtc->base.mode.vdisplay;
-
-	for (i = 0; i < num_mixers && !ret; i++) {
-		hw_lm = dpu_crtc->mixers[i].hw_lm;
-		hw_dspp = dpu_crtc->mixers[i].hw_dspp;
-		if (!hw_lm || !hw_dspp || !hw_dspp->ops.validate_ad ||
-				!hw_dspp->ops.setup_ad) {
-			ret = -EINVAL;
-			continue;
-		}
-
-		hw_cfg.mixer_info = hw_lm;
-		ad_cfg.prop = ad_prop;
-		ad_cfg.hw_cfg = &hw_cfg;
-		ret = hw_dspp->ops.validate_ad(hw_dspp, (u32 *)&ad_prop);
-		if (!ret)
-			hw_dspp->ops.setup_ad(hw_dspp, &ad_cfg);
-	}
-}
-
-void dpu_cp_crtc_pre_ipc(struct drm_crtc *drm_crtc)
-{
-	struct dpu_crtc *dpu_crtc;
-
-	dpu_crtc = to_dpu_crtc(drm_crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	dpu_cp_ad_set_prop(dpu_crtc, AD_IPC_SUSPEND);
-}
-
-void dpu_cp_crtc_post_ipc(struct drm_crtc *drm_crtc)
-{
-	struct dpu_crtc *dpu_crtc;
-
-	dpu_crtc = to_dpu_crtc(drm_crtc);
-	if (!dpu_crtc) {
-		DRM_ERROR("invalid dpu_crtc %pK\n", dpu_crtc);
-		return;
-	}
-
-	dpu_cp_ad_set_prop(dpu_crtc, AD_IPC_RESUME);
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.h
deleted file mode 100644
index 0fa546c..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _DPU_COLOR_PROCESSING_H
-#define _DPU_COLOR_PROCESSING_H
-#include <drm/drm_crtc.h>
-
-struct dpu_irq_callback;
-
-/*
- * PA MEMORY COLOR types
- * @MEMCOLOR_SKIN          Skin memory color type
- * @MEMCOLOR_SKY           Sky memory color type
- * @MEMCOLOR_FOLIAGE       Foliage memory color type
- */
-enum dpu_memcolor_type {
-	MEMCOLOR_SKIN = 0,
-	MEMCOLOR_SKY,
-	MEMCOLOR_FOLIAGE
-};
-
-/**
- * dpu_cp_crtc_init(): Initialize color processing lists for a crtc.
- *                     Should be called during crtc initialization.
- * @crtc:  Pointer to dpu_crtc.
- */
-void dpu_cp_crtc_init(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_install_properties(): Installs the color processing
- *                                properties for a crtc.
- *                                Should be called during crtc initialization.
- * @crtc:  Pointer to crtc.
- */
-void dpu_cp_crtc_install_properties(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_destroy_properties: Destroys color processing
- *                                            properties for a crtc.
- * should be called during crtc de-initialization.
- * @crtc:  Pointer to crtc.
- */
-void dpu_cp_crtc_destroy_properties(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_set_property: Set a color processing property
- *                                      for a crtc.
- *                                      Should be during atomic set property.
- * @crtc: Pointer to crtc.
- * @property: Property that needs to enabled/disabled.
- * @val: Value of property.
- */
-int dpu_cp_crtc_set_property(struct drm_crtc *crtc,
-				struct drm_property *property, uint64_t val);
-
-/**
- * dpu_cp_crtc_apply_properties: Enable/disable properties
- *                               for a crtc.
- *                               Should be called during atomic commit call.
- * @crtc: Pointer to crtc.
- */
-void dpu_cp_crtc_apply_properties(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_get_property: Get value of color processing property
- *                                      for a crtc.
- *                                      Should be during atomic get property.
- * @crtc: Pointer to crtc.
- * @property: Property that needs to enabled/disabled.
- * @val: Value of property.
- *
- */
-int dpu_cp_crtc_get_property(struct drm_crtc *crtc,
-				struct drm_property *property, uint64_t *val);
-
-/**
- * dpu_cp_crtc_suspend: Suspend the crtc features
- * @crtc: Pointer to crtc.
- */
-void dpu_cp_crtc_suspend(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_resume: Resume the crtc features
- * @crtc: Pointer to crtc.
- */
-void dpu_cp_crtc_resume(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_ad_interrupt: Api to enable/disable ad interrupt
- * @crtc: Pointer to crtc.
- * @en: Variable to enable/disable interrupt.
- * @irq: Pointer to irq callback
- */
-int dpu_cp_ad_interrupt(struct drm_crtc *crtc, bool en,
-		struct dpu_irq_callback *irq);
-
-/**
- * dpu_cp_crtc_pre_ipc: Handle color processing features
- *                      before entering IPC
- * @crtc: Pointer to crtc.
- */
-void dpu_cp_crtc_pre_ipc(struct drm_crtc *crtc);
-
-/**
- * dpu_cp_crtc_post_ipc: Handle color processing features
- *                       after exiting IPC
- * @crtc: Pointer to crtc.
- */
-void dpu_cp_crtc_post_ipc(struct drm_crtc *crtc);
-#endif /*_DPU_COLOR_PROCESSING_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 99c5e75..7cf5a7a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -20,7 +20,6 @@
 #include <linux/sort.h>
 #include <linux/debugfs.h>
 #include <linux/ktime.h>
-#include <uapi/drm/dpu_drm.h>
 #include <drm/drm_mode.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_crtc_helper.h>
@@ -31,13 +30,18 @@
 #include "dpu_hw_ctl.h"
 #include "dpu_crtc.h"
 #include "dpu_plane.h"
-#include "dpu_color_processing.h"
 #include "dpu_encoder.h"
 #include "dpu_vbif.h"
 #include "dpu_power_handle.h"
 #include "dpu_core_perf.h"
 #include "dpu_trace.h"
 
+#define DPU_DRM_BLEND_OP_NOT_DEFINED    0
+#define DPU_DRM_BLEND_OP_OPAQUE         1
+#define DPU_DRM_BLEND_OP_PREMULTIPLIED  2
+#define DPU_DRM_BLEND_OP_COVERAGE       3
+#define DPU_DRM_BLEND_OP_MAX            4
+
 /* layer mixer index on dpu_crtc */
 #define LEFT_MIXER 0
 #define RIGHT_MIXER 1
@@ -594,7 +598,6 @@ static void dpu_crtc_destroy(struct drm_crtc *crtc)
 	if (dpu_crtc->blob_info)
 		drm_property_blob_put(dpu_crtc->blob_info);
 	msm_property_destroy(&dpu_crtc->property_info);
-	dpu_cp_crtc_destroy_properties(crtc);
 	_dpu_crtc_destroy_dest_scaler(dpu_crtc);
 
 	_dpu_crtc_deinit_events(dpu_crtc);
@@ -622,67 +625,14 @@ static bool dpu_crtc_mode_fixup(struct drm_crtc *crtc,
 }
 
 static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
-	struct dpu_plane_state *pstate, struct dpu_format *format)
+		struct dpu_plane_state *pstate)
 {
-	uint32_t blend_op, fg_alpha, bg_alpha;
-	uint32_t blend_type;
 	struct dpu_hw_mixer *lm = mixer->hw_lm;
 
 	/* default to opaque blending */
-	fg_alpha = dpu_plane_get_property(pstate, PLANE_PROP_ALPHA);
-	bg_alpha = 0xFF - fg_alpha;
-	blend_op = DPU_BLEND_FG_ALPHA_FG_CONST | DPU_BLEND_BG_ALPHA_BG_CONST;
-	blend_type = dpu_plane_get_property(pstate, PLANE_PROP_BLEND_OP);
-
-	DPU_DEBUG("blend type:0x%x blend alpha:0x%x\n", blend_type, fg_alpha);
-
-	switch (blend_type) {
-
-	case DPU_DRM_BLEND_OP_OPAQUE:
-		blend_op = DPU_BLEND_FG_ALPHA_FG_CONST |
-			DPU_BLEND_BG_ALPHA_BG_CONST;
-		break;
-
-	case DPU_DRM_BLEND_OP_PREMULTIPLIED:
-		if (format->alpha_enable) {
-			blend_op = DPU_BLEND_FG_ALPHA_FG_CONST |
-				DPU_BLEND_BG_ALPHA_FG_PIXEL;
-			if (fg_alpha != 0xff) {
-				bg_alpha = fg_alpha;
-				blend_op |= DPU_BLEND_BG_MOD_ALPHA |
-					DPU_BLEND_BG_INV_MOD_ALPHA;
-			} else {
-				blend_op |= DPU_BLEND_BG_INV_ALPHA;
-			}
-		}
-		break;
-
-	case DPU_DRM_BLEND_OP_COVERAGE:
-		if (format->alpha_enable) {
-			blend_op = DPU_BLEND_FG_ALPHA_FG_PIXEL |
-				DPU_BLEND_BG_ALPHA_FG_PIXEL;
-			if (fg_alpha != 0xff) {
-				bg_alpha = fg_alpha;
-				blend_op |= DPU_BLEND_FG_MOD_ALPHA |
-					DPU_BLEND_FG_INV_MOD_ALPHA |
-					DPU_BLEND_BG_MOD_ALPHA |
-					DPU_BLEND_BG_INV_MOD_ALPHA;
-			} else {
-				blend_op |= DPU_BLEND_BG_INV_ALPHA;
-			}
-		}
-		break;
-	default:
-		/* do nothing */
-		break;
-	}
-
-	lm->ops.setup_blend_config(lm, pstate->stage, fg_alpha,
-						bg_alpha, blend_op);
-	DPU_DEBUG(
-		"format: %4.4s, alpha_enable %u fg alpha:0x%x bg alpha:0x%x blend_op:0x%x\n",
-		(char *) &format->base.pixel_format,
-		format->alpha_enable, fg_alpha, bg_alpha, blend_op);
+	lm->ops.setup_blend_config(lm, pstate->stage, 0XFF, 0,
+				DPU_BLEND_FG_ALPHA_FG_CONST |
+				DPU_BLEND_BG_ALPHA_BG_CONST);
 }
 
 static void _dpu_crtc_setup_dim_layer_cfg(struct drm_crtc *crtc,
@@ -857,8 +807,8 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc,
 
 		/* blend config update */
 		for (lm_idx = 0; lm_idx < dpu_crtc->num_mixers; lm_idx++) {
-			_dpu_crtc_setup_blend_cfg(mixer + lm_idx, pstate,
-								format);
+			_dpu_crtc_setup_blend_cfg(mixer + lm_idx, pstate);
+
 			mixer[lm_idx].flush_mask |= flush_mask;
 
 			if (bg_alpha_enable && !format->alpha_enable)
@@ -1819,11 +1769,10 @@ static void _dpu_crtc_setup_mixer_for_encoder(
 	struct dpu_crtc_mixer *mixer;
 	struct dpu_hw_ctl *last_valid_ctl = NULL;
 	int i;
-	struct dpu_rm_hw_iter lm_iter, ctl_iter, dspp_iter, ds_iter;
+	struct dpu_rm_hw_iter lm_iter, ctl_iter, ds_iter;
 
 	dpu_rm_init_hw_iter(&lm_iter, enc->base.id, DPU_HW_BLK_LM);
 	dpu_rm_init_hw_iter(&ctl_iter, enc->base.id, DPU_HW_BLK_CTL);
-	dpu_rm_init_hw_iter(&dspp_iter, enc->base.id, DPU_HW_BLK_DSPP);
 	dpu_rm_init_hw_iter(&ds_iter, enc->base.id, DPU_HW_BLK_DS);
 
 	/* Set up all the mixers and ctls reserved by this encoder */
@@ -1851,10 +1800,6 @@ static void _dpu_crtc_setup_mixer_for_encoder(
 			return;
 		}
 
-		/* Dspp may be null */
-		(void) dpu_rm_get_hw(rm, &dspp_iter);
-		mixer->hw_dspp = (struct dpu_hw_dspp *)dspp_iter.hw;
-
 		/* DS may be null */
 		(void) dpu_rm_get_hw(rm, &ds_iter);
 		mixer->hw_ds = (struct dpu_hw_ds *)ds_iter.hw;
@@ -1987,17 +1932,6 @@ static void dpu_crtc_atomic_begin(struct drm_crtc *crtc,
 	_dpu_crtc_dest_scaler_setup(crtc);
 
 	/*
-	 * Since CP properties use AXI buffer to program the
-	 * HW, check if context bank is in attached
-	 * state,
-	 * apply color processing properties only if
-	 * smmu state is attached,
-	 */
-	if ((smmu_state->state != DETACHED) &&
-			(smmu_state->state != DETACH_ALL_REQ))
-		dpu_cp_crtc_apply_properties(crtc);
-
-	/*
 	 * PP_DONE irq is only used by command mode for now.
 	 * It is better to request pending before FLUSH and START trigger
 	 * to make sure no pp_done irq missed.
@@ -2429,7 +2363,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg)
 {
 	struct drm_crtc *crtc = arg;
 	struct dpu_crtc *dpu_crtc;
-	struct drm_plane *plane;
 	struct drm_encoder *encoder;
 	struct dpu_crtc_mixer *m;
 	u32 i, misr_status;
@@ -2454,8 +2387,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg)
 			dpu_encoder_virt_restore(encoder);
 		}
 
-		dpu_cp_crtc_post_ipc(crtc);
-
 		for (i = 0; i < dpu_crtc->num_mixers; ++i) {
 			m = &dpu_crtc->mixers[i];
 			if (!m->hw_lm || !m->hw_lm->ops.setup_misr ||
@@ -2477,18 +2408,12 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg)
 			dpu_crtc->misr_data[i] = misr_status ? misr_status :
 							dpu_crtc->misr_data[i];
 		}
-
-		dpu_cp_crtc_pre_ipc(crtc);
 		break;
 	case DPU_POWER_EVENT_POST_DISABLE:
-		/*
-		 * set revalidate flag in planes, so it will be re-programmed
-		 * in the next frame update
+		/**
+		 * Nothing to do. All the planes on the CRTC will be
+		 * programmed for every frame
 		 */
-		drm_atomic_crtc_for_each_plane(plane, crtc)
-			dpu_plane_set_revalidate(plane, true);
-
-		dpu_cp_crtc_suspend(crtc);
 		break;
 	default:
 		DPU_DEBUG("event:%d not handled\n", event_type);
@@ -2535,7 +2460,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc)
 	/* update color processing on suspend */
 	event.type = DRM_EVENT_CRTC_POWER;
 	event.length = sizeof(u32);
-	dpu_cp_crtc_suspend(crtc);
 	power_on = 0;
 	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
 			(u8 *)&power_on);
@@ -2636,7 +2560,6 @@ static void dpu_crtc_enable(struct drm_crtc *crtc,
 	/* update color processing on resume */
 	event.type = DRM_EVENT_CRTC_POWER;
 	event.length = sizeof(u32);
-	dpu_cp_crtc_resume(crtc);
 	power_on = 1;
 	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
 			(u8 *)&power_on);
@@ -2678,82 +2601,6 @@ static int pstate_cmp(const void *a, const void *b)
 	return rc;
 }
 
-static int _dpu_crtc_excl_rect_overlap_check(struct plane_state pstates[],
-	int cnt, int curr_cnt, struct dpu_rect *excl_rect, int z_pos)
-{
-	struct dpu_rect dst_rect, intersect;
-	int i, rc = -EINVAL;
-	const struct drm_plane_state *pstate;
-
-	/* start checking from next plane */
-	for (i = curr_cnt; i < cnt; i++) {
-		pstate = pstates[i].drm_pstate;
-		POPULATE_RECT(&dst_rect, pstate->crtc_x, pstate->crtc_y,
-				pstate->crtc_w, pstate->crtc_h, false);
-		dpu_kms_rect_intersect(&dst_rect, excl_rect, &intersect);
-
-		if (intersect.w == excl_rect->w && intersect.h == excl_rect->h
-				/* next plane may be on same z-order */
-				&& z_pos != pstates[i].stage) {
-			rc = 0;
-			goto end;
-		}
-	}
-
-	DPU_ERROR("excl rect does not find top overlapping rect\n");
-end:
-	return rc;
-}
-
-/* no input validation - caller API has all the checks */
-static int _dpu_crtc_excl_dim_layer_check(struct drm_crtc_state *state,
-		struct plane_state pstates[], int cnt)
-{
-	struct dpu_crtc_state *cstate = to_dpu_crtc_state(state);
-	struct drm_display_mode *mode = &state->adjusted_mode;
-	const struct drm_plane_state *pstate;
-	struct dpu_plane_state *dpu_pstate;
-	int rc = 0, i;
-
-	/* Check dim layer rect bounds and stage */
-	for (i = 0; i < cstate->num_dim_layers; i++) {
-		if ((CHECK_LAYER_BOUNDS(cstate->dim_layer[i].rect.y,
-			cstate->dim_layer[i].rect.h, mode->vdisplay)) ||
-		    (CHECK_LAYER_BOUNDS(cstate->dim_layer[i].rect.x,
-			cstate->dim_layer[i].rect.w, mode->hdisplay)) ||
-		    (cstate->dim_layer[i].stage >= DPU_STAGE_MAX) ||
-		    (!cstate->dim_layer[i].rect.w) ||
-		    (!cstate->dim_layer[i].rect.h)) {
-			DPU_ERROR("invalid dim_layer:{%d,%d,%d,%d}, stage:%d\n",
-					cstate->dim_layer[i].rect.x,
-					cstate->dim_layer[i].rect.y,
-					cstate->dim_layer[i].rect.w,
-					cstate->dim_layer[i].rect.h,
-					cstate->dim_layer[i].stage);
-			DPU_ERROR("display: %dx%d\n", mode->hdisplay,
-					mode->vdisplay);
-			rc = -E2BIG;
-			goto end;
-		}
-	}
-
-	/* this is traversing on sorted z-order pstates */
-	for (i = 0; i < cnt; i++) {
-		pstate = pstates[i].drm_pstate;
-		dpu_pstate = to_dpu_plane_state(pstate);
-		if (dpu_pstate->excl_rect.w && dpu_pstate->excl_rect.h) {
-			/* check overlap on all top z-order */
-			rc = _dpu_crtc_excl_rect_overlap_check(pstates, cnt,
-			     i + 1, &dpu_pstate->excl_rect, pstates[i].stage);
-			if (rc)
-				goto end;
-		}
-	}
-
-end:
-	return rc;
-}
-
 static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 		struct drm_crtc_state *state)
 {
@@ -2879,10 +2726,6 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 	/* assign mixer stages based on sorted zpos property */
 	sort(pstates, cnt, sizeof(pstates[0]), pstate_cmp, NULL);
 
-	rc = _dpu_crtc_excl_dim_layer_check(state, pstates, cnt);
-	if (rc)
-		goto end;
-
 	if (!dpu_is_custom_client()) {
 		int stage_old = pstates[0].stage;
 
@@ -3302,11 +3145,8 @@ static int dpu_crtc_atomic_set_property(struct drm_crtc *crtc,
 				break;
 			}
 		} else {
-			ret = dpu_cp_crtc_set_property(crtc,
-					property, val);
-		}
-		if (ret)
 			DRM_ERROR("failed to set the property\n");
+		}
 
 		DPU_DEBUG("crtc%d %s[%d] <= 0x%llx ret=%d\n", crtc->base.id,
 				property->name, property->base.id, val, ret);
@@ -3371,9 +3211,6 @@ static int dpu_crtc_atomic_get_property(struct drm_crtc *crtc,
 				&cstate->property_state,
 				property, val);
 		if (ret)
-			ret = dpu_cp_crtc_get_property(crtc,
-				property, val);
-		if (ret)
 			DRM_ERROR("get property failed\n");
 	}
 	return ret;
@@ -3488,10 +3325,6 @@ static int _dpu_debugfs_status_show(struct seq_file *s, void *data)
 		seq_printf(s, "\tmultirect: mode: %d index: %d\n",
 			pstate->multirect_mode, pstate->multirect_index);
 
-		seq_printf(s, "\texcl_rect: x:%4d y:%4d w:%4d h:%4d\n",
-			pstate->excl_rect.x, pstate->excl_rect.y,
-			pstate->excl_rect.w, pstate->excl_rect.h);
-
 		seq_puts(s, "\n");
 	}
 	if (dpu_crtc->vblank_cb_count) {
@@ -3935,10 +3768,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane)
 	/* Init dest scaler */
 	_dpu_crtc_dest_scaler_init(dpu_crtc, kms->catalog);
 
-	/* Install color processing properties */
-	dpu_cp_crtc_init(crtc);
-	dpu_cp_crtc_install_properties(crtc);
-
 	dpu_crtc->phandle = &kms->phandle;
 
 	DPU_DEBUG("%s: successfully initialized crtc\n", dpu_crtc->name);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
index 678bf12..763dd0c 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
@@ -20,6 +20,7 @@
 #define _DPU_CRTC_H_
 
 #include <linux/kthread.h>
+#include <uapi/drm/dpu_drm.h>
 #include <drm/drm_crtc.h>
 #include "msm_prop.h"
 #include "dpu_kms.h"
@@ -86,7 +87,6 @@ struct dpu_crtc_smmu_state_data {
  * struct dpu_crtc_mixer: stores the map for each virtual pipeline in the CRTC
  * @hw_lm:	LM HW Driver context
  * @hw_ctl:	CTL Path HW driver context
- * @hw_dspp:	DSPP HW driver context
  * @hw_ds:	DS HW driver context
  * @encoder:	Encoder attached to this lm & ctl
  * @mixer_op_mode:	mixer blending operation mode
@@ -95,7 +95,6 @@ struct dpu_crtc_smmu_state_data {
 struct dpu_crtc_mixer {
 	struct dpu_hw_mixer *hw_lm;
 	struct dpu_hw_ctl *hw_ctl;
-	struct dpu_hw_dspp *hw_dspp;
 	struct dpu_hw_ds *hw_ds;
 	struct drm_encoder *encoder;
 	u32 mixer_op_mode;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index 823e9d2..713540e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -1738,8 +1738,6 @@ static void _dpu_encoder_kickoff_phys(struct dpu_encoder_virt *dpu_enc)
 
 		if (phys->split_role != ENC_ROLE_SLAVE)
 			set_bit(i, dpu_enc->frame_busy_mask);
-		if (phys->hw_ctl->ops.reg_dma_flush)
-			phys->hw_ctl->ops.reg_dma_flush(phys->hw_ctl);
 		if (!phys->ops.needs_single_flush ||
 				!phys->ops.needs_single_flush(phys))
 			_dpu_encoder_trigger_flush(&dpu_enc->base, phys, 0x0);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c
deleted file mode 100644
index 7f81c9a..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c
+++ /dev/null
@@ -1,1443 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#include <drm/msm_drm_pp.h>
-#include "dpu_hw_catalog.h"
-#include "dpu_hw_util.h"
-#include "dpu_hw_mdss.h"
-#include "dpu_hw_lm.h"
-#include "dpu_ad4.h"
-
-#define AD_STATE_READY(x) ((x) == (ad4_init | ad4_cfg | ad4_mode | ad4_input))
-#define MERGE_WIDTH_RIGHT 6
-#define MERGE_WIDTH_LEFT 5
-#define AD_IPC_FRAME_COUNT 2
-
-enum ad4_ops_bitmask {
-	ad4_init = BIT(AD_INIT),
-	ad4_cfg = BIT(AD_CFG),
-	ad4_mode = BIT(AD_MODE),
-	ad4_input = BIT(AD_INPUT),
-	ad4_ops_max = BIT(31),
-};
-
-enum ad4_state {
-	ad4_state_idle,
-	ad4_state_startup,
-	ad4_state_run,
-	/* idle power collapse suspend state */
-	ad4_state_ipcs,
-	/* idle power collapse resume state */
-	ad4_state_ipcr,
-	ad4_state_max,
-};
-
-typedef int (*ad4_prop_setup)(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *ad);
-
-static int ad4_params_check(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-
-static int ad4_no_op_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg);
-static int ad4_setup_debug(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg);
-static int ad4_mode_setup(struct dpu_hw_dspp *dspp, enum ad4_modes mode);
-static int ad4_mode_setup_common(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_init_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg);
-static int ad4_init_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_init_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_init_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_cfg_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg);
-static int ad4_cfg_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_cfg_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_cfg_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_input_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_input_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_input_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_suspend_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_assertive_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_assertive_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_backlight_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_backlight_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-
-static int ad4_ipc_suspend_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_ipc_suspend_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_ipc_resume_setup_ipcs(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_ipc_reset_setup_startup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_ipc_reset_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-static int ad4_cfg_ipc_reset(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg);
-
-static ad4_prop_setup prop_set_func[ad4_state_max][AD_PROPMAX] = {
-	[ad4_state_idle][AD_MODE] = ad4_mode_setup_common,
-	[ad4_state_idle][AD_INIT] = ad4_init_setup_idle,
-	[ad4_state_idle][AD_CFG] = ad4_cfg_setup_idle,
-	[ad4_state_idle][AD_INPUT] = ad4_input_setup_idle,
-	[ad4_state_idle][AD_SUSPEND] = ad4_suspend_setup,
-	[ad4_state_idle][AD_ASSERTIVE] = ad4_assertive_setup,
-	[ad4_state_idle][AD_BACKLIGHT] = ad4_backlight_setup,
-	[ad4_state_idle][AD_IPC_SUSPEND] = ad4_no_op_setup,
-	[ad4_state_idle][AD_IPC_RESUME] = ad4_no_op_setup,
-	[ad4_state_idle][AD_IPC_RESET] = ad4_no_op_setup,
-
-	[ad4_state_startup][AD_MODE] = ad4_mode_setup_common,
-	[ad4_state_startup][AD_INIT] = ad4_init_setup,
-	[ad4_state_startup][AD_CFG] = ad4_cfg_setup,
-	[ad4_state_startup][AD_INPUT] = ad4_input_setup,
-	[ad4_state_startup][AD_SUSPEND] = ad4_suspend_setup,
-	[ad4_state_startup][AD_ASSERTIVE] = ad4_assertive_setup,
-	[ad4_state_startup][AD_BACKLIGHT] = ad4_backlight_setup,
-	[ad4_state_startup][AD_IPC_SUSPEND] = ad4_no_op_setup,
-	[ad4_state_startup][AD_IPC_RESUME] = ad4_no_op_setup,
-	[ad4_state_startup][AD_IPC_RESET] = ad4_ipc_reset_setup_startup,
-
-	[ad4_state_run][AD_MODE] = ad4_mode_setup_common,
-	[ad4_state_run][AD_INIT] = ad4_init_setup_run,
-	[ad4_state_run][AD_CFG] = ad4_cfg_setup_run,
-	[ad4_state_run][AD_INPUT] = ad4_input_setup,
-	[ad4_state_run][AD_SUSPEND] = ad4_suspend_setup,
-	[ad4_state_run][AD_ASSERTIVE] = ad4_assertive_setup,
-	[ad4_state_run][AD_BACKLIGHT] = ad4_backlight_setup,
-	[ad4_state_run][AD_IPC_SUSPEND] = ad4_ipc_suspend_setup_run,
-	[ad4_state_run][AD_IPC_RESUME] = ad4_no_op_setup,
-	[ad4_state_run][AD_IPC_RESET] = ad4_setup_debug,
-
-	[ad4_state_ipcs][AD_MODE] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_INIT] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_CFG] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_INPUT] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_SUSPEND] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_ASSERTIVE] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_BACKLIGHT] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_IPC_SUSPEND] = ad4_no_op_setup,
-	[ad4_state_ipcs][AD_IPC_RESUME] = ad4_ipc_resume_setup_ipcs,
-	[ad4_state_ipcs][AD_IPC_RESET] = ad4_no_op_setup,
-
-	[ad4_state_ipcr][AD_MODE] = ad4_mode_setup_common,
-	[ad4_state_ipcr][AD_INIT] = ad4_init_setup_ipcr,
-	[ad4_state_ipcr][AD_CFG] = ad4_cfg_setup_ipcr,
-	[ad4_state_ipcr][AD_INPUT] = ad4_input_setup_ipcr,
-	[ad4_state_ipcr][AD_SUSPEND] = ad4_suspend_setup,
-	[ad4_state_ipcr][AD_ASSERTIVE] = ad4_assertive_setup_ipcr,
-	[ad4_state_ipcr][AD_BACKLIGHT] = ad4_backlight_setup_ipcr,
-	[ad4_state_ipcr][AD_IPC_SUSPEND] = ad4_ipc_suspend_setup_ipcr,
-	[ad4_state_ipcr][AD_IPC_RESUME] = ad4_no_op_setup,
-	[ad4_state_ipcr][AD_IPC_RESET] = ad4_ipc_reset_setup_ipcr,
-};
-
-struct ad4_info {
-	enum ad4_state state;
-	u32 completed_ops_mask;
-	bool ad4_support;
-	enum ad4_modes mode;
-	bool is_master;
-	u32 last_assertive;
-	u32 cached_assertive;
-	u64 last_als;
-	u64 cached_als;
-	u64 last_bl;
-	u64 cached_bl;
-	u32 last_str;
-	u32 frame_count;
-	u32 frmt_mode;
-	u32 irdx_control_0;
-	u32 tf_ctrl;
-	u32 vc_control_0;
-};
-
-static struct ad4_info info[DSPP_MAX] = {
-	[DSPP_0] = {ad4_state_idle, 0, true, AD4_OFF, false, 0x80, 0x80},
-	[DSPP_1] = {ad4_state_idle, 0, true, AD4_OFF, false, 0x80, 0x80},
-	[DSPP_2] = {ad4_state_max, 0, false, AD4_OFF, false, 0x80, 0x80},
-	[DSPP_3] = {ad4_state_max, 0, false, AD4_OFF, false, 0x80, 0x80},
-};
-
-void dpu_setup_dspp_ad4(struct dpu_hw_dspp *dspp, void *ad_cfg)
-{
-	int ret = 0;
-	struct dpu_ad_hw_cfg *cfg = ad_cfg;
-
-	ret = ad4_params_check(dspp, ad_cfg);
-	if (ret)
-		return;
-
-	ret = prop_set_func[info[dspp->idx].state][cfg->prop](dspp, ad_cfg);
-	if (ret)
-		DRM_ERROR("op failed %d ret %d\n", cfg->prop, ret);
-}
-
-int dpu_validate_dspp_ad4(struct dpu_hw_dspp *dspp, u32 *prop)
-{
-
-	if (!dspp || !prop) {
-		DRM_ERROR("invalid params dspp %pK prop %pK\n", dspp, prop);
-		return -EINVAL;
-	}
-
-	if (*prop >= AD_PROPMAX) {
-		DRM_ERROR("invalid prop set %d\n", *prop);
-		return -EINVAL;
-	}
-
-	if (dspp->idx >= DSPP_MAX || !info[dspp->idx].ad4_support) {
-		DRM_ERROR("ad4 not supported for dspp idx %d\n", dspp->idx);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int ad4_params_check(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	struct dpu_hw_mixer *hw_lm;
-
-	if (!dspp || !cfg || !cfg->hw_cfg) {
-		DRM_ERROR("invalid dspp %pK cfg %pK hw_cfg %pK\n",
-			dspp, cfg, ((cfg) ? (cfg->hw_cfg) : NULL));
-		return -EINVAL;
-	}
-
-	if (!cfg->hw_cfg->mixer_info) {
-		DRM_ERROR("invalid mixed info\n");
-		return -EINVAL;
-	}
-
-	if (dspp->idx >= DSPP_MAX || !info[dspp->idx].ad4_support) {
-		DRM_ERROR("ad4 not supported for dspp idx %d\n", dspp->idx);
-		return -EINVAL;
-	}
-
-	if (cfg->prop >= AD_PROPMAX) {
-		DRM_ERROR("invalid prop set %d\n", cfg->prop);
-		return -EINVAL;
-	}
-
-	if (info[dspp->idx].state >= ad4_state_max) {
-		DRM_ERROR("in max state for dspp idx %d\n", dspp->idx);
-		return -EINVAL;
-	}
-
-	if (!prop_set_func[info[dspp->idx].state][cfg->prop]) {
-		DRM_ERROR("prop set not implemented for state %d prop %d\n",
-				info[dspp->idx].state, cfg->prop);
-		return -EINVAL;
-	}
-
-	if (!cfg->hw_cfg->num_of_mixers ||
-	    cfg->hw_cfg->num_of_mixers > CRTC_DUAL_MIXERS) {
-		DRM_ERROR("invalid mixer cnt %d\n",
-				cfg->hw_cfg->num_of_mixers);
-		return -EINVAL;
-	}
-	hw_lm = cfg->hw_cfg->mixer_info;
-	if (!hw_lm) {
-		DRM_ERROR("invalid mixer info\n");
-		return -EINVAL;
-	}
-
-	if (cfg->hw_cfg->num_of_mixers == 1 &&
-	    hw_lm->cfg.out_height != cfg->hw_cfg->displayv &&
-	    hw_lm->cfg.out_width != cfg->hw_cfg->displayh) {
-		DRM_ERROR("single_lm lmh %d lmw %d displayh %d displayw %d\n",
-			hw_lm->cfg.out_height, hw_lm->cfg.out_width,
-			cfg->hw_cfg->displayh, cfg->hw_cfg->displayv);
-		return -EINVAL;
-	} else if (hw_lm->cfg.out_height != cfg->hw_cfg->displayv &&
-		   hw_lm->cfg.out_width != (cfg->hw_cfg->displayh >> 1)) {
-		DRM_ERROR("dual_lm lmh %d lmw %d displayh %d displayw %d\n",
-			hw_lm->cfg.out_height, hw_lm->cfg.out_width,
-			cfg->hw_cfg->displayh, cfg->hw_cfg->displayv);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int ad4_no_op_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg)
-{
-	return 0;
-}
-
-static int ad4_setup_debug(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg)
-{
-	u32 strength = 0, i = 0;
-	struct dpu_hw_mixer *hw_lm;
-
-	hw_lm = cfg->hw_cfg->mixer_info;
-	if ((cfg->hw_cfg->num_of_mixers == 2) && hw_lm->cfg.right_mixer) {
-		/* this AD core is the salve core */
-		for (i = DSPP_0; i < DSPP_MAX; i++) {
-			if (info[i].is_master) {
-				strength = info[i].last_str;
-				break;
-			}
-		}
-	} else {
-		strength = DPU_REG_READ(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x4c);
-		pr_debug("%s(): AD strength = %d\n", __func__, strength);
-	}
-
-	return 0;
-}
-
-static int ad4_mode_setup(struct dpu_hw_dspp *dspp, enum ad4_modes mode)
-{
-	u32 blk_offset;
-
-	blk_offset = 0x04;
-	if (mode == AD4_OFF) {
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-				0x101);
-		info[dspp->idx].state = ad4_state_idle;
-		pr_debug("%s(): AD state move to idle\n", __func__);
-		info[dspp->idx].completed_ops_mask = 0;
-		/* reset last values to register default */
-		info[dspp->idx].last_assertive = 0x80;
-		info[dspp->idx].cached_assertive = U8_MAX;
-		info[dspp->idx].last_bl = 0xFFFF;
-		info[dspp->idx].cached_bl = U64_MAX;
-		info[dspp->idx].last_als = 0x0;
-		info[dspp->idx].cached_als = U64_MAX;
-	} else {
-		if (info[dspp->idx].state == ad4_state_idle) {
-			info[dspp->idx].frame_count = 0;
-			info[dspp->idx].state = ad4_state_startup;
-			pr_debug("%s(): AD state move to startup\n", __func__);
-		}
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-				0x100);
-	}
-
-	return 0;
-}
-
-static int ad4_init_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg)
-{
-	u32 frame_start, frame_end, proc_start, proc_end;
-	struct dpu_hw_mixer *hw_lm;
-	u32 blk_offset, tile_ctl, val, i;
-	u32 off1, off2, off3, off4, off5, off6;
-	struct drm_msm_ad4_init *init;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_init;
-		return 0;
-	}
-
-	if (cfg->hw_cfg->len != sizeof(struct drm_msm_ad4_init)) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(struct drm_msm_ad4_init), cfg->hw_cfg->len,
-			cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	hw_lm = cfg->hw_cfg->mixer_info;
-	if (cfg->hw_cfg->num_of_mixers == 1) {
-		frame_start = 0;
-		frame_end = 0xffff;
-		proc_start = 0;
-		proc_end = 0xffff;
-		tile_ctl = 0;
-		info[dspp->idx].is_master = true;
-	} else {
-		tile_ctl = 0x5;
-		if (hw_lm->cfg.right_mixer) {
-			frame_start = (cfg->hw_cfg->displayh >> 1) -
-				MERGE_WIDTH_RIGHT;
-			frame_end = cfg->hw_cfg->displayh - 1;
-			proc_start = (cfg->hw_cfg->displayh >> 1);
-			proc_end = frame_end;
-			tile_ctl |= 0x10;
-			info[dspp->idx].is_master = false;
-		} else {
-			frame_start = 0;
-			frame_end = (cfg->hw_cfg->displayh >> 1) +
-				MERGE_WIDTH_LEFT;
-			proc_start = 0;
-			proc_end = (cfg->hw_cfg->displayh >> 1) - 1;
-			tile_ctl |= 0x10;
-			info[dspp->idx].is_master = true;
-		}
-	}
-
-	init = cfg->hw_cfg->payload;
-
-	info[dspp->idx].frmt_mode = (init->init_param_009 & (BIT(14) - 1));
-
-	blk_offset = 0xc;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			init->init_param_010);
-
-	init->init_param_012 = cfg->hw_cfg->displayv & (BIT(17) - 1);
-	init->init_param_011 = cfg->hw_cfg->displayh & (BIT(17) - 1);
-	blk_offset = 0x10;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			((init->init_param_011 << 16) | init->init_param_012));
-
-	blk_offset = 0x14;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			tile_ctl);
-
-	blk_offset = 0x44;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			((((init->init_param_013) & (BIT(17) - 1)) << 16) |
-			(init->init_param_014 & (BIT(17) - 1))));
-
-	blk_offset = 0x5c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_015 & (BIT(16) - 1)));
-	blk_offset = 0x60;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_016 & (BIT(8) - 1)));
-	blk_offset = 0x64;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_017 & (BIT(12) - 1)));
-	blk_offset = 0x68;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_018 & (BIT(12) - 1)));
-	blk_offset = 0x6c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_019 & (BIT(12) - 1)));
-	blk_offset = 0x70;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_020 & (BIT(16) - 1)));
-	blk_offset = 0x74;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_021 & (BIT(8) - 1)));
-	blk_offset = 0x78;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_022 & (BIT(8) - 1)));
-	blk_offset = 0x7c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_023 & (BIT(16) - 1)));
-	blk_offset = 0x80;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_024 & (BIT(16) - 1)) << 16) |
-		((init->init_param_025 & (BIT(16) - 1)))));
-	blk_offset = 0x84;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_026 & (BIT(16) - 1)) << 16) |
-		((init->init_param_027 & (BIT(16) - 1)))));
-
-	blk_offset = 0x90;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_028 & (BIT(16) - 1)));
-	blk_offset = 0x94;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_029 & (BIT(16) - 1)));
-
-	blk_offset = 0x98;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_035 & (BIT(16) - 1)) << 16) |
-		((init->init_param_030 & (BIT(16) - 1)))));
-
-	blk_offset = 0x9c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_032 & (BIT(16) - 1)) << 16) |
-		((init->init_param_031 & (BIT(16) - 1)))));
-	blk_offset = 0xa0;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_034 & (BIT(16) - 1)) << 16) |
-		((init->init_param_033 & (BIT(16) - 1)))));
-
-	blk_offset = 0xb4;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_036 & (BIT(8) - 1)));
-	blk_offset = 0xcc;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_037 & (BIT(8) - 1)));
-	blk_offset = 0xc0;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_038 & (BIT(8) - 1)));
-	blk_offset = 0xd8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_039 & (BIT(8) - 1)));
-
-	blk_offset = 0xe8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_040 & (BIT(16) - 1)));
-
-	blk_offset = 0xf4;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_041 & (BIT(8) - 1)));
-
-	blk_offset = 0x100;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_042 & (BIT(16) - 1)));
-
-	blk_offset = 0x10c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_043 & (BIT(8) - 1)));
-
-	blk_offset = 0x120;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_044 & (BIT(16) - 1)));
-	blk_offset = 0x124;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_045 & (BIT(16) - 1)));
-
-	blk_offset = 0x128;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_046 & (BIT(1) - 1)));
-	blk_offset = 0x12c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_047 & (BIT(8) - 1)));
-
-	info[dspp->idx].irdx_control_0 = (init->init_param_048 & (BIT(5) - 1));
-
-	blk_offset = 0x140;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_049 & (BIT(8) - 1)));
-
-	blk_offset = 0x144;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_050 & (BIT(8) - 1)));
-	blk_offset = 0x148;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_051 & (BIT(8) - 1)) << 8) |
-		((init->init_param_052 & (BIT(8) - 1)))));
-
-	blk_offset = 0x14c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_053 & (BIT(10) - 1)));
-	blk_offset = 0x150;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_054 & (BIT(10) - 1)));
-	blk_offset = 0x154;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_055 & (BIT(8) - 1)));
-
-	blk_offset = 0x158;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_056 & (BIT(8) - 1)));
-	blk_offset = 0x164;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_057 & (BIT(8) - 1)));
-	blk_offset = 0x168;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_058 & (BIT(4) - 1)));
-
-	blk_offset = 0x17c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(frame_start & (BIT(16) - 1)));
-	blk_offset = 0x180;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(frame_end & (BIT(16) - 1)));
-	blk_offset = 0x184;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(proc_start & (BIT(16) - 1)));
-	blk_offset = 0x188;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(proc_end & (BIT(16) - 1)));
-
-	blk_offset = 0x18c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_059 & (BIT(4) - 1)));
-
-	blk_offset = 0x190;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		(((init->init_param_061 & (BIT(8) - 1)) << 8) |
-		((init->init_param_060 & (BIT(8) - 1)))));
-
-	blk_offset = 0x194;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_062 & (BIT(10) - 1)));
-
-	blk_offset = 0x1a0;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_063 & (BIT(10) - 1)));
-	blk_offset = 0x1a4;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_064 & (BIT(10) - 1)));
-	blk_offset = 0x1a8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_065 & (BIT(10) - 1)));
-	blk_offset = 0x1ac;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_066 & (BIT(8) - 1)));
-	blk_offset = 0x1b0;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_067 & (BIT(8) - 1)));
-	blk_offset = 0x1b4;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_068 & (BIT(6) - 1)));
-
-	blk_offset = 0x460;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_069 & (BIT(16) - 1)));
-	blk_offset = 0x464;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_070 & (BIT(10) - 1)));
-	blk_offset = 0x468;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_071 & (BIT(10) - 1)));
-	blk_offset = 0x46c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_072 & (BIT(10) - 1)));
-	blk_offset = 0x470;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_073 & (BIT(8) - 1)));
-	blk_offset = 0x474;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_074 & (BIT(10) - 1)));
-	blk_offset = 0x478;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(init->init_param_075 & (BIT(10) - 1)));
-
-	off1 = 0x1c0;
-	off2 = 0x210;
-	off3 = 0x260;
-	off4 = 0x2b0;
-	off5 = 0x380;
-	off6 = 0x3d0;
-	for (i = 0; i < AD4_LUT_GRP0_SIZE - 1; i = i + 2) {
-		val = (init->init_param_001[i] & (BIT(16) - 1));
-		val |= ((init->init_param_001[i + 1] & (BIT(16) - 1))
-				<< 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off1, val);
-		off1 += 4;
-
-		val = (init->init_param_002[i] & (BIT(16) - 1));
-		val |= ((init->init_param_002[i + 1] & (BIT(16) - 1))
-				<< 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off2, val);
-		off2 += 4;
-
-		val = (init->init_param_003[i] & (BIT(16) - 1));
-		val |= ((init->init_param_003[i + 1] & (BIT(16) - 1))
-				<< 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off3, val);
-		off3 += 4;
-
-		val = (init->init_param_004[i] & (BIT(16) - 1));
-		val |= ((init->init_param_004[i + 1] & (BIT(16) - 1))
-				<< 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off4, val);
-		off4 += 4;
-
-		val = (init->init_param_007[i] & (BIT(16) - 1));
-		val |= ((init->init_param_007[i + 1] &
-				(BIT(16) - 1)) << 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off5, val);
-		off5 += 4;
-
-		val = (init->init_param_008[i] & (BIT(12) - 1));
-		val |= ((init->init_param_008[i + 1] &
-				(BIT(12) - 1)) << 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off6, val);
-		off6 += 4;
-	}
-	/* write last index data */
-	i = AD4_LUT_GRP0_SIZE - 1;
-	val = ((init->init_param_001[i] & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off1, val);
-	val = ((init->init_param_002[i] & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off2, val);
-	val = ((init->init_param_003[i] & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off3, val);
-	val = ((init->init_param_004[i] & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off4, val);
-	val = ((init->init_param_007[i] & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off5, val);
-	val = ((init->init_param_008[i] & (BIT(12) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off6, val);
-
-	off1 = 0x300;
-	off2 = 0x340;
-	for (i = 0; i < AD4_LUT_GRP1_SIZE; i = i + 2) {
-		val = (init->init_param_005[i] & (BIT(16) - 1));
-		val |= ((init->init_param_005[i + 1] &
-				(BIT(16) - 1)) << 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off1, val);
-		off1 += 4;
-
-		val = (init->init_param_006[i] & (BIT(16) - 1));
-		val |= ((init->init_param_006[i + 1] & (BIT(16) - 1))
-				<< 16);
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + off2, val);
-		off2 += 4;
-	}
-
-	return 0;
-}
-
-static int ad4_cfg_setup(struct dpu_hw_dspp *dspp, struct dpu_ad_hw_cfg *cfg)
-{
-	u32 blk_offset, val;
-	struct drm_msm_ad4_cfg *ad_cfg;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_cfg;
-		return 0;
-	}
-
-	if (cfg->hw_cfg->len != sizeof(struct drm_msm_ad4_cfg)) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(struct drm_msm_ad4_cfg), cfg->hw_cfg->len,
-			cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-	ad_cfg = cfg->hw_cfg->payload;
-
-	blk_offset = 0x18;
-	val = (ad_cfg->cfg_param_002 & (BIT(16) - 1));
-	val |= ((ad_cfg->cfg_param_001 & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_004 & (BIT(16) - 1));
-	val |= ((ad_cfg->cfg_param_003 & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x20;
-	val = (ad_cfg->cfg_param_005 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset = 0x24;
-	val = (ad_cfg->cfg_param_006 & (BIT(7) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	info[dspp->idx].tf_ctrl = (ad_cfg->cfg_param_008 & (BIT(8) - 1));
-
-	blk_offset = 0x38;
-	val = (ad_cfg->cfg_param_009 & (BIT(10) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x3c;
-	val = (ad_cfg->cfg_param_010 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = ((ad_cfg->cfg_param_011 & (BIT(16) - 1)) << 16);
-	val |= (ad_cfg->cfg_param_012 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x88;
-	val = (ad_cfg->cfg_param_013 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_014 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xa4;
-	val = (ad_cfg->cfg_param_015 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_016 & (BIT(10) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_017 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_018 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xc4;
-	val = (ad_cfg->cfg_param_019 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_020 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xb8;
-	val = (ad_cfg->cfg_param_021 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_022 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xd0;
-	val = (ad_cfg->cfg_param_023 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_024 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xdc;
-	val = (ad_cfg->cfg_param_025 & (BIT(16) - 1));
-	val |= ((ad_cfg->cfg_param_026 & (BIT(16) - 1)) << 16);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_027 & (BIT(16) - 1));
-	val |= ((ad_cfg->cfg_param_028 & (BIT(16) - 1)) << 16);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_029 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xec;
-	val = (ad_cfg->cfg_param_030 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_031 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0xf8;
-	val = (ad_cfg->cfg_param_032 & (BIT(10) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_033 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x104;
-	val = (ad_cfg->cfg_param_034 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_035 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x110;
-	val = (ad_cfg->cfg_param_036 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_037 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_038 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_039 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x134;
-	val = (ad_cfg->cfg_param_040 & (BIT(12) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	info[dspp->idx].vc_control_0 = (ad_cfg->cfg_param_041 & (BIT(7) - 1));
-
-	blk_offset += 160;
-	val = (ad_cfg->cfg_param_043 & (BIT(10) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	blk_offset = 0x16c;
-	val = (ad_cfg->cfg_param_044 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_045 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	blk_offset += 4;
-	val = (ad_cfg->cfg_param_046 & (BIT(16) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-
-	return 0;
-}
-
-static int ad4_input_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, als;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x28;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		als = 0;
-		val = &als;
-	}
-	info[dspp->idx].last_als = (*val & (BIT(16) - 1));
-	info[dspp->idx].completed_ops_mask |= ad4_input;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_als);
-	return 0;
-}
-
-static int ad4_suspend_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	info[dspp->idx].state = ad4_state_idle;
-	pr_debug("%s(): AD state move to idle\n", __func__);
-	info[dspp->idx].completed_ops_mask = 0;
-	return 0;
-}
-
-static int ad4_mode_setup_common(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-
-	if (cfg->hw_cfg->len != sizeof(u64) || !cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	info[dspp->idx].mode = *((enum ad4_modes *)
-					(cfg->hw_cfg->payload));
-	info[dspp->idx].completed_ops_mask |= ad4_mode;
-
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask) ||
-					info[dspp->idx].mode == AD4_OFF)
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-
-	return 0;
-}
-
-static int ad4_init_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_init;
-		return 0;
-	}
-
-	ret = ad4_init_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	/* enable memory initialization*/
-	/* frmt mode */
-	blk_offset = 0x8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(info[dspp->idx].frmt_mode & 0x1fff));
-	/* memory init */
-	blk_offset = 0x450;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, 0x1);
-
-	/* enforce 0 initial strength when powering up AD config */
-	/* irdx_control_0 */
-	blk_offset = 0x13c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, 0x6);
-
-	info[dspp->idx].completed_ops_mask |= ad4_init;
-
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-
-	return 0;
-}
-
-static int ad4_init_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_init;
-		return 0;
-	}
-
-	ret = ad4_init_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	/* disable memory initialization*/
-	/* frmt mode */
-	blk_offset = 0x8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(info[dspp->idx].frmt_mode | 0x2000));
-	/* no need to explicitly set memory initialization sequence,
-	 * since AD hw were not powered off.
-	 */
-
-	/* irdx_control_0 */
-	blk_offset = 0x13c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].irdx_control_0);
-
-	return 0;
-}
-
-static int ad4_init_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_init;
-		return 0;
-	}
-
-	ret = ad4_init_setup(dspp, cfg);
-	if (ret)
-		return ret;
-	/* no need to explicitly set memory initialization sequence,
-	 * since register reset values are the correct configuration
-	 */
-	/* frmt mode */
-	blk_offset = 0x8;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(info[dspp->idx].frmt_mode | 0x2000));
-	/* irdx_control_0 */
-	blk_offset = 0x13c;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].irdx_control_0);
-
-	info[dspp->idx].completed_ops_mask |= ad4_init;
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-
-	return 0;
-}
-
-static int ad4_cfg_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_cfg;
-		return 0;
-	}
-
-	ret = ad4_cfg_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	/* enforce 0 initial strength when powering up AD config */
-	/* assertiveness */
-	blk_offset = 0x30;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, 0x0);
-	/* tf control */
-	blk_offset = 0x34;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, 0x55);
-
-	/* vc_control_0 */
-	blk_offset = 0x138;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		info[dspp->idx].vc_control_0);
-
-	info[dspp->idx].completed_ops_mask |= ad4_cfg;
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-	return 0;
-}
-
-static int ad4_cfg_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_cfg;
-		return 0;
-	}
-
-	ret = ad4_cfg_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	/* assertiveness */
-	blk_offset = 0x30;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_assertive);
-	/* tf control */
-	blk_offset = 0x34;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		info[dspp->idx].tf_ctrl);
-	/* vc_control_0 */
-	blk_offset = 0x138;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		info[dspp->idx].vc_control_0);
-
-	return 0;
-}
-
-static int ad4_cfg_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 blk_offset;
-
-	if (!cfg->hw_cfg->payload) {
-		info[dspp->idx].completed_ops_mask &= ~ad4_cfg;
-		return 0;
-	}
-
-	ret = ad4_cfg_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	/* assertiveness */
-	blk_offset = 0x30;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_assertive);
-
-	info[dspp->idx].completed_ops_mask |= ad4_cfg;
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-	return 0;
-}
-
-static int ad4_input_setup_idle(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-
-	ret = ad4_input_setup(dspp, cfg);
-	if (ret)
-		return ret;
-
-	info[dspp->idx].completed_ops_mask |= ad4_input;
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-
-	return 0;
-}
-
-static int ad4_input_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, als;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x28;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		als = 0;
-		val = &als;
-	}
-	info[dspp->idx].cached_als = *val & (BIT(16) - 1);
-	info[dspp->idx].completed_ops_mask |= ad4_input;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_als);
-
-	if (AD_STATE_READY(info[dspp->idx].completed_ops_mask))
-		ad4_mode_setup(dspp, info[dspp->idx].mode);
-
-	return 0;
-}
-
-static int ad4_assertive_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, assertive;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x30;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		assertive = 0;
-		val = &assertive;
-	}
-
-	info[dspp->idx].last_assertive = *val & (BIT(8) - 1);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			(info[dspp->idx].last_assertive));
-	return 0;
-}
-
-static int ad4_assertive_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, assertive;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x30;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		assertive = 0;
-		val = &assertive;
-	}
-
-	info[dspp->idx].cached_assertive = *val & (BIT(8) - 1);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_assertive);
-
-	return 0;
-}
-
-static int ad4_backlight_setup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, bl;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x2c;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		bl = 0;
-		val = &bl;
-	}
-
-	info[dspp->idx].last_bl = *val & (BIT(16) - 1);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_bl);
-	return 0;
-}
-
-static int ad4_backlight_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u64 *val, bl;
-	u32 blk_offset;
-
-	if (cfg->hw_cfg->len != sizeof(u64) && cfg->hw_cfg->payload) {
-		DRM_ERROR("invalid sz param exp %zd given %d cfg %pK\n",
-			sizeof(u64), cfg->hw_cfg->len, cfg->hw_cfg->payload);
-		return -EINVAL;
-	}
-
-	blk_offset = 0x2c;
-	if (cfg->hw_cfg->payload) {
-		val = cfg->hw_cfg->payload;
-	} else {
-		bl = 0;
-		val = &bl;
-	}
-
-	info[dspp->idx].cached_bl = *val & (BIT(16) - 1);
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-			info[dspp->idx].last_bl);
-
-	return 0;
-}
-
-void dpu_read_intr_resp_ad4(struct dpu_hw_dspp *dspp, u32 event, u32 *resp)
-{
-	if (!dspp || !resp) {
-		DRM_ERROR("invalid params dspp %pK resp %pK\n", dspp, resp);
-		return;
-	}
-
-	switch (event) {
-	case AD4_BACKLIGHT:
-		*resp = DPU_REG_READ(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x48);
-		break;
-	default:
-		break;
-	}
-}
-
-static int ad4_ipc_suspend_setup_run(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u32 strength = 0, i = 0;
-	struct dpu_hw_mixer *hw_lm;
-
-	hw_lm = cfg->hw_cfg->mixer_info;
-	if ((cfg->hw_cfg->num_of_mixers == 2) && hw_lm->cfg.right_mixer) {
-		/* this AD core is the salve core */
-		for (i = DSPP_0; i < DSPP_MAX; i++) {
-			if (info[i].is_master) {
-				strength = info[i].last_str;
-				break;
-			}
-		}
-	} else {
-		strength = DPU_REG_READ(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x4c);
-		pr_debug("%s(): AD strength = %d\n", __func__, strength);
-	}
-	info[dspp->idx].last_str = strength;
-	info[dspp->idx].state = ad4_state_ipcs;
-	pr_debug("%s(): AD state move to ipcs\n", __func__);
-
-	return 0;
-}
-
-static int ad4_ipc_resume_setup_ipcs(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u32 blk_offset, val;
-
-	info[dspp->idx].frame_count = 0;
-	info[dspp->idx].state = ad4_state_ipcr;
-	pr_debug("%s(): AD state move to ipcr\n", __func__);
-
-	/* no need to rewrite frmt_mode bit 13 and mem_init,
-	 * since the default register values are exactly what
-	 * we wanted.
-	 */
-
-	/* ipc resume with manual strength */
-	/* tf control */
-	blk_offset = 0x34;
-	val = (0x55 & (BIT(8) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	/* set manual strength */
-	blk_offset = 0x15c;
-	val = (info[dspp->idx].last_str & (BIT(10) - 1));
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, val);
-	/* enable manual mode */
-	blk_offset = 0x138;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset, 0);
-
-	return 0;
-}
-
-static int ad4_ipc_suspend_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	info[dspp->idx].state = ad4_state_ipcs;
-	pr_debug("%s(): AD state move to ipcs\n", __func__);
-	return 0;
-}
-
-static int ad4_ipc_reset_setup_ipcr(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	int ret;
-	u32 strength = 0, i = 0;
-	struct dpu_hw_mixer *hw_lm;
-
-	/* Read AD calculator strength output during the 2 frames of manual
-	 * strength mode, and assign the strength output to last_str
-	 * when frame count reaches AD_IPC_FRAME_COUNT to avoid flickers
-	 * caused by strength was not converged before entering IPC mode
-	 */
-	hw_lm = cfg->hw_cfg->mixer_info;
-	if ((cfg->hw_cfg->num_of_mixers == 2) && hw_lm->cfg.right_mixer) {
-		/* this AD core is the salve core */
-		for (i = DSPP_0; i < DSPP_MAX; i++) {
-			if (info[i].is_master) {
-				strength = info[i].last_str;
-				break;
-			}
-		}
-	} else {
-		strength = DPU_REG_READ(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x4c);
-		pr_debug("%s(): AD strength = %d\n", __func__, strength);
-	}
-
-	if (info[dspp->idx].frame_count == AD_IPC_FRAME_COUNT) {
-		info[dspp->idx].state = ad4_state_run;
-		pr_debug("%s(): AD state move to run\n", __func__);
-		info[dspp->idx].last_str = strength;
-		ret = ad4_cfg_ipc_reset(dspp, cfg);
-		if (ret)
-			return ret;
-	} else {
-		info[dspp->idx].frame_count++;
-	}
-
-	return 0;
-}
-
-static int ad4_cfg_ipc_reset(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u32 blk_offset;
-
-	/* revert manual strength */
-	/* tf control */
-	blk_offset = 0x34;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		info[dspp->idx].tf_ctrl);
-	/* vc_control_0 */
-	blk_offset = 0x138;
-	DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-		info[dspp->idx].vc_control_0);
-
-	/* reset cached ALS, backlight and assertiveness */
-	if (info[dspp->idx].cached_als != U64_MAX) {
-		DPU_REG_WRITE(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x28,
-				info[dspp->idx].cached_als);
-		info[dspp->idx].last_als = info[dspp->idx].cached_als;
-		info[dspp->idx].cached_als = U64_MAX;
-	}
-	if (info[dspp->idx].cached_bl != U64_MAX) {
-		DPU_REG_WRITE(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x2c,
-				info[dspp->idx].cached_bl);
-		info[dspp->idx].last_bl = info[dspp->idx].cached_bl;
-		info[dspp->idx].cached_bl = U64_MAX;
-	}
-	if (info[dspp->idx].cached_assertive != U8_MAX) {
-		DPU_REG_WRITE(&dspp->hw,
-				dspp->cap->sblk->ad.base + 0x30,
-				info[dspp->idx].cached_assertive);
-		info[dspp->idx].last_assertive =
-				info[dspp->idx].cached_assertive;
-		info[dspp->idx].cached_assertive = U8_MAX;
-	}
-
-	return 0;
-}
-
-static int ad4_ipc_reset_setup_startup(struct dpu_hw_dspp *dspp,
-		struct dpu_ad_hw_cfg *cfg)
-{
-	u32 blk_offset;
-
-	if (info[dspp->idx].frame_count == AD_IPC_FRAME_COUNT) {
-		info[dspp->idx].state = ad4_state_run;
-		pr_debug("%s(): AD state move to run\n", __func__);
-
-		/* revert enforce 0 initial strength */
-		/* irdx_control_0 */
-		blk_offset = 0x13c;
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-				info[dspp->idx].irdx_control_0);
-		/* assertiveness */
-		blk_offset = 0x30;
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-				info[dspp->idx].last_assertive);
-		/* tf control */
-		blk_offset = 0x34;
-		DPU_REG_WRITE(&dspp->hw, dspp->cap->sblk->ad.base + blk_offset,
-				info[dspp->idx].tf_ctrl);
-	} else {
-		info[dspp->idx].frame_count++;
-	}
-
-	return 0;
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
index 1c0959f..0fb0b27 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
@@ -32,14 +32,6 @@
 #define MIXER_SDM845_MASK \
 	(BIT(DPU_MIXER_SOURCESPLIT) | BIT(DPU_DIM_LAYER))
 
-#define DSPP_SDM845_MASK \
-	(BIT(DPU_DSPP_IGC) | BIT(DPU_DSPP_PCC) | BIT(DPU_DSPP_GC) |\
-	BIT(DPU_DSPP_HSIC) | BIT(DPU_DSPP_GAMUT) | BIT(DPU_DSPP_HIST) |\
-	BIT(DPU_DSPP_MEMCOLOR) | BIT(DPU_DSPP_SIXZONE) | BIT(DPU_DSPP_VLUT))
-
-#define DSPP_AD_SDM845_MASK \
-	(DSPP_SDM845_MASK | BIT(DPU_DSPP_AD))
-
 #define PINGPONG_SDM845_MASK BIT(DPU_PINGPONG_DITHER)
 
 #define PINGPONG_SDM845_SPLIT_MASK \
@@ -235,76 +227,33 @@
 	},
 };
 
-#define LM_BLK(_name, _id, _base, _dspp, _ds, _pp, _lmpair) \
+#define LM_BLK(_name, _id, _base, _ds, _pp, _lmpair) \
 	{ \
 	.name = _name, .id = _id, \
 	.base = _base, .len = 0x320, \
 	.features = MIXER_SDM845_MASK, \
 	.sblk = &sdm845_lm_sblk, \
-	.dspp = _dspp, .ds = _ds, \
+	.ds = _ds, \
 	.pingpong = _pp, \
 	.lm_pair_mask = (1 << _lmpair) \
 	}
+
 static struct dpu_lm_cfg sdm845_lm[] = {
-	LM_BLK("lm_0", LM_0, 0x45000, DSPP_0,
+	LM_BLK("lm_0", LM_0, 0x45000,
 		DS_0, PINGPONG_0, LM_1),
-	LM_BLK("lm_1", LM_1, 0x46000, DSPP_1,
+	LM_BLK("lm_1", LM_1, 0x46000,
 		DS_1, PINGPONG_1, LM_0),
-	LM_BLK("lm_2", LM_2, 0x47000, DSPP_2,
+	LM_BLK("lm_2", LM_2, 0x47000,
 		DS_MAX, PINGPONG_2, LM_5),
-	LM_BLK("lm_3", LM_3, 0x0, DSPP_MAX,
+	LM_BLK("lm_3", LM_3, 0x0,
 		DS_MAX, PINGPONG_MAX, 0),
-	LM_BLK("lm_4", LM_4, 0x0, DSPP_MAX,
+	LM_BLK("lm_4", LM_4, 0x0,
 		DS_MAX, PINGPONG_MAX, 0),
-	LM_BLK("lm_5", LM_5, 0x4a000, DSPP_3,
+	LM_BLK("lm_5", LM_5, 0x4a000,
 		DS_MAX, PINGPONG_3, LM_2),
 };
 
 /*************************************************************
- * DSPP sub blocks config
- *************************************************************/
-static struct dpu_dspp_top_cfg sdm845_dspp_top = {
-	.name = "dspp_top", .base = 0x1300, .len = 0xc
-};
-
-static const struct dpu_dspp_sub_blks sdm845_dspp_sblk = {
-	.igc = {.id = DPU_DSPP_IGC, .base = 0x0,
-		.len = 0x0, .version = 0x30001},
-	.pcc = {.id = DPU_DSPP_PCC, .base = 0x1700,
-		.len = 0x0, .version = 0x40000},
-	.gc = {.id = DPU_DSPP_GC, .base = 0x17c0,
-		.len = 0x0, .version = 0x10008},
-	.hsic = {.id = DPU_DSPP_HSIC, .base = 0x800,
-		.len = 0x0, .version = 0x10007},
-	.memcolor = {.id = DPU_DSPP_MEMCOLOR, .base = 0x880,
-		.len = 0x0, .version = 0x10007},
-	.sixzone = {.id = DPU_DSPP_SIXZONE, .base = 0x900,
-		.len = 0x0, .version = 0x10007},
-	.gamut = {.id = DPU_DSPP_GAMUT, .base = 0x1000,
-		.len = 0x0, .version = 0x40000},
-	.hist = {.id = DPU_DSPP_HIST, .base = 0x800,
-		.len = 0x0, .version = 0x10007},
-	/* TODO : Move AD out of DSPP config */
-	.vlut = {.id = DPU_DSPP_VLUT, .base = 0xa00,
-		.len = 0x0, .version = 0x10008},
-};
-
-#define DSPP_BLK(_name, _id, _base) \
-	{\
-	.name = _name, .id = _id, \
-	.base = _base, .len = 0x17e0, \
-	.features = DSPP_SDM845_MASK, \
-	.sblk = &sdm845_dspp_sblk, \
-	}
-
-static struct dpu_dspp_cfg sdm845_dspp[] = {
-	DSPP_BLK("dspp_0", DSPP_0, 0x55000),
-	DSPP_BLK("dspp_1", DSPP_1, 0x57000),
-	DSPP_BLK("dspp_2", DSPP_2, 0x59000),
-	DSPP_BLK("dspp_3", DSPP_3, 0x5b000),
-};
-
-/*************************************************************
  * DS sub blocks config
  *************************************************************/
 static const struct dpu_ds_top_cfg sdm845_ds_top = {
@@ -518,9 +467,6 @@ void sdm845_cfg_init(struct dpu_mdss_cfg *dpu_cfg)
 		.sspp = sdm845_sspp,
 		.mixer_count = ARRAY_SIZE(sdm845_lm),
 		.mixer = sdm845_lm,
-		.dspp_top = sdm845_dspp_top,
-		.dspp_count = ARRAY_SIZE(sdm845_dspp),
-		.dspp = sdm845_dspp,
 		.ds_count = ARRAY_SIZE(sdm845_ds),
 		.ds = sdm845_ds,
 		.pingpong_count = ARRAY_SIZE(sdm845_pp),
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
index 248bdab..f0cb0d4 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
@@ -63,11 +63,6 @@
 
 #define CRTC_DUAL_MIXERS	2
 
-#define DPU_COLOR_PROCESS_VER(MAJOR, MINOR) \
-		((((MAJOR) & 0xFFFF) << 16) | (((MINOR) & 0xFFFF)))
-#define DPU_COLOR_PROCESS_MAJOR(version) (((version) & 0xFFFF0000) >> 16)
-#define DPU_COLOR_PROCESS_MINOR(version) ((version) & 0xFFFF)
-
 #define MAX_XIN_COUNT 16
 
 /**
@@ -109,10 +104,6 @@ enum {
  * @DPU_SSPP_SCALER_RGB,     RGB Scaler, supported by RGB pipes
  * @DPU_SSPP_CSC,            Support of Color space converion
  * @DPU_SSPP_CSC_10BIT,      Support of 10-bit Color space conversion
- * @DPU_SSPP_HSIC,           Global HSIC control
- * @DPU_SSPP_MEMCOLOR        Memory Color Support
- * @DPU_SSPP_IGC,            Inverse gamma correction
- * @DPU_SSPP_PCC,            Color correction support
  * @DPU_SSPP_CURSOR,         SSPP can be used as a cursor layer
  * @DPU_SSPP_QOS,            SSPP support QoS control, danger/safe/creq
  * @DPU_SSPP_QOS_8LVL,       SSPP support 8-level QoS control
@@ -131,10 +122,6 @@ enum {
 	DPU_SSPP_SCALER_RGB,
 	DPU_SSPP_CSC,
 	DPU_SSPP_CSC_10BIT,
-	DPU_SSPP_HSIC,
-	DPU_SSPP_MEMCOLOR,
-	DPU_SSPP_IGC,
-	DPU_SSPP_PCC,
 	DPU_SSPP_CURSOR,
 	DPU_SSPP_QOS,
 	DPU_SSPP_QOS_8LVL,
@@ -164,36 +151,6 @@ enum {
 };
 
 /**
- * DSPP sub-blocks
- * @DPU_DSPP_IGC             DSPP Inverse gamma correction block
- * @DPU_DSPP_PCC             Panel color correction block
- * @DPU_DSPP_GC              Gamma correction block
- * @DPU_DSPP_HSIC            Global HSIC block
- * @DPU_DSPP_MEMCOLOR        Memory Color block
- * @DPU_DSPP_SIXZONE         Six zone block
- * @DPU_DSPP_GAMUT           Gamut bloc
- * @DPU_DSPP_DITHER          Dither block
- * @DPU_DSPP_HIST            Histogram block
- * @DPU_DSPP_VLUT            PA VLUT block
- * @DPU_DSPP_AD              AD block
- * @DPU_DSPP_MAX             maximum value
- */
-enum {
-	DPU_DSPP_IGC = 0x1,
-	DPU_DSPP_PCC,
-	DPU_DSPP_GC,
-	DPU_DSPP_HSIC,
-	DPU_DSPP_MEMCOLOR,
-	DPU_DSPP_SIXZONE,
-	DPU_DSPP_GAMUT,
-	DPU_DSPP_DITHER,
-	DPU_DSPP_HIST,
-	DPU_DSPP_VLUT,
-	DPU_DSPP_AD,
-	DPU_DSPP_MAX
-};
-
-/**
  * PINGPONG sub-blocks
  * @DPU_PINGPONG_TE         Tear check block
  * @DPU_PINGPONG_TE2        Additional tear check block for split pipes
@@ -427,20 +384,6 @@ struct dpu_lm_sub_blks {
 	struct dpu_pp_blk gc;
 };
 
-struct dpu_dspp_sub_blks {
-	struct dpu_pp_blk igc;
-	struct dpu_pp_blk pcc;
-	struct dpu_pp_blk gc;
-	struct dpu_pp_blk hsic;
-	struct dpu_pp_blk memcolor;
-	struct dpu_pp_blk sixzone;
-	struct dpu_pp_blk gamut;
-	struct dpu_pp_blk dither;
-	struct dpu_pp_blk hist;
-	struct dpu_pp_blk ad;
-	struct dpu_pp_blk vlut;
-};
-
 struct dpu_pingpong_sub_blks {
 	struct dpu_pp_blk te;
 	struct dpu_pp_blk te2;
@@ -530,7 +473,6 @@ struct dpu_sspp_cfg {
  * @base               register offset of this block
  * @features           bit mask identifying sub-blocks/features
  * @sblk:              LM Sub-blocks information
- * @dspp:              ID of connected DSPP, DSPP_MAX if unsupported
  * @pingpong:          ID of connected PingPong, PINGPONG_MAX if unsupported
  * @ds:                ID of connected DS, DS_MAX if unsupported
  * @lm_pair_mask:      Bitmask of LMs that can be controlled by same CTL
@@ -538,37 +480,12 @@ struct dpu_sspp_cfg {
 struct dpu_lm_cfg {
 	DPU_HW_BLK_INFO;
 	const struct dpu_lm_sub_blks *sblk;
-	u32 dspp;
 	u32 pingpong;
 	u32 ds;
 	unsigned long lm_pair_mask;
 };
 
 /**
- * struct dpu_dspp_cfg - information of DSPP top block
- * @id                 enum identifying this block
- * @base               register offset of this block
- * @features           bit mask identifying sub-blocks/features
- *                     supported by this block
- */
-struct dpu_dspp_top_cfg  {
-	DPU_HW_BLK_INFO;
-};
-
-/**
- * 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_dspp_cfg  {
-	DPU_HW_BLK_INFO;
-	const struct dpu_dspp_sub_blks *sblk;
-};
-
-/**
  * struct dpu_ds_top_cfg - information of dest scaler top
  * @id               enum identifying this block
  * @base             register offset of this block
@@ -811,11 +728,6 @@ struct dpu_mdss_cfg {
 	u32 mixer_count;
 	struct dpu_lm_cfg *mixer;
 
-	struct dpu_dspp_top_cfg dspp_top;
-
-	u32 dspp_count;
-	struct dpu_dspp_cfg *dspp;
-
 	u32 ds_count;
 	struct dpu_ds_cfg *ds;
 
@@ -859,7 +771,6 @@ struct dpu_mdss_hw_cfg_handler {
 #define BLK_DMA(s) ((s)->dma)
 #define BLK_CURSOR(s) ((s)->cursor)
 #define BLK_MIXER(s) ((s)->mixer)
-#define BLK_DSPP(s) ((s)->dspp)
 #define BLK_DS(s) ((s)->ds)
 #define BLK_PINGPONG(s) ((s)->pingpong)
 #define BLK_CDM(s) ((s)->cdm)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_common_v4.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_common_v4.h
deleted file mode 100644
index 495e675..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_common_v4.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#ifndef _DPU_HW_COLOR_PROC_COMMON_V4_H_
-#define _DPU_HW_COLOR_PROC_COMMON_V4_H_
-
-#define GAMUT_TABLE_SEL_OFF 0x4
-#define GAMUT_UPPER_COLOR_OFF 0x8
-#define GAMUT_LOWER_COLOR_OFF 0xc
-#define GAMUT_SCALEA_OFFSET_OFF 0x10
-#define GAMUT_SCALEB_OFFSET_OFF 0xe0
-#define GAMUT_TABLE0_SEL BIT(12)
-#define GAMUT_MAP_EN BIT(1)
-#define GAMUT_EN BIT(0)
-#define GAMUT_MODE_13B_OFF 640
-#define GAMUT_MODE_5_OFF 1248
-
-enum {
-	gamut_mode_17 = 0,
-	gamut_mode_5,
-	gamut_mode_13a,
-	gamut_mode_13b,
-};
-
-#define GC_C0_OFF 0x4
-#define GC_C0_INDEX_OFF 0x8
-#define GC_8B_ROUND_EN BIT(1)
-#define GC_EN BIT(0)
-#define GC_TBL_NUM 3
-#define GC_LUT_SWAP_OFF 0x1c
-
-#define IGC_TBL_NUM 3
-#define IGC_DITHER_OFF 0x7e0
-#define IGC_OPMODE_OFF 0x0
-#define IGC_C0_OFF 0x0
-#define IGC_DATA_MASK (BIT(12) - 1)
-#define IGC_DSPP_SEL_MASK_MAX (BIT(4) - 1)
-#define IGC_DSPP_SEL_MASK(n) \
-	((IGC_DSPP_SEL_MASK_MAX & ~(1 << (n))) << 28)
-#define IGC_INDEX_UPDATE BIT(25)
-#define IGC_EN BIT(0)
-#define IGC_DIS 0
-#define IGC_DITHER_DATA_MASK (BIT(4) - 1)
-
-#define PCC_NUM_PLANES 3
-#define PCC_NUM_COEFF 11
-#define PCC_EN BIT(0)
-#define PCC_DIS 0
-#define PCC_C_OFF 0x4
-#define PCC_R_OFF 0x10
-#define PCC_G_OFF 0x1c
-#define PCC_B_OFF 0x28
-#define PCC_RG_OFF 0x34
-#define PCC_RB_OFF 0x40
-#define PCC_GB_OFF 0x4c
-#define PCC_RGB_OFF 0x58
-#define PCC_RR_OFF 0x64
-#define PCC_GG_OFF 0x70
-#define PCC_BB_OFF 0x7c
-
-#endif /* _DPU_HW_COLOR_PROC_COMMON_V4_H_ */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c
deleted file mode 100644
index 1c693a8..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#include <drm/msm_drm_pp.h>
-#include "dpu_hw_color_proc_common_v4.h"
-#include "dpu_hw_color_proc_v4.h"
-
-static int dpu_write_3d_gamut(struct dpu_hw_blk_reg_map *hw,
-		struct drm_msm_3d_gamut *payload, u32 base,
-		u32 *opcode)
-{
-	u32 reg, tbl_len, tbl_off, scale_off, i, j;
-	u32 scale_tbl_len, scale_tbl_off;
-	u32 *scale_data;
-
-	if (!payload || !opcode || !hw) {
-		DRM_ERROR("invalid payload %pK opcode %pK hw %pK\n",
-			payload, opcode, hw);
-		return -EINVAL;
-	}
-
-	switch (payload->mode) {
-	case GAMUT_3D_MODE_17:
-		tbl_len = GAMUT_3D_MODE17_TBL_SZ;
-		tbl_off = 0;
-		scale_off = GAMUT_SCALEA_OFFSET_OFF;
-		*opcode = gamut_mode_17 << 2;
-		break;
-	case GAMUT_3D_MODE_13:
-		*opcode = (*opcode & (BIT(4) - 1)) >> 2;
-		if (*opcode == gamut_mode_13a)
-			*opcode = gamut_mode_13b;
-		else
-			*opcode = gamut_mode_13a;
-		tbl_len = GAMUT_3D_MODE13_TBL_SZ;
-		tbl_off = (*opcode == gamut_mode_13a) ? 0 :
-			GAMUT_MODE_13B_OFF;
-		scale_off = (*opcode == gamut_mode_13a) ?
-			GAMUT_SCALEA_OFFSET_OFF : GAMUT_SCALEB_OFFSET_OFF;
-		*opcode <<= 2;
-		break;
-	case GAMUT_3D_MODE_5:
-		*opcode = gamut_mode_5 << 2;
-		tbl_len = GAMUT_3D_MODE5_TBL_SZ;
-		tbl_off = GAMUT_MODE_5_OFF;
-		scale_off = GAMUT_SCALEB_OFFSET_OFF;
-		break;
-	default:
-		DRM_ERROR("invalid mode %d\n", payload->mode);
-		return -EINVAL;
-	}
-
-	if (payload->flags & GAMUT_3D_MAP_EN)
-		*opcode |= GAMUT_MAP_EN;
-	*opcode |= GAMUT_EN;
-
-	for (i = 0; i < GAMUT_3D_TBL_NUM; i++) {
-		reg = GAMUT_TABLE0_SEL << i;
-		reg |= ((tbl_off) & (BIT(11) - 1));
-		DPU_REG_WRITE(hw, base + GAMUT_TABLE_SEL_OFF, reg);
-		for (j = 0; j < tbl_len; j++) {
-			DPU_REG_WRITE(hw, base + GAMUT_LOWER_COLOR_OFF,
-					payload->col[i][j].c2_c1);
-			DPU_REG_WRITE(hw, base + GAMUT_UPPER_COLOR_OFF,
-					payload->col[i][j].c0);
-		}
-	}
-
-	if ((*opcode & GAMUT_MAP_EN)) {
-		if (scale_off == GAMUT_SCALEA_OFFSET_OFF)
-			scale_tbl_len = GAMUT_3D_SCALE_OFF_SZ;
-		else
-			scale_tbl_len = GAMUT_3D_SCALEB_OFF_SZ;
-		for (i = 0; i < GAMUT_3D_SCALE_OFF_TBL_NUM; i++) {
-			scale_tbl_off = base + scale_off +
-					i * scale_tbl_len * sizeof(u32);
-			scale_data = &payload->scale_off[i][0];
-			for (j = 0; j < scale_tbl_len; j++)
-				DPU_REG_WRITE(hw,
-					scale_tbl_off + (j * sizeof(u32)),
-					scale_data[j]);
-		}
-	}
-	DPU_REG_WRITE(hw, base, *opcode);
-	return 0;
-}
-
-void dpu_setup_dspp_3d_gamutv4(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_3d_gamut *payload;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 op_mode;
-
-	if (!ctx || !cfg) {
-		DRM_ERROR("invalid param ctx %pK cfg %pK\n", ctx, cfg);
-		return;
-	}
-
-	op_mode = DPU_REG_READ(&ctx->hw, ctx->cap->sblk->gamut.base);
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable gamut feature\n");
-		DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->gamut.base, 0);
-		return;
-	}
-
-	payload = hw_cfg->payload;
-	dpu_write_3d_gamut(&ctx->hw, payload, ctx->cap->sblk->gamut.base,
-		&op_mode);
-
-}
-
-void dpu_setup_dspp_igcv3(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_igc_lut *lut_cfg;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	int i = 0, j = 0;
-	u32 *addr = NULL;
-	u32 offset = 0;
-
-	if (!ctx || !cfg) {
-		DRM_ERROR("invalid param ctx %pK cfg %pK\n", ctx, cfg);
-		return;
-	}
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable igc feature\n");
-		DPU_REG_WRITE(&ctx->hw, IGC_OPMODE_OFF, 0);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_igc_lut)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_igc_lut));
-		return;
-	}
-
-	lut_cfg = hw_cfg->payload;
-
-	for (i = 0; i < IGC_TBL_NUM; i++) {
-		addr = lut_cfg->c0 + (i * ARRAY_SIZE(lut_cfg->c0));
-		offset = IGC_C0_OFF + (i * sizeof(u32));
-
-		for (j = 0; j < IGC_TBL_LEN; j++) {
-			addr[j] &= IGC_DATA_MASK;
-			addr[j] |= IGC_DSPP_SEL_MASK(ctx->idx - 1);
-			if (j == 0)
-				addr[j] |= IGC_INDEX_UPDATE;
-			/* IGC lut registers are part of DSPP Top HW block */
-			DPU_REG_WRITE(&ctx->hw_top, offset, addr[j]);
-		}
-	}
-
-	if (lut_cfg->flags & IGC_DITHER_ENABLE) {
-		DPU_REG_WRITE(&ctx->hw, IGC_DITHER_OFF,
-			lut_cfg->strength & IGC_DITHER_DATA_MASK);
-	}
-
-	DPU_REG_WRITE(&ctx->hw, IGC_OPMODE_OFF, IGC_EN);
-}
-
-void dpu_setup_dspp_pccv4(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct drm_msm_pcc *pcc_cfg;
-	struct drm_msm_pcc_coeff *coeffs = NULL;
-	int i = 0;
-	u32 base = 0;
-
-	if (!ctx || !cfg) {
-		DRM_ERROR("invalid param ctx %pK cfg %pK\n", ctx, cfg);
-		return;
-	}
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable pcc feature\n");
-		DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base, 0);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_pcc)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_pcc));
-		return;
-	}
-
-	pcc_cfg = hw_cfg->payload;
-
-	for (i = 0; i < PCC_NUM_PLANES; i++) {
-		base = ctx->cap->sblk->pcc.base + (i * sizeof(u32));
-		switch (i) {
-		case 0:
-			coeffs = &pcc_cfg->r;
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_RR_OFF, pcc_cfg->r_rr);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_GG_OFF, pcc_cfg->r_gg);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_BB_OFF, pcc_cfg->r_bb);
-			break;
-		case 1:
-			coeffs = &pcc_cfg->g;
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_RR_OFF, pcc_cfg->g_rr);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_GG_OFF, pcc_cfg->g_gg);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_BB_OFF, pcc_cfg->g_bb);
-			break;
-		case 2:
-			coeffs = &pcc_cfg->b;
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_RR_OFF, pcc_cfg->b_rr);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_GG_OFF, pcc_cfg->b_gg);
-			DPU_REG_WRITE(&ctx->hw,
-				base + PCC_BB_OFF, pcc_cfg->b_bb);
-			break;
-		default:
-			DRM_ERROR("invalid pcc plane: %d\n", i);
-			return;
-		}
-
-		DPU_REG_WRITE(&ctx->hw, base + PCC_C_OFF, coeffs->c);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_R_OFF, coeffs->r);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_G_OFF, coeffs->g);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_B_OFF, coeffs->b);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_RG_OFF, coeffs->rg);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_RB_OFF, coeffs->rb);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_GB_OFF, coeffs->gb);
-		DPU_REG_WRITE(&ctx->hw, base + PCC_RGB_OFF, coeffs->rgb);
-	}
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base, PCC_EN);
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h
deleted file mode 100644
index c2f447fb..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#ifndef _DPU_HW_COLOR_PROC_V4_H_
-#define _DPU_HW_COLOR_PROC_V4_H_
-
-#include "dpu_hw_util.h"
-#include "dpu_hw_catalog.h"
-#include "dpu_hw_dspp.h"
-/**
- * dpu_setup_dspp_3d_gamutv4 - Function for 3d gamut v4 version feature
- *                             programming.
- * @ctx: dspp ctx pointer
- * @cfg: pointer to dpu_hw_cp_cfg
- */
-void dpu_setup_dspp_3d_gamutv4(struct dpu_hw_dspp *ctx, void *cfg);
-/**
- * dpu_setup_dspp_igcv3 - Function for igc v3 version feature
- *                             programming.
- * @ctx: dspp ctx pointer
- * @cfg: pointer to dpu_hw_cp_cfg
- */
-void dpu_setup_dspp_igcv3(struct dpu_hw_dspp *ctx, void *cfg);
-/**
- * dpu_setup_dspp_pccv4 - Function for pcc v4 version feature
- *                             programming.
- * @ctx: dspp ctx pointer
- * @cfg: pointer to dpu_hw_cp_cfg
- */
-void dpu_setup_dspp_pccv4(struct dpu_hw_dspp *ctx, void *cfg);
-
-#endif /* _DPU_HW_COLOR_PROC_V4_H_ */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing.h
deleted file mode 100644
index e1bdffd..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef _DPU_HW_COLOR_PROCESSING_H
-#define _DPU_HW_COLOR_PROCESSING_H
-
-#include "dpu_hw_color_processing_v1_7.h"
-#include "dpu_hw_reg_dma_v1_color_proc.h"
-#include "dpu_hw_color_proc_v4.h"
-
-#endif
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.c
deleted file mode 100644
index 6c67602..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <drm/msm_drm_pp.h>
-#include "dpu_hw_color_processing_v1_7.h"
-#include "dpu_hw_ctl.h"
-
-#define PA_HUE_VIG_OFF		0x110
-#define PA_SAT_VIG_OFF		0x114
-#define PA_VAL_VIG_OFF		0x118
-#define PA_CONT_VIG_OFF		0x11C
-
-#define PA_HUE_DSPP_OFF		0x238
-#define PA_SAT_DSPP_OFF		0x23C
-#define PA_VAL_DSPP_OFF		0x240
-#define PA_CONT_DSPP_OFF	0x244
-
-#define PA_LUTV_DSPP_OFF	0x1400
-#define PA_LUT_SWAP_OFF		0x234
-
-#define PA_LUTV_DSPP_CTRL_OFF	0x4c
-#define PA_LUTV_DSPP_SWAP_OFF	0x18
-
-#define PA_HUE_MASK		0xFFF
-#define PA_SAT_MASK		0xFFFF
-#define PA_VAL_MASK		0xFF
-#define PA_CONT_MASK		0xFF
-
-#define MEMCOL_PWL0_OFF		0x88
-#define MEMCOL_PWL0_MASK	0xFFFF07FF
-#define MEMCOL_PWL1_OFF		0x8C
-#define MEMCOL_PWL1_MASK	0xFFFFFFFF
-#define MEMCOL_HUE_REGION_OFF	0x90
-#define MEMCOL_HUE_REGION_MASK	0x7FF07FF
-#define MEMCOL_SAT_REGION_OFF	0x94
-#define MEMCOL_SAT_REGION_MASK	0xFFFFFF
-#define MEMCOL_VAL_REGION_OFF	0x98
-#define MEMCOL_VAL_REGION_MASK	0xFFFFFF
-#define MEMCOL_P0_LEN		0x14
-#define MEMCOL_P1_LEN		0x8
-#define MEMCOL_PWL2_OFF		0x218
-#define MEMCOL_PWL2_MASK	0xFFFFFFFF
-#define MEMCOL_BLEND_GAIN_OFF	0x21C
-#define MEMCOL_PWL_HOLD_OFF	0x214
-
-#define VIG_OP_PA_EN		BIT(4)
-#define VIG_OP_PA_SKIN_EN	BIT(5)
-#define VIG_OP_PA_FOL_EN	BIT(6)
-#define VIG_OP_PA_SKY_EN	BIT(7)
-#define VIG_OP_PA_HUE_EN	BIT(25)
-#define VIG_OP_PA_SAT_EN	BIT(26)
-#define VIG_OP_PA_VAL_EN	BIT(27)
-#define VIG_OP_PA_CONT_EN	BIT(28)
-
-#define DSPP_OP_SZ_VAL_EN	BIT(31)
-#define DSPP_OP_SZ_SAT_EN	BIT(30)
-#define DSPP_OP_SZ_HUE_EN	BIT(29)
-#define DSPP_OP_PA_HUE_EN	BIT(25)
-#define DSPP_OP_PA_SAT_EN	BIT(26)
-#define DSPP_OP_PA_VAL_EN	BIT(27)
-#define DSPP_OP_PA_CONT_EN	BIT(28)
-#define DSPP_OP_PA_EN		BIT(20)
-#define DSPP_OP_PA_LUTV_EN	BIT(19)
-#define DSPP_OP_PA_SKIN_EN	BIT(5)
-#define DSPP_OP_PA_FOL_EN	BIT(6)
-#define DSPP_OP_PA_SKY_EN	BIT(7)
-
-#define PA_VIG_DISABLE_REQUIRED(x) \
-			!((x) & (VIG_OP_PA_SKIN_EN | VIG_OP_PA_SKY_EN | \
-			VIG_OP_PA_FOL_EN | VIG_OP_PA_HUE_EN | \
-			VIG_OP_PA_SAT_EN | VIG_OP_PA_VAL_EN | \
-			VIG_OP_PA_CONT_EN))
-
-
-#define PA_DSPP_DISABLE_REQUIRED(x) \
-			!((x) & (DSPP_OP_PA_SKIN_EN | DSPP_OP_PA_SKY_EN | \
-			DSPP_OP_PA_FOL_EN | DSPP_OP_PA_HUE_EN | \
-			DSPP_OP_PA_SAT_EN | DSPP_OP_PA_VAL_EN | \
-			DSPP_OP_PA_CONT_EN | DSPP_OP_PA_LUTV_EN))
-
-#define DSPP_OP_PCC_ENABLE	BIT(0)
-#define PCC_OP_MODE_OFF		0
-#define PCC_CONST_COEFF_OFF	4
-#define PCC_R_COEFF_OFF		0x10
-#define PCC_G_COEFF_OFF		0x1C
-#define PCC_B_COEFF_OFF		0x28
-#define PCC_RG_COEFF_OFF	0x34
-#define PCC_RB_COEFF_OFF	0x40
-#define PCC_GB_COEFF_OFF	0x4C
-#define PCC_RGB_COEFF_OFF	0x58
-#define PCC_CONST_COEFF_MASK	0xFFFF
-#define PCC_COEFF_MASK		0x3FFFF
-
-#define SSPP	0
-#define DSPP	1
-
-#define PGC_C0_OFF 0x4
-#define PGC_C0_INDEX_OFF 0x8
-#define PGC_8B_ROUND_EN BIT(1)
-#define PGC_EN BIT(0)
-#define PGC_TBL_NUM 3
-#define PGC_LUT_SWAP_OFF 0x1c
-
-
-static void __setup_pa_hue(struct dpu_hw_blk_reg_map *hw,
-			const struct dpu_pp_blk *blk, uint32_t hue,
-			int location)
-{
-	u32 base = blk->base;
-	u32 offset = (location == DSPP) ? PA_HUE_DSPP_OFF : PA_HUE_VIG_OFF;
-	u32 op_hue_en = (location == DSPP) ? DSPP_OP_PA_HUE_EN :
-					VIG_OP_PA_HUE_EN;
-	u32 op_pa_en = (location == DSPP) ? DSPP_OP_PA_EN : VIG_OP_PA_EN;
-	u32 disable_req;
-	u32 opmode;
-
-	DPU_REG_WRITE(hw, base + offset, hue & PA_HUE_MASK);
-
-	opmode = DPU_REG_READ(hw, base);
-
-	if (!hue) {
-		opmode &= ~op_hue_en;
-		disable_req = (location == DSPP) ?
-			PA_DSPP_DISABLE_REQUIRED(opmode) :
-			PA_VIG_DISABLE_REQUIRED(opmode);
-		if (disable_req)
-			opmode &= ~op_pa_en;
-	} else {
-		opmode |= op_hue_en | op_pa_en;
-	}
-
-	DPU_REG_WRITE(hw, base, opmode);
-}
-
-void dpu_setup_pipe_pa_hue_v1_7(struct dpu_hw_pipe *ctx, void *cfg)
-{
-	uint32_t hue = *((uint32_t *)cfg);
-
-	__setup_pa_hue(&ctx->hw, &ctx->cap->sblk->hsic_blk, hue, SSPP);
-}
-
-void dpu_setup_dspp_pa_hue_v1_7(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	uint32_t hue = *((uint32_t *)cfg);
-
-	__setup_pa_hue(&ctx->hw, &ctx->cap->sblk->hsic, hue, DSPP);
-}
-
-static void __setup_pa_sat(struct dpu_hw_blk_reg_map *hw,
-			const struct dpu_pp_blk *blk, uint32_t sat,
-			int location)
-{
-	u32 base = blk->base;
-	u32 offset = (location == DSPP) ? PA_SAT_DSPP_OFF : PA_SAT_VIG_OFF;
-	u32 op_sat_en = (location == DSPP) ?
-			DSPP_OP_PA_SAT_EN : VIG_OP_PA_SAT_EN;
-	u32 op_pa_en = (location == DSPP) ? DSPP_OP_PA_EN : VIG_OP_PA_EN;
-	u32 disable_req;
-	u32 opmode;
-
-	DPU_REG_WRITE(hw, base + offset, sat & PA_SAT_MASK);
-
-	opmode = DPU_REG_READ(hw, base);
-
-	if (!sat) {
-		opmode &= ~op_sat_en;
-		disable_req = (location == DSPP) ?
-			PA_DSPP_DISABLE_REQUIRED(opmode) :
-			PA_VIG_DISABLE_REQUIRED(opmode);
-		if (disable_req)
-			opmode &= ~op_pa_en;
-	} else {
-		opmode |= op_sat_en | op_pa_en;
-	}
-
-	DPU_REG_WRITE(hw, base, opmode);
-}
-
-void dpu_setup_pipe_pa_sat_v1_7(struct dpu_hw_pipe *ctx, void *cfg)
-{
-	uint32_t sat = *((uint32_t *)cfg);
-
-	__setup_pa_sat(&ctx->hw, &ctx->cap->sblk->hsic_blk, sat, SSPP);
-}
-
-static void __setup_pa_val(struct dpu_hw_blk_reg_map *hw,
-			const struct dpu_pp_blk *blk, uint32_t value,
-			int location)
-{
-	u32 base = blk->base;
-	u32 offset = (location == DSPP) ? PA_VAL_DSPP_OFF : PA_VAL_VIG_OFF;
-	u32 op_val_en = (location == DSPP) ?
-			DSPP_OP_PA_VAL_EN : VIG_OP_PA_VAL_EN;
-	u32 op_pa_en = (location == DSPP) ? DSPP_OP_PA_EN : VIG_OP_PA_EN;
-	u32 disable_req;
-	u32 opmode;
-
-	DPU_REG_WRITE(hw, base + offset, value & PA_VAL_MASK);
-
-	opmode = DPU_REG_READ(hw, base);
-
-	if (!value) {
-		opmode &= ~op_val_en;
-		disable_req = (location == DSPP) ?
-			PA_DSPP_DISABLE_REQUIRED(opmode) :
-			PA_VIG_DISABLE_REQUIRED(opmode);
-		if (disable_req)
-			opmode &= ~op_pa_en;
-	} else {
-		opmode |= op_val_en | op_pa_en;
-	}
-
-	DPU_REG_WRITE(hw, base, opmode);
-}
-
-void dpu_setup_pipe_pa_val_v1_7(struct dpu_hw_pipe *ctx, void *cfg)
-{
-	uint32_t value = *((uint32_t *)cfg);
-
-	__setup_pa_val(&ctx->hw, &ctx->cap->sblk->hsic_blk, value, SSPP);
-}
-
-static void __setup_pa_cont(struct dpu_hw_blk_reg_map *hw,
-			const struct dpu_pp_blk *blk, uint32_t contrast,
-			int location)
-{
-	u32 base = blk->base;
-	u32 offset = (location == DSPP) ? PA_CONT_DSPP_OFF : PA_CONT_VIG_OFF;
-	u32 op_cont_en = (location == DSPP) ? DSPP_OP_PA_CONT_EN :
-					VIG_OP_PA_CONT_EN;
-	u32 op_pa_en = (location == DSPP) ? DSPP_OP_PA_EN : VIG_OP_PA_EN;
-	u32 disable_req;
-	u32 opmode;
-
-	DPU_REG_WRITE(hw, base + offset, contrast & PA_CONT_MASK);
-
-	opmode = DPU_REG_READ(hw, base);
-
-	if (!contrast) {
-		opmode &= ~op_cont_en;
-		disable_req = (location == DSPP) ?
-			PA_DSPP_DISABLE_REQUIRED(opmode) :
-			PA_VIG_DISABLE_REQUIRED(opmode);
-		if (disable_req)
-			opmode &= ~op_pa_en;
-	} else {
-		opmode |= op_cont_en | op_pa_en;
-	}
-
-	DPU_REG_WRITE(hw, base, opmode);
-}
-
-void dpu_setup_pipe_pa_cont_v1_7(struct dpu_hw_pipe *ctx, void *cfg)
-{
-	uint32_t contrast = *((uint32_t *)cfg);
-
-	__setup_pa_cont(&ctx->hw, &ctx->cap->sblk->hsic_blk, contrast, SSPP);
-}
-
-void dpu_setup_pipe_pa_memcol_v1_7(struct dpu_hw_pipe *ctx,
-				   enum dpu_memcolor_type type,
-				   void *cfg)
-{
-	struct drm_msm_memcol *mc = cfg;
-	u32 base = ctx->cap->sblk->memcolor_blk.base;
-	u32 off, op, mc_en, hold = 0;
-	u32 mc_i = 0;
-
-	switch (type) {
-	case MEMCOLOR_SKIN:
-		mc_en = VIG_OP_PA_SKIN_EN;
-		mc_i = 0;
-		break;
-	case MEMCOLOR_SKY:
-		mc_en = VIG_OP_PA_SKY_EN;
-		mc_i = 1;
-		break;
-	case MEMCOLOR_FOLIAGE:
-		mc_en = VIG_OP_PA_FOL_EN;
-		mc_i = 2;
-		break;
-	default:
-		DRM_ERROR("Invalid memory color type %d\n", type);
-		return;
-	}
-
-	op = DPU_REG_READ(&ctx->hw, base);
-	if (!mc) {
-		op &= ~mc_en;
-		if (PA_VIG_DISABLE_REQUIRED(op))
-			op &= ~VIG_OP_PA_EN;
-		DPU_REG_WRITE(&ctx->hw, base, op);
-		return;
-	}
-
-	off = base + (mc_i * MEMCOL_P0_LEN);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_PWL0_OFF),
-		      mc->color_adjust_p0 & MEMCOL_PWL0_MASK);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_PWL1_OFF),
-		      mc->color_adjust_p1 & MEMCOL_PWL1_MASK);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_HUE_REGION_OFF),
-		      mc->hue_region & MEMCOL_HUE_REGION_MASK);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_SAT_REGION_OFF),
-		      mc->sat_region & MEMCOL_SAT_REGION_MASK);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_VAL_REGION_OFF),
-		      mc->val_region & MEMCOL_VAL_REGION_MASK);
-
-	off = base + (mc_i * MEMCOL_P1_LEN);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_PWL2_OFF),
-		      mc->color_adjust_p2 & MEMCOL_PWL2_MASK);
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_BLEND_GAIN_OFF), mc->blend_gain);
-
-	hold = DPU_REG_READ(&ctx->hw, off + MEMCOL_PWL_HOLD_OFF);
-	hold &= ~(0xF << (mc_i * 4));
-	hold |= ((mc->sat_hold & 0x3) << (mc_i * 4));
-	hold |= ((mc->val_hold & 0x3) << ((mc_i * 4) + 2));
-	DPU_REG_WRITE(&ctx->hw, (off + MEMCOL_PWL_HOLD_OFF), hold);
-
-	op |= VIG_OP_PA_EN | mc_en;
-	DPU_REG_WRITE(&ctx->hw, base, op);
-}
-
-void dpu_setup_dspp_pcc_v1_7(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct drm_msm_pcc *pcc;
-	void  __iomem *base;
-
-	if (!hw_cfg  || (hw_cfg->len != sizeof(*pcc)  && hw_cfg->payload)) {
-		DRM_ERROR("invalid params hw %p payload %p payloadsize %d \"\
-			  exp size %zd\n",
-			   hw_cfg, ((hw_cfg) ? hw_cfg->payload : NULL),
-			   ((hw_cfg) ? hw_cfg->len : 0), sizeof(*pcc));
-		return;
-	}
-	base = ctx->hw.base_off + ctx->cap->base;
-
-	/* Turn off feature */
-	if (!hw_cfg->payload) {
-		DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base,
-			      PCC_OP_MODE_OFF);
-		return;
-	}
-	DRM_DEBUG_DRIVER("Enable PCC feature\n");
-	pcc = hw_cfg->payload;
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_CONST_COEFF_OFF,
-				  pcc->r.c & PCC_CONST_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw,
-		      ctx->cap->sblk->pcc.base + PCC_CONST_COEFF_OFF + 4,
-		      pcc->g.c & PCC_CONST_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw,
-		      ctx->cap->sblk->pcc.base + PCC_CONST_COEFF_OFF + 8,
-		      pcc->b.c & PCC_CONST_COEFF_MASK);
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_R_COEFF_OFF,
-				  pcc->r.r & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_R_COEFF_OFF + 4,
-				  pcc->g.r & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_R_COEFF_OFF + 8,
-				  pcc->b.r & PCC_COEFF_MASK);
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_G_COEFF_OFF,
-				  pcc->r.g & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_G_COEFF_OFF + 4,
-				  pcc->g.g & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_G_COEFF_OFF + 8,
-				  pcc->b.g & PCC_COEFF_MASK);
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_B_COEFF_OFF,
-				  pcc->r.b & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_B_COEFF_OFF + 4,
-				  pcc->g.b & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_B_COEFF_OFF + 8,
-				  pcc->b.b & PCC_COEFF_MASK);
-
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RG_COEFF_OFF,
-				  pcc->r.rg & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RG_COEFF_OFF + 4,
-				  pcc->g.rg & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RG_COEFF_OFF + 8,
-				  pcc->b.rg & PCC_COEFF_MASK);
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RB_COEFF_OFF,
-				  pcc->r.rb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RB_COEFF_OFF + 4,
-				  pcc->g.rb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RB_COEFF_OFF + 8,
-				  pcc->b.rb & PCC_COEFF_MASK);
-
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_GB_COEFF_OFF,
-				  pcc->r.gb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_GB_COEFF_OFF + 4,
-				  pcc->g.gb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_GB_COEFF_OFF + 8,
-				  pcc->b.gb & PCC_COEFF_MASK);
-
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base + PCC_RGB_COEFF_OFF,
-				  pcc->r.rgb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw,
-		      ctx->cap->sblk->pcc.base + PCC_RGB_COEFF_OFF + 4,
-		      pcc->g.rgb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw,
-		      ctx->cap->sblk->pcc.base + PCC_RGB_COEFF_OFF + 8,
-		      pcc->b.rgb & PCC_COEFF_MASK);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->pcc.base, DSPP_OP_PCC_ENABLE);
-}
-
-void dpu_setup_dspp_pa_vlut_v1_7(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_pa_vlut *payload = NULL;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 base = ctx->cap->sblk->vlut.base;
-	u32 offset = base + PA_LUTV_DSPP_OFF;
-	u32 op_mode, tmp;
-	int i = 0, j = 0;
-
-	if (!hw_cfg || (hw_cfg->payload && hw_cfg->len !=
-			sizeof(struct drm_msm_pa_vlut))) {
-		DRM_ERROR("hw %pK payload %pK payloadsize %d exp size %zd\n",
-			  hw_cfg, ((hw_cfg) ? hw_cfg->payload : NULL),
-			  ((hw_cfg) ? hw_cfg->len : 0),
-			  sizeof(struct drm_msm_pa_vlut));
-		return;
-	}
-	op_mode = DPU_REG_READ(&ctx->hw, base);
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("Disable vlut feature\n");
-		/**
-		 * In the PA_VLUT disable case, remove PA_VLUT enable bit(19)
-		 * first, then check whether any other PA sub-features are
-		 * enabled or not. If none of the sub-features are enabled,
-		 * remove the PA global enable bit(20).
-		 */
-		op_mode &= ~((u32)DSPP_OP_PA_LUTV_EN);
-		if (PA_DSPP_DISABLE_REQUIRED(op_mode))
-			op_mode &= ~((u32)DSPP_OP_PA_EN);
-		DPU_REG_WRITE(&ctx->hw, base, op_mode);
-		return;
-	}
-	payload = hw_cfg->payload;
-	DRM_DEBUG_DRIVER("Enable vlut feature flags %llx\n", payload->flags);
-	for (i = 0, j = 0; i < ARRAY_SIZE(payload->val); i += 2, j += 4) {
-		tmp = (payload->val[i] & REG_MASK(10)) |
-			((payload->val[i + 1] & REG_MASK(10)) << 16);
-		DPU_REG_WRITE(&ctx->hw, (offset + j),
-			     tmp);
-	}
-	DPU_REG_WRITE(&ctx->hw, (base + PA_LUT_SWAP_OFF), 1);
-	op_mode |= DSPP_OP_PA_EN | DSPP_OP_PA_LUTV_EN;
-	DPU_REG_WRITE(&ctx->hw, base, op_mode);
-}
-
-void dpu_setup_dspp_pa_vlut_v1_8(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_pa_vlut *payload = NULL;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_hw_ctl *ctl = NULL;
-	u32 vlut_base, pa_hist_base;
-	u32 ctrl_off, swap_off;
-	u32 tmp = 0;
-	int i = 0, j = 0;
-	u32 flush_mask = 0;
-
-	if (!ctx) {
-		DRM_ERROR("invalid input parameter NULL ctx\n");
-		return;
-	}
-
-	if (!hw_cfg || (hw_cfg->payload && hw_cfg->len !=
-			sizeof(struct drm_msm_pa_vlut))) {
-		DRM_ERROR("hw %pK payload %pK payloadsize %d exp size %zd\n",
-			  hw_cfg, ((hw_cfg) ? hw_cfg->payload : NULL),
-			  ((hw_cfg) ? hw_cfg->len : 0),
-			  sizeof(struct drm_msm_pa_vlut));
-		return;
-	}
-
-	ctl = hw_cfg->ctl;
-	vlut_base = ctx->cap->sblk->vlut.base;
-	pa_hist_base = ctx->cap->sblk->hist.base;
-	ctrl_off = pa_hist_base + PA_LUTV_DSPP_CTRL_OFF;
-	swap_off = pa_hist_base + PA_LUTV_DSPP_SWAP_OFF;
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("Disable vlut feature\n");
-		DPU_REG_WRITE(&ctx->hw, ctrl_off, 0);
-		goto exit;
-	}
-
-	payload = hw_cfg->payload;
-	DRM_DEBUG_DRIVER("Enable vlut feature flags %llx\n", payload->flags);
-	for (i = 0, j = 0; i < ARRAY_SIZE(payload->val); i += 2, j += 4) {
-		tmp = (payload->val[i] & REG_MASK(10)) |
-			((payload->val[i + 1] & REG_MASK(10)) << 16);
-		DPU_REG_WRITE(&ctx->hw, (vlut_base + j), tmp);
-	}
-	DPU_REG_WRITE(&ctx->hw, ctrl_off, 1);
-	DPU_REG_WRITE(&ctx->hw, swap_off, 1);
-
-exit:
-	/* update flush bit */
-	if (ctl && ctl->ops.get_bitmask_dspp_pavlut) {
-		ctl->ops.get_bitmask_dspp_pavlut(ctl, &flush_mask, ctx->idx);
-		if (ctl->ops.update_pending_flush)
-			ctl->ops.update_pending_flush(ctl, flush_mask);
-	}
-}
-
-void dpu_setup_dspp_gc_v1_7(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_pgc_lut *payload = NULL;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 c0_off, c1_off, c2_off, i;
-
-	if (!hw_cfg || (hw_cfg->payload && hw_cfg->len !=
-			sizeof(struct drm_msm_pgc_lut))) {
-		DRM_ERROR("hw %pK payload %pK payloadsize %d exp size %zd\n",
-			  hw_cfg, ((hw_cfg) ? hw_cfg->payload : NULL),
-			  ((hw_cfg) ? hw_cfg->len : 0),
-			  sizeof(struct drm_msm_pgc_lut));
-		return;
-	}
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("Disable pgc feature\n");
-		DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->gc.base, 0);
-		return;
-	}
-	payload = hw_cfg->payload;
-
-	/* Initialize index offsets */
-	c0_off = ctx->cap->sblk->gc.base + PGC_C0_INDEX_OFF;
-	c1_off = c0_off + (sizeof(u32) * 2);
-	c2_off = c1_off + (sizeof(u32) * 2);
-	DPU_REG_WRITE(&ctx->hw, c0_off, 0);
-	DPU_REG_WRITE(&ctx->hw, c1_off, 0);
-	DPU_REG_WRITE(&ctx->hw, c2_off, 0);
-
-	/* Initialize table offsets */
-	c0_off = ctx->cap->sblk->gc.base + PGC_C0_OFF;
-	c1_off = c0_off + (sizeof(u32) * 2);
-	c2_off = c1_off + (sizeof(u32) * 2);
-
-	for (i = 0; i < PGC_TBL_LEN; i++) {
-		DPU_REG_WRITE(&ctx->hw, c0_off, payload->c0[i]);
-		DPU_REG_WRITE(&ctx->hw, c1_off, payload->c1[i]);
-		DPU_REG_WRITE(&ctx->hw, c2_off, payload->c2[i]);
-	}
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->gc.base + PGC_LUT_SWAP_OFF,
-			BIT(0));
-	i = BIT(0) | ((payload->flags & PGC_8B_ROUND) ? BIT(1) : 0);
-	DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->gc.base, i);
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.h
deleted file mode 100644
index 76807ae..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef _DPU_HW_COLOR_PROCESSING_V1_7_H
-#define _DPU_HW_COLOR_PROCESSING_V1_7_H
-
-#include "dpu_hw_sspp.h"
-#include "dpu_hw_dspp.h"
-
-/**
- * dpu_setup_pipe_pa_hue_v1_7 - setup SSPP hue feature in v1.7 hardware
- * @ctx: Pointer to pipe context
- * @cfg: Pointer to hue data
- */
-void dpu_setup_pipe_pa_hue_v1_7(struct dpu_hw_pipe *ctx, void *cfg);
-
-/**
- * dpu_setup_pipe_pa_sat_v1_7 - setup SSPP saturation feature in v1.7 hardware
- * @ctx: Pointer to pipe context
- * @cfg: Pointer to saturation data
- */
-void dpu_setup_pipe_pa_sat_v1_7(struct dpu_hw_pipe *ctx, void *cfg);
-
-/**
- * dpu_setup_pipe_pa_val_v1_7 - setup SSPP value feature in v1.7 hardware
- * @ctx: Pointer to pipe context
- * @cfg: Pointer to value data
- */
-void dpu_setup_pipe_pa_val_v1_7(struct dpu_hw_pipe *ctx, void *cfg);
-
-/**
- * dpu_setup_pipe_pa_cont_v1_7 - setup SSPP contrast feature in v1.7 hardware
- * @ctx: Pointer to pipe context
- * @cfg: Pointer to contrast data
- */
-void dpu_setup_pipe_pa_cont_v1_7(struct dpu_hw_pipe *ctx, void *cfg);
-
-/**
- * dpu_setup_pipe_pa_memcol_v1_7 - setup SSPP memory color in v1.7 hardware
- * @ctx: Pointer to pipe context
- * @type: Memory color type (Skin, sky, or foliage)
- * @cfg: Pointer to memory color config data
- */
-void dpu_setup_pipe_pa_memcol_v1_7(struct dpu_hw_pipe *ctx,
-				   enum dpu_memcolor_type type,
-				   void *cfg);
-
-/**
- * dpu_setup_dspp_pcc_v1_7 - setup DSPP PCC veature in v1.7 hardware
- * @ctx: Pointer to dspp context
- * @cfg: Pointer to PCC data
- */
-void dpu_setup_dspp_pcc_v1_7(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * dpu_setup_dspp_pa_hue_v1_7 - setup DSPP hue feature in v1.7 hardware
- * @ctx: Pointer to DSPP context
- * @cfg: Pointer to hue data
- */
-void dpu_setup_dspp_pa_hue_v1_7(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * dpu_setup_dspp_pa_vlut_v1_7 - setup DSPP PA vLUT feature in v1.7 hardware
- * @ctx: Pointer to DSPP context
- * @cfg: Pointer to vLUT data
- */
-void dpu_setup_dspp_pa_vlut_v1_7(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * dpu_setup_dspp_pa_vlut_v1_8 - setup DSPP PA vLUT feature in v1.8 hardware
- * @ctx: Pointer to DSPP context
- * @cfg: Pointer to vLUT data
- */
-void dpu_setup_dspp_pa_vlut_v1_8(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * dpu_setup_dspp_gc_v1_7 - setup DSPP gc feature in v1.7 hardware
- * @ctx: Pointer to DSPP context
- * @cfg: Pointer to gc data
- */
-void dpu_setup_dspp_gc_v1_7(struct dpu_hw_dspp *ctx, void *cfg);
-
-#endif
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
index 6c9289c..ad02316 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
@@ -15,7 +15,6 @@
 #include "dpu_hw_ctl.h"
 #include "dpu_dbg.h"
 #include "dpu_kms.h"
-#include "dpu_reg_dma.h"
 
 #define   CTL_LAYER(lm)                 \
 	(((lm) == LM_5) ? (0x024) : (((lm) - LM_0) * 0x004))
@@ -203,38 +202,6 @@ static inline uint32_t dpu_hw_ctl_get_bitmask_mixer(struct dpu_hw_ctl *ctx,
 	return flushbits;
 }
 
-static inline int dpu_hw_ctl_get_bitmask_dspp(struct dpu_hw_ctl *ctx,
-		u32 *flushbits, enum dpu_dspp dspp)
-{
-	switch (dspp) {
-	case DSPP_0:
-		*flushbits |= BIT(13);
-		break;
-	case DSPP_1:
-		*flushbits |= BIT(14);
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-static inline int dpu_hw_ctl_get_bitmask_dspp_pavlut(struct dpu_hw_ctl *ctx,
-		u32 *flushbits, enum dpu_dspp dspp)
-{
-	switch (dspp) {
-	case DSPP_0:
-		*flushbits |= BIT(3);
-		break;
-	case DSPP_1:
-		*flushbits |= BIT(4);
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
 static inline int dpu_hw_ctl_get_bitmask_intf(struct dpu_hw_ctl *ctx,
 		u32 *flushbits, enum dpu_intf intf)
 {
@@ -500,14 +467,6 @@ static void dpu_hw_ctl_intf_cfg(struct dpu_hw_ctl *ctx,
 	DPU_REG_WRITE(c, CTL_TOP, intf_cfg);
 }
 
-static void dpu_hw_reg_dma_flush(struct dpu_hw_ctl *ctx)
-{
-	struct dpu_hw_reg_dma_ops *ops = dpu_reg_dma_get_ops();
-
-	if (ops && ops->last_command)
-		ops->last_command(ctx, DMA_CTL_QUEUE0);
-}
-
 static void _setup_ctl_ops(struct dpu_hw_ctl_ops *ops,
 		unsigned long cap)
 {
@@ -525,11 +484,8 @@ static void _setup_ctl_ops(struct dpu_hw_ctl_ops *ops,
 	ops->setup_blendstage = dpu_hw_ctl_setup_blendstage;
 	ops->get_bitmask_sspp = dpu_hw_ctl_get_bitmask_sspp;
 	ops->get_bitmask_mixer = dpu_hw_ctl_get_bitmask_mixer;
-	ops->get_bitmask_dspp = dpu_hw_ctl_get_bitmask_dspp;
-	ops->get_bitmask_dspp_pavlut = dpu_hw_ctl_get_bitmask_dspp_pavlut;
 	ops->get_bitmask_intf = dpu_hw_ctl_get_bitmask_intf;
 	ops->get_bitmask_cdm = dpu_hw_ctl_get_bitmask_cdm;
-	ops->reg_dma_flush = dpu_hw_reg_dma_flush;
 };
 
 static struct dpu_hw_blk_ops dpu_hw_ops = {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h
index 185fd26..c66a71f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h
@@ -138,14 +138,6 @@ struct dpu_hw_ctl_ops {
 	uint32_t (*get_bitmask_mixer)(struct dpu_hw_ctl *ctx,
 		enum dpu_lm blk);
 
-	int (*get_bitmask_dspp)(struct dpu_hw_ctl *ctx,
-		u32 *flushbits,
-		enum dpu_dspp blk);
-
-	int (*get_bitmask_dspp_pavlut)(struct dpu_hw_ctl *ctx,
-		u32 *flushbits,
-		enum dpu_dspp blk);
-
 	int (*get_bitmask_intf)(struct dpu_hw_ctl *ctx,
 		u32 *flushbits,
 		enum dpu_intf blk);
@@ -168,13 +160,6 @@ struct dpu_hw_ctl_ops {
 	 */
 	void (*setup_blendstage)(struct dpu_hw_ctl *ctx,
 		enum dpu_lm lm, struct dpu_hw_stage_cfg *cfg);
-
-	/**
-	 * Flush the reg dma by sending last command.
-	 * @ctx       : ctl path ctx pointer
-	 */
-	void (*reg_dma_flush)(struct dpu_hw_ctl *ctx);
-
 };
 
 /**
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
deleted file mode 100644
index a042cab..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#include <drm/msm_drm_pp.h>
-#include "dpu_hw_mdss.h"
-#include "dpu_hwio.h"
-#include "dpu_hw_catalog.h"
-#include "dpu_hw_dspp.h"
-#include "dpu_hw_color_processing.h"
-#include "dpu_dbg.h"
-#include "dpu_ad4.h"
-#include "dpu_kms.h"
-
-static struct dpu_dspp_cfg *_dspp_offset(enum dpu_dspp dspp,
-		struct dpu_mdss_cfg *m,
-		void __iomem *addr,
-		struct dpu_hw_blk_reg_map *b)
-{
-	int i;
-
-	if (!m || !addr || !b)
-		return ERR_PTR(-EINVAL);
-
-	for (i = 0; i < m->dspp_count; i++) {
-		if (dspp == m->dspp[i].id) {
-			b->base_off = addr;
-			b->blk_off = m->dspp[i].base;
-			b->length = m->dspp[i].len;
-			b->hwversion = m->hwversion;
-			b->log_mask = DPU_DBG_MASK_DSPP;
-			return &m->dspp[i];
-		}
-	}
-
-	return ERR_PTR(-EINVAL);
-}
-
-static void _setup_dspp_ops(struct dpu_hw_dspp *c, unsigned long features)
-{
-	int i = 0, ret;
-
-	if (!c || !c->cap || !c->cap->sblk)
-		return;
-
-	for (i = 0; i < DPU_DSPP_MAX; i++) {
-		if (!test_bit(i, &features))
-			continue;
-		switch (i) {
-		case DPU_DSPP_PCC:
-			if (c->cap->sblk->pcc.version ==
-				(DPU_COLOR_PROCESS_VER(0x1, 0x7)))
-				c->ops.setup_pcc = dpu_setup_dspp_pcc_v1_7;
-			else if (c->cap->sblk->pcc.version ==
-					(DPU_COLOR_PROCESS_VER(0x4, 0x0))) {
-				ret = reg_dmav1_init_dspp_op_v4(i, c->idx);
-				if (!ret)
-					c->ops.setup_pcc =
-						reg_dmav1_setup_dspp_pccv4;
-				else
-					c->ops.setup_pcc =
-						dpu_setup_dspp_pccv4;
-			}
-			break;
-		case DPU_DSPP_HSIC:
-			if (c->cap->sblk->hsic.version ==
-				(DPU_COLOR_PROCESS_VER(0x1, 0x7)))
-				c->ops.setup_hue = dpu_setup_dspp_pa_hue_v1_7;
-			break;
-		case DPU_DSPP_VLUT:
-			if (c->cap->sblk->vlut.version ==
-				(DPU_COLOR_PROCESS_VER(0x1, 0x7))) {
-				c->ops.setup_vlut =
-				    dpu_setup_dspp_pa_vlut_v1_7;
-			} else if (c->cap->sblk->vlut.version ==
-					(DPU_COLOR_PROCESS_VER(0x1, 0x8))) {
-				ret = reg_dmav1_init_dspp_op_v4(i, c->idx);
-				if (!ret)
-					c->ops.setup_vlut =
-					reg_dmav1_setup_dspp_vlutv18;
-				else
-					c->ops.setup_vlut =
-					dpu_setup_dspp_pa_vlut_v1_8;
-			}
-			break;
-		case DPU_DSPP_GAMUT:
-			if (c->cap->sblk->gamut.version ==
-					DPU_COLOR_PROCESS_VER(0x4, 0)) {
-				ret = reg_dmav1_init_dspp_op_v4(i, c->idx);
-				if (!ret)
-					c->ops.setup_gamut =
-						reg_dmav1_setup_dspp_3d_gamutv4;
-				else
-					c->ops.setup_gamut =
-						dpu_setup_dspp_3d_gamutv4;
-			}
-			break;
-		case DPU_DSPP_GC:
-			if (c->cap->sblk->gc.version ==
-					DPU_COLOR_PROCESS_VER(0x1, 8)) {
-				ret = reg_dmav1_init_dspp_op_v4(i, c->idx);
-				if (!ret)
-					c->ops.setup_gc =
-						reg_dmav1_setup_dspp_gcv18;
-				/** programming for v18 through ahb is same
-				 * as v17 hence assign v17 function
-				 */
-				else
-					c->ops.setup_gc =
-						dpu_setup_dspp_gc_v1_7;
-			}
-			break;
-		case DPU_DSPP_IGC:
-			if (c->cap->sblk->igc.version ==
-					DPU_COLOR_PROCESS_VER(0x3, 0x1)) {
-				ret = reg_dmav1_init_dspp_op_v4(i, c->idx);
-				if (!ret)
-					c->ops.setup_igc =
-						reg_dmav1_setup_dspp_igcv31;
-				else
-					c->ops.setup_igc =
-						dpu_setup_dspp_igcv3;
-			}
-			break;
-		case DPU_DSPP_AD:
-			if (c->cap->sblk->ad.version ==
-			    DPU_COLOR_PROCESS_VER(4, 0)) {
-				c->ops.setup_ad = dpu_setup_dspp_ad4;
-				c->ops.ad_read_intr_resp =
-					dpu_read_intr_resp_ad4;
-				c->ops.validate_ad = dpu_validate_dspp_ad4;
-			}
-			break;
-		default:
-			break;
-		}
-	}
-}
-
-static struct dpu_hw_blk_ops dpu_hw_ops = {
-	.start = NULL,
-	.stop = NULL,
-};
-
-struct dpu_hw_dspp *dpu_hw_dspp_init(enum dpu_dspp idx,
-			void __iomem *addr,
-			struct dpu_mdss_cfg *m)
-{
-	struct dpu_hw_dspp *c;
-	struct dpu_dspp_cfg *cfg;
-	int rc;
-
-	if (!addr || !m)
-		return ERR_PTR(-EINVAL);
-
-	c = kzalloc(sizeof(*c), GFP_KERNEL);
-	if (!c)
-		return ERR_PTR(-ENOMEM);
-
-	cfg = _dspp_offset(idx, m, addr, &c->hw);
-	if (IS_ERR_OR_NULL(cfg)) {
-		kfree(c);
-		return ERR_PTR(-EINVAL);
-	}
-
-	/* Populate DSPP Top HW block */
-	c->hw_top.base_off = addr;
-	c->hw_top.blk_off = m->dspp_top.base;
-	c->hw_top.length = m->dspp_top.len;
-	c->hw_top.hwversion = m->hwversion;
-	c->hw_top.log_mask = DPU_DBG_MASK_DSPP;
-
-	/* Assign ops */
-	c->idx = idx;
-	c->cap = cfg;
-	_setup_dspp_ops(c, c->cap->features);
-
-	rc = dpu_hw_blk_init(&c->base, DPU_HW_BLK_DSPP, idx, &dpu_hw_ops);
-	if (rc) {
-		DPU_ERROR("failed to init hw blk %d\n", rc);
-		goto blk_init_error;
-	}
-
-	dpu_dbg_reg_register_dump_range(DPU_DBG_NAME, cfg->name, c->hw.blk_off,
-			c->hw.blk_off + c->hw.length, c->hw.xin_id);
-
-	return c;
-
-blk_init_error:
-	kzfree(c);
-
-	return ERR_PTR(rc);
-}
-
-void dpu_hw_dspp_destroy(struct dpu_hw_dspp *dspp)
-{
-	if (dspp) {
-		reg_dmav1_deinit_dspp_ops(dspp->idx);
-		dpu_hw_blk_destroy(&dspp->base);
-	}
-	kfree(dspp);
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h
deleted file mode 100644
index cc72490..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef _DPU_HW_DSPP_H
-#define _DPU_HW_DSPP_H
-
-#include "dpu_hw_blk.h"
-
-struct dpu_hw_dspp;
-
-/**
- * struct dpu_hw_dspp_ops - interface to the dspp hardware driver functions
- * Caller must call the init function to get the dspp context for each dspp
- * Assumption is these functions will be called after clocks are enabled
- */
-struct dpu_hw_dspp_ops {
-	/**
-	 * setup_histogram - setup dspp histogram
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_histogram)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * read_histogram - read dspp histogram
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*read_histogram)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_igc - update dspp igc
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_igc)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_pa - setup dspp pa
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_pa)(struct dpu_hw_dspp *dspp, void *cfg);
-
-	/**
-	 * setup_pcc - setup dspp pcc
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_pcc)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_sharpening - setup dspp sharpening
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_sharpening)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_pa_memcolor - setup dspp memcolor
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_pa_memcolor)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_sixzone - setup dspp six zone
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_sixzone)(struct dpu_hw_dspp *dspp, void *cfg);
-
-	/**
-	 * setup_danger_safe - setup danger safe LUTS
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_danger_safe)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_dither - setup dspp dither
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_dither)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_hue - setup dspp PA hue
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_hue)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_sat - setup dspp PA saturation
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_sat)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_val - setup dspp PA value
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_val)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_cont - setup dspp PA contrast
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_cont)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_vlut - setup dspp PA VLUT
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_vlut)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_gc - update dspp gc
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_gc)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * setup_gamut - update dspp gamut
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to configuration
-	 */
-	void (*setup_gamut)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * validate_ad - check if ad property can be set
-	 * @ctx: Pointer to dspp context
-	 * @prop: Pointer to ad property being validated
-	 */
-	int (*validate_ad)(struct dpu_hw_dspp *ctx, u32 *prop);
-
-	/**
-	 * setup_ad - update the ad property
-	 * @ctx: Pointer to dspp context
-	 * @cfg: Pointer to ad configuration
-	 */
-	void (*setup_ad)(struct dpu_hw_dspp *ctx, void *cfg);
-
-	/**
-	 * ad_read_intr_resp - function to get interrupt response for ad
-	 * @event: Event for which response needs to be read
-	 * @resp: Pointer to u32 where response value is dumped.
-	 */
-	void (*ad_read_intr_resp)(struct dpu_hw_dspp *ctx, u32 event,
-			u32 *resp);
-
-};
-
-/**
- * struct dpu_hw_dspp - dspp description
- * @base: Hardware block base structure
- * @hw: Block hardware details
- * @hw_top: Block hardware top details
- * @idx: DSPP index
- * @cap: Pointer to layer_cfg
- * @ops: Pointer to operations possible for this DSPP
- */
-struct dpu_hw_dspp {
-	struct dpu_hw_blk base;
-	struct dpu_hw_blk_reg_map hw;
-
-	/* dspp top */
-	struct dpu_hw_blk_reg_map hw_top;
-
-	/* dspp */
-	enum dpu_dspp idx;
-	const struct dpu_dspp_cfg *cap;
-
-	/* Ops */
-	struct dpu_hw_dspp_ops ops;
-};
-
-/**
- * dpu_hw_dspp - convert base object dpu_hw_base to container
- * @hw: Pointer to base hardware block
- * return: Pointer to hardware block container
- */
-static inline struct dpu_hw_dspp *to_dpu_hw_dspp(struct dpu_hw_blk *hw)
-{
-	return container_of(hw, struct dpu_hw_dspp, base);
-}
-
-/**
- * dpu_hw_dspp_init - initializes the dspp hw driver object.
- * should be called once before accessing every dspp.
- * @idx:  DSPP index for which driver object is required
- * @addr: Mapped register io address of MDP
- * @Return: pointer to structure or ERR_PTR
- */
-struct dpu_hw_dspp *dpu_hw_dspp_init(enum dpu_dspp idx,
-			void __iomem *addr,
-			struct dpu_mdss_cfg *m);
-
-/**
- * dpu_hw_dspp_destroy(): Destroys DSPP driver context
- * @dspp:   Pointer to DSPP driver context
- */
-void dpu_hw_dspp_destroy(struct dpu_hw_dspp *dspp);
-
-#endif /*_DPU_HW_DSPP_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
index ad21867..75a30db 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
@@ -10,6 +10,7 @@
  * GNU General Public License for more details.
  */
 
+#include <uapi/drm/dpu_drm.h>
 #include "dpu_kms.h"
 #include "dpu_hw_catalog.h"
 #include "dpu_hwio.h"
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
index 70d57c9..fcd164f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
@@ -99,7 +99,6 @@ enum dpu_hw_blk_type {
 	DPU_HW_BLK_TOP = 0,
 	DPU_HW_BLK_SSPP,
 	DPU_HW_BLK_LM,
-	DPU_HW_BLK_DSPP,
 	DPU_HW_BLK_DS,
 	DPU_HW_BLK_CTL,
 	DPU_HW_BLK_CDM,
@@ -461,39 +460,16 @@ struct dpu_mdss_color {
  */
 #define DPU_DBG_MASK_NONE     (1 << 0)
 #define DPU_DBG_MASK_CDM      (1 << 1)
-#define DPU_DBG_MASK_DSPP     (1 << 2)
-#define DPU_DBG_MASK_INTF     (1 << 3)
-#define DPU_DBG_MASK_LM       (1 << 4)
-#define DPU_DBG_MASK_CTL      (1 << 5)
-#define DPU_DBG_MASK_PINGPONG (1 << 6)
-#define DPU_DBG_MASK_SSPP     (1 << 7)
-#define DPU_DBG_MASK_WB       (1 << 8)
-#define DPU_DBG_MASK_TOP      (1 << 9)
-#define DPU_DBG_MASK_VBIF     (1 << 10)
-#define DPU_DBG_MASK_ROT      (1 << 11)
-#define DPU_DBG_MASK_DS       (1 << 12)
-
-/**
- * struct dpu_hw_cp_cfg: hardware dspp/lm feature payload.
- * @payload: Feature specific payload.
- * @len: Length of the payload.
- * @ctl: control pointer associated with dspp/lm.
- * @last_feature: last feature that will be set.
- * @num_of_mixers: number of layer mixers for the display.
- * @mixer_info: mixer info pointer associated with lm.
- * @displayv: height of the display.
- * @displayh: width of the display.
- */
-struct dpu_hw_cp_cfg {
-	void *payload;
-	u32 len;
-	void *ctl;
-	u32 last_feature;
-	u32 num_of_mixers;
-	void *mixer_info;
-	u32 displayv;
-	u32 displayh;
-};
+#define DPU_DBG_MASK_INTF     (1 << 2)
+#define DPU_DBG_MASK_LM       (1 << 3)
+#define DPU_DBG_MASK_CTL      (1 << 4)
+#define DPU_DBG_MASK_PINGPONG (1 << 5)
+#define DPU_DBG_MASK_SSPP     (1 << 6)
+#define DPU_DBG_MASK_WB       (1 << 7)
+#define DPU_DBG_MASK_TOP      (1 << 8)
+#define DPU_DBG_MASK_VBIF     (1 << 9)
+#define DPU_DBG_MASK_ROT      (1 << 10)
+#define DPU_DBG_MASK_DS       (1 << 11)
 
 /**
  * struct dpu_hw_dim_layer: dim layer configs
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
index 0bfb511..84d2176 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
@@ -36,11 +36,6 @@
 #define PP_FBC_BUDGET_CTL               0x038
 #define PP_FBC_LOSSY_MODE               0x03C
 
-#define DITHER_DEPTH_MAP_INDEX 9
-static u32 dither_depth_map[DITHER_DEPTH_MAP_INDEX] = {
-	0, 0, 0, 0, 0, 1, 2, 3, 3
-};
-
 static struct dpu_pingpong_cfg *_pingpong_offset(enum dpu_pingpong pp,
 		struct dpu_mdss_cfg *m,
 		void __iomem *addr,
@@ -109,57 +104,6 @@ static int dpu_hw_pp_poll_timeout_wr_ptr(struct dpu_hw_pingpong *pp,
 	return rc;
 }
 
-static int dpu_hw_pp_setup_dither_v1(struct dpu_hw_pingpong *pp,
-					void *cfg, size_t len)
-{
-	struct dpu_hw_blk_reg_map *c;
-	struct drm_msm_dither *dither = (struct drm_msm_dither *)cfg;
-	u32 base = 0, offset = 0, data = 0, i = 0;
-
-	if (!pp)
-		return -EINVAL;
-
-	c = &pp->hw;
-	base = pp->caps->sblk->dither.base;
-	if (!dither) {
-		/* dither property disable case */
-		DPU_REG_WRITE(c, base, 0);
-		return 0;
-	}
-
-	if (len != sizeof(struct drm_msm_dither)) {
-		DRM_ERROR("input len %zu, expected len %zu\n", len,
-			sizeof(struct drm_msm_dither));
-		return -EINVAL;
-	}
-
-	if (dither->c0_bitdepth >= DITHER_DEPTH_MAP_INDEX ||
-		dither->c1_bitdepth >= DITHER_DEPTH_MAP_INDEX ||
-		dither->c2_bitdepth >= DITHER_DEPTH_MAP_INDEX ||
-		dither->c3_bitdepth >= DITHER_DEPTH_MAP_INDEX)
-		return -EINVAL;
-
-	offset += 4;
-	data = dither_depth_map[dither->c0_bitdepth] & REG_MASK(2);
-	data |= (dither_depth_map[dither->c1_bitdepth] & REG_MASK(2)) << 2;
-	data |= (dither_depth_map[dither->c2_bitdepth] & REG_MASK(2)) << 4;
-	data |= (dither_depth_map[dither->c3_bitdepth] & REG_MASK(2)) << 6;
-	data |= (dither->temporal_en) ? (1 << 8) : 0;
-	DPU_REG_WRITE(c, base + offset, data);
-
-	for (i = 0; i < DITHER_MATRIX_SZ - 3; i += 4) {
-		offset += 4;
-		data = (dither->matrix[i] & REG_MASK(4)) |
-			((dither->matrix[i + 1] & REG_MASK(4)) << 4) |
-			((dither->matrix[i + 2] & REG_MASK(4)) << 8) |
-			((dither->matrix[i + 3] & REG_MASK(4)) << 12);
-		DPU_REG_WRITE(c, base + offset, data);
-	}
-	DPU_REG_WRITE(c, base, 1);
-
-	return 0;
-}
-
 static int dpu_hw_pp_enable_te(struct dpu_hw_pingpong *pp, bool enable)
 {
 	struct dpu_hw_blk_reg_map *c;
@@ -248,24 +192,12 @@ static u32 dpu_hw_pp_get_line_count(struct dpu_hw_pingpong *pp)
 static void _setup_pingpong_ops(struct dpu_hw_pingpong_ops *ops,
 	const struct dpu_pingpong_cfg *hw_cap)
 {
-	u32 version = 0;
-
 	ops->setup_tearcheck = dpu_hw_pp_setup_te_config;
 	ops->enable_tearcheck = dpu_hw_pp_enable_te;
 	ops->connect_external_te = dpu_hw_pp_connect_external_te;
 	ops->get_vsync_info = dpu_hw_pp_get_vsync_info;
 	ops->poll_timeout_wr_ptr = dpu_hw_pp_poll_timeout_wr_ptr;
 	ops->get_line_count = dpu_hw_pp_get_line_count;
-
-	version = DPU_COLOR_PROCESS_MAJOR(hw_cap->sblk->dither.version);
-	switch (version) {
-	case 1:
-		ops->setup_dither = dpu_hw_pp_setup_dither_v1;
-		break;
-	default:
-		ops->setup_dither = NULL;
-		break;
-	}
 };
 
 static struct dpu_hw_blk_ops dpu_hw_ops = {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h
index 7dbfcae4..3caccd7 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h
@@ -17,7 +17,6 @@
 #include "dpu_hw_mdss.h"
 #include "dpu_hw_util.h"
 #include "dpu_hw_blk.h"
-#include <uapi/drm/msm_drm_pp.h>
 
 struct dpu_hw_pingpong;
 
@@ -88,11 +87,6 @@ struct dpu_hw_pingpong_ops {
 	int (*poll_timeout_wr_ptr)(struct dpu_hw_pingpong *pp, u32 timeout_us);
 
 	/**
-	 * Program the dither hw block
-	 */
-	int (*setup_dither)(struct dpu_hw_pingpong *pp, void *cfg, size_t len);
-
-	/**
 	 * Obtain current vertical line counter
 	 */
 	u32 (*get_line_count)(struct dpu_hw_pingpong *pp);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c
deleted file mode 100644
index 7c2772f..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c
+++ /dev/null
@@ -1,757 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#include "dpu_hw_mdss.h"
-#include "dpu_hw_ctl.h"
-#include "dpu_hw_reg_dma_v1.h"
-#include "msm_drv.h"
-#include "msm_kms.h"
-#include "msm_mmu.h"
-
-#define GUARD_BYTES (BIT(8) - 1)
-#define ALIGNED_OFFSET (U32_MAX & ~(GUARD_BYTES))
-#define ADDR_ALIGN BIT(8)
-#define MAX_RELATIVE_OFF (BIT(20) - 1)
-
-#define DECODE_SEL_OP (BIT(HW_BLK_SELECT))
-#define REG_WRITE_OP ((BIT(REG_SINGLE_WRITE)) | (BIT(REG_BLK_WRITE_SINGLE)) | \
-	(BIT(REG_BLK_WRITE_INC)) | (BIT(REG_BLK_WRITE_MULTIPLE)))
-
-#define REG_DMA_OPS (DECODE_SEL_OP | REG_WRITE_OP)
-#define IS_OP_ALLOWED(op, buf_op) (BIT(op) & buf_op)
-
-#define REG_DMA_OP_MODE_OFF 0x4
-
-#define REG_DMA_CTL0_QUEUE_0_CMD0_OFF 0x14
-#define REG_DMA_CTL0_RESET_OFF 0xE4
-#define REG_DMA_CTL_TRIGGER_OFF 0xD4
-
-#define SET_UP_REG_DMA_REG(hw, reg_dma) \
-	do { \
-		(hw).base_off = (reg_dma)->addr; \
-		(hw).blk_off = (reg_dma)->caps->base; \
-		(hw).hwversion = (reg_dma)->caps->version; \
-} while (0)
-
-#define SIZE_DWORD(x) ((x) / (sizeof(u32)))
-#define NOT_WORD_ALIGNED(x) ((x) & 0x3)
-
-
-#define GRP_VIG_HW_BLK_SELECT (VIG0 | VIG1 | VIG2 | VIG3)
-#define GRP_DSPP_HW_BLK_SELECT (DSPP0 | DSPP1 | DSPP2 | DSPP3)
-#define BUFFER_SPACE_LEFT(cfg) ((cfg)->dma_buf->buffer_size - \
-			(cfg)->dma_buf->index)
-
-#define REG_DMA_DECODE_SEL 0x180AC060
-#define SINGLE_REG_WRITE_OPCODE (BIT(28))
-#define REL_ADDR_OPCODE (BIT(27))
-#define HW_INDEX_REG_WRITE_OPCODE (BIT(28) | BIT(29))
-#define AUTO_INC_REG_WRITE_OPCODE (BIT(30))
-#define BLK_REG_WRITE_OPCODE (BIT(30) | BIT(28))
-
-#define WRAP_MIN_SIZE 2
-#define WRAP_MAX_SIZE (BIT(4) - 1)
-#define MAX_DWORDS_SZ (BIT(14) - 1)
-#define REG_DMA_HEADERS_BUFFER_SZ (sizeof(u32) * 128)
-
-typedef int (*reg_dma_internal_ops) (struct dpu_reg_dma_setup_ops_cfg *cfg);
-
-static struct dpu_hw_reg_dma *reg_dma;
-static u32 ops_mem_size[REG_DMA_SETUP_OPS_MAX] = {
-	[REG_BLK_WRITE_SINGLE] = sizeof(u32) * 2,
-	[REG_BLK_WRITE_INC] = sizeof(u32) * 2,
-	[REG_BLK_WRITE_MULTIPLE] = sizeof(u32) * 2,
-	[HW_BLK_SELECT] = sizeof(u32) * 2,
-	[REG_SINGLE_WRITE] = sizeof(u32) * 2
-};
-
-static u32 queue_sel[DMA_CTL_QUEUE_MAX] = {
-	[DMA_CTL_QUEUE0] = BIT(0),
-	[DMA_CTL_QUEUE1] = BIT(4),
-};
-
-static u32 reg_dma_ctl_queue_off[CTL_MAX];
-static u32 dspp_read_sel[DSPP_HIST_MAX] = {
-	[DSPP0_HIST] = 0,
-	[DSPP1_HIST] = 1,
-	[DSPP2_HIST] = 2,
-	[DSPP3_HIST] = 3,
-};
-
-static u32 v1_supported[REG_DMA_FEATURES_MAX]  = {
-	[GAMUT] = GRP_VIG_HW_BLK_SELECT | GRP_DSPP_HW_BLK_SELECT,
-	[VLUT] = GRP_DSPP_HW_BLK_SELECT,
-	[GC] = GRP_DSPP_HW_BLK_SELECT,
-	[IGC] = DSPP_IGC | GRP_DSPP_HW_BLK_SELECT,
-	[PCC] = GRP_DSPP_HW_BLK_SELECT,
-};
-
-static int validate_dma_cfg(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int validate_write_decode_sel(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int validate_write_reg(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int validate_write_multi_lut_reg(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int validate_last_cmd(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_decode_sel(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_single_reg(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_multi_reg_index(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_multi_reg_inc(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_multi_lut_reg(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int write_last_cmd(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int reset_reg_dma_buffer_v1(struct dpu_reg_dma_buffer *lut_buf);
-static int check_support_v1(enum dpu_reg_dma_features feature,
-		enum dpu_reg_dma_blk blk, bool *is_supported);
-static int setup_payload_v1(struct dpu_reg_dma_setup_ops_cfg *cfg);
-static int kick_off_v1(struct dpu_reg_dma_kickoff_cfg *cfg);
-static int reset_v1(struct dpu_hw_ctl *ctl);
-static int last_cmd_v1(struct dpu_hw_ctl *ctl, enum dpu_reg_dma_queue q);
-static struct dpu_reg_dma_buffer *alloc_reg_dma_buf_v1(u32 size);
-static int dealloc_reg_dma_v1(struct dpu_reg_dma_buffer *lut_buf);
-
-static reg_dma_internal_ops write_dma_op_params[REG_DMA_SETUP_OPS_MAX] = {
-	[HW_BLK_SELECT] = write_decode_sel,
-	[REG_SINGLE_WRITE] = write_single_reg,
-	[REG_BLK_WRITE_SINGLE] = write_multi_reg_inc,
-	[REG_BLK_WRITE_INC] = write_multi_reg_index,
-	[REG_BLK_WRITE_MULTIPLE] = write_multi_lut_reg,
-};
-
-static reg_dma_internal_ops validate_dma_op_params[REG_DMA_SETUP_OPS_MAX] = {
-	[HW_BLK_SELECT] = validate_write_decode_sel,
-	[REG_SINGLE_WRITE] = validate_write_reg,
-	[REG_BLK_WRITE_SINGLE] = validate_write_reg,
-	[REG_BLK_WRITE_INC] = validate_write_reg,
-	[REG_BLK_WRITE_MULTIPLE] = validate_write_multi_lut_reg,
-};
-
-static struct dpu_reg_dma_buffer *last_cmd_buf;
-
-static void get_decode_sel(unsigned long blk, u32 *decode_sel)
-{
-	int i = 0;
-
-	*decode_sel = 0;
-	for_each_set_bit(i, &blk, 31) {
-		switch (BIT(i)) {
-		case VIG0:
-			*decode_sel |= BIT(0);
-			break;
-		case VIG1:
-			*decode_sel |= BIT(1);
-			break;
-		case VIG2:
-			*decode_sel |= BIT(2);
-			break;
-		case VIG3:
-			*decode_sel |= BIT(3);
-			break;
-		case DSPP0:
-			*decode_sel |= BIT(17);
-			break;
-		case DSPP1:
-			*decode_sel |= BIT(18);
-			break;
-		case DSPP2:
-			*decode_sel |= BIT(19);
-			break;
-		case DSPP3:
-			*decode_sel |= BIT(20);
-			break;
-		case SSPP_IGC:
-			*decode_sel |= BIT(4);
-			break;
-		case DSPP_IGC:
-			*decode_sel |= BIT(21);
-			break;
-		default:
-			DRM_ERROR("block not supported %lx\n", BIT(i));
-			break;
-		}
-	}
-}
-
-static int write_multi_reg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u8 *loc = NULL;
-
-	loc =  (u8 *)cfg->dma_buf->vaddr + cfg->dma_buf->index;
-	memcpy(loc, cfg->data, cfg->data_size);
-	cfg->dma_buf->index += cfg->data_size;
-	cfg->dma_buf->next_op_allowed = REG_WRITE_OP | DECODE_SEL_OP;
-	cfg->dma_buf->ops_completed |= REG_WRITE_OP;
-
-	return 0;
-}
-
-int write_multi_reg_index(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = HW_INDEX_REG_WRITE_OPCODE;
-	loc[0] |= (cfg->blk_offset & MAX_RELATIVE_OFF);
-	loc[1] = SIZE_DWORD(cfg->data_size);
-	cfg->dma_buf->index += ops_mem_size[cfg->ops];
-
-	return write_multi_reg(cfg);
-}
-
-int write_multi_reg_inc(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = AUTO_INC_REG_WRITE_OPCODE;
-	loc[0] |= (cfg->blk_offset & MAX_RELATIVE_OFF);
-	loc[1] = SIZE_DWORD(cfg->data_size);
-	cfg->dma_buf->index += ops_mem_size[cfg->ops];
-
-	return write_multi_reg(cfg);
-}
-
-static int write_multi_lut_reg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = BLK_REG_WRITE_OPCODE;
-	loc[0] |= (cfg->blk_offset & MAX_RELATIVE_OFF);
-	loc[1] = (cfg->inc) ? 0 : BIT(31);
-	loc[1] |= (cfg->wrap_size & WRAP_MAX_SIZE) << 16;
-	loc[1] |= ((SIZE_DWORD(cfg->data_size)) & MAX_DWORDS_SZ);
-	cfg->dma_buf->next_op_allowed = REG_WRITE_OP;
-	cfg->dma_buf->index += ops_mem_size[cfg->ops];
-
-	return write_multi_reg(cfg);
-}
-
-static int write_single_reg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = SINGLE_REG_WRITE_OPCODE;
-	loc[0] |= (cfg->blk_offset & MAX_RELATIVE_OFF);
-	loc[1] = *cfg->data;
-	cfg->dma_buf->index += ops_mem_size[cfg->ops];
-	cfg->dma_buf->ops_completed |= REG_WRITE_OP;
-	cfg->dma_buf->next_op_allowed = REG_WRITE_OP | DECODE_SEL_OP;
-
-	return 0;
-}
-
-static int write_decode_sel(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = REG_DMA_DECODE_SEL;
-	get_decode_sel(cfg->blk, &loc[1]);
-	cfg->dma_buf->index += sizeof(u32) * 2;
-	cfg->dma_buf->ops_completed |= DECODE_SEL_OP;
-	cfg->dma_buf->next_op_allowed = REG_WRITE_OP;
-
-	return 0;
-}
-
-static int validate_write_multi_lut_reg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	int rc;
-
-	rc = validate_write_reg(cfg);
-	if (rc)
-		return rc;
-
-	if (cfg->wrap_size < WRAP_MIN_SIZE || cfg->wrap_size > WRAP_MAX_SIZE) {
-		DRM_ERROR("invalid wrap sz %d min %d max %ld\n",
-			cfg->wrap_size, WRAP_MIN_SIZE, WRAP_MAX_SIZE);
-		rc = -EINVAL;
-	}
-
-	return rc;
-}
-
-static int validate_write_reg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 remain_len, write_len;
-
-	remain_len = BUFFER_SPACE_LEFT(cfg);
-	write_len = ops_mem_size[cfg->ops] + cfg->data_size;
-	if (remain_len < write_len) {
-		DRM_ERROR("buffer is full sz %d needs %d bytes\n",
-				remain_len, write_len);
-		return -EINVAL;
-	}
-
-	if (!cfg->data) {
-		DRM_ERROR("invalid data %pK size %d exp sz %d\n", cfg->data,
-			cfg->data_size, write_len);
-		return -EINVAL;
-	}
-	if ((SIZE_DWORD(cfg->data_size)) > MAX_DWORDS_SZ ||
-	    NOT_WORD_ALIGNED(cfg->data_size)) {
-		DRM_ERROR("Invalid data size %d max %ld align %x\n",
-			cfg->data_size, MAX_DWORDS_SZ,
-			NOT_WORD_ALIGNED(cfg->data_size));
-		return -EINVAL;
-	}
-
-	if (cfg->blk_offset > MAX_RELATIVE_OFF ||
-			NOT_WORD_ALIGNED(cfg->blk_offset)) {
-		DRM_ERROR("invalid offset %d max %ld align %x\n",
-				cfg->blk_offset, MAX_RELATIVE_OFF,
-				NOT_WORD_ALIGNED(cfg->blk_offset));
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int validate_write_decode_sel(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 remain_len;
-
-	remain_len = BUFFER_SPACE_LEFT(cfg);
-	if (remain_len < ops_mem_size[HW_BLK_SELECT]) {
-		DRM_ERROR("buffer is full needs %d bytes\n",
-				ops_mem_size[HW_BLK_SELECT]);
-		return -EINVAL;
-	}
-
-	if (!cfg->blk) {
-		DRM_ERROR("blk set as 0\n");
-		return -EINVAL;
-	}
-	/* DSPP and VIG can't be combined */
-	if ((cfg->blk & GRP_VIG_HW_BLK_SELECT) &&
-		(cfg->blk & GRP_DSPP_HW_BLK_SELECT)) {
-		DRM_ERROR("invalid blk combination %x\n",
-			    cfg->blk);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int validate_dma_cfg(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	int rc = 0;
-	bool supported;
-
-	if (!cfg || cfg->ops >= REG_DMA_SETUP_OPS_MAX || !cfg->dma_buf) {
-		DRM_ERROR("invalid param cfg %pK ops %d dma_buf %pK\n",
-			cfg, ((cfg) ? cfg->ops : REG_DMA_SETUP_OPS_MAX),
-			((cfg) ? cfg->dma_buf : NULL));
-		return -EINVAL;
-	}
-
-	rc = check_support_v1(cfg->feature, cfg->blk, &supported);
-	if (rc || !supported) {
-		DRM_ERROR("check support failed rc %d supported %d\n",
-				rc, supported);
-		rc = -EINVAL;
-		return rc;
-	}
-
-	if (cfg->dma_buf->index >= cfg->dma_buf->buffer_size ||
-	    NOT_WORD_ALIGNED(cfg->dma_buf->index)) {
-		DRM_ERROR("Buf Overflow index %d max size %d align %x\n",
-			cfg->dma_buf->index, cfg->dma_buf->buffer_size,
-			NOT_WORD_ALIGNED(cfg->dma_buf->index));
-		return -EINVAL;
-	}
-
-	if (cfg->dma_buf->iova & GUARD_BYTES || !cfg->dma_buf->vaddr) {
-		DRM_ERROR("iova not aligned to %lx iova %llx kva %pK",
-				ADDR_ALIGN, cfg->dma_buf->iova,
-				cfg->dma_buf->vaddr);
-		return -EINVAL;
-	}
-	if (!IS_OP_ALLOWED(cfg->ops, cfg->dma_buf->next_op_allowed)) {
-		DRM_ERROR("invalid op %x allowed %x\n", cfg->ops,
-				cfg->dma_buf->next_op_allowed);
-		return -EINVAL;
-	}
-
-	if (!validate_dma_op_params[cfg->ops] ||
-	    !write_dma_op_params[cfg->ops]) {
-		DRM_ERROR("invalid op %d validate %pK write %pK\n", cfg->ops,
-			validate_dma_op_params[cfg->ops],
-			write_dma_op_params[cfg->ops]);
-		return -EINVAL;
-	}
-	return rc;
-}
-
-static int validate_kick_off_v1(struct dpu_reg_dma_kickoff_cfg *cfg)
-{
-
-	if (!cfg || !cfg->ctl || !cfg->dma_buf) {
-		DRM_ERROR("invalid cfg %pK ctl %pK dma_buf %pK\n",
-			cfg, ((!cfg) ? NULL : cfg->ctl),
-			((!cfg) ? NULL : cfg->dma_buf));
-		return -EINVAL;
-	}
-
-	if (cfg->ctl->idx < CTL_0 && cfg->ctl->idx >= CTL_MAX) {
-		DRM_ERROR("invalid ctl idx %d\n", cfg->ctl->idx);
-		return -EINVAL;
-	}
-
-	if (cfg->op >= REG_DMA_OP_MAX) {
-		DRM_ERROR("invalid op %d\n", cfg->op);
-		return -EINVAL;
-	}
-
-	if ((cfg->op == REG_DMA_WRITE) &&
-	     (!(cfg->dma_buf->ops_completed & DECODE_SEL_OP) ||
-	     !(cfg->dma_buf->ops_completed & REG_WRITE_OP))) {
-		DRM_ERROR("incomplete write ops %x\n",
-				cfg->dma_buf->ops_completed);
-		return -EINVAL;
-	}
-
-	if (cfg->op == REG_DMA_READ && cfg->block_select >= DSPP_HIST_MAX) {
-		DRM_ERROR("invalid block for read %d\n", cfg->block_select);
-		return -EINVAL;
-	}
-
-	/* Only immediate triggers are supported now hence hardcode */
-	cfg->trigger_mode = (cfg->op == REG_DMA_READ) ? (READ_TRIGGER) :
-				(WRITE_TRIGGER);
-
-	if (cfg->dma_buf->iova & GUARD_BYTES) {
-		DRM_ERROR("Address is not aligned to %lx iova %llx", ADDR_ALIGN,
-				cfg->dma_buf->iova);
-		return -EINVAL;
-	}
-
-	if (cfg->queue_select >= DMA_CTL_QUEUE_MAX) {
-		DRM_ERROR("invalid queue selected %d\n", cfg->queue_select);
-		return -EINVAL;
-	}
-
-	if (SIZE_DWORD(cfg->dma_buf->index) > MAX_DWORDS_SZ ||
-			!cfg->dma_buf->index) {
-		DRM_ERROR("invalid dword size %zd max %ld\n",
-			SIZE_DWORD(cfg->dma_buf->index), MAX_DWORDS_SZ);
-		return -EINVAL;
-	}
-	return 0;
-}
-
-static int write_kick_off_v1(struct dpu_reg_dma_kickoff_cfg *cfg)
-{
-	u32 cmd1;
-	struct dpu_hw_blk_reg_map hw;
-
-	memset(&hw, 0, sizeof(hw));
-	cmd1 = (cfg->op == REG_DMA_READ) ?
-		(dspp_read_sel[cfg->block_select] << 30) : 0;
-	cmd1 |= (cfg->last_command) ? BIT(24) : 0;
-	cmd1 |= (cfg->op == REG_DMA_READ) ? (2 << 22) : 0;
-	cmd1 |= (cfg->op == REG_DMA_WRITE) ? (BIT(22)) : 0;
-	cmd1 |= (SIZE_DWORD(cfg->dma_buf->index) & MAX_DWORDS_SZ);
-
-	SET_UP_REG_DMA_REG(hw, reg_dma);
-	DPU_REG_WRITE(&hw, REG_DMA_OP_MODE_OFF, BIT(0));
-	DPU_REG_WRITE(&hw, reg_dma_ctl_queue_off[cfg->ctl->idx],
-			cfg->dma_buf->iova);
-	DPU_REG_WRITE(&hw, reg_dma_ctl_queue_off[cfg->ctl->idx] + 0x4,
-			cmd1);
-	if (cfg->last_command)
-		DPU_REG_WRITE(&cfg->ctl->hw, REG_DMA_CTL_TRIGGER_OFF,
-			queue_sel[cfg->queue_select]);
-
-	return 0;
-}
-
-int init_v1(struct dpu_hw_reg_dma *cfg)
-{
-	int i = 0;
-
-	if (!cfg)
-		return -EINVAL;
-
-	reg_dma = cfg;
-	if (!last_cmd_buf) {
-		last_cmd_buf = alloc_reg_dma_buf_v1(REG_DMA_HEADERS_BUFFER_SZ);
-		if (IS_ERR_OR_NULL(last_cmd_buf))
-			return -EINVAL;
-	}
-	reg_dma->ops.check_support = check_support_v1;
-	reg_dma->ops.setup_payload = setup_payload_v1;
-	reg_dma->ops.kick_off = kick_off_v1;
-	reg_dma->ops.reset = reset_v1;
-	reg_dma->ops.alloc_reg_dma_buf = alloc_reg_dma_buf_v1;
-	reg_dma->ops.dealloc_reg_dma = dealloc_reg_dma_v1;
-	reg_dma->ops.reset_reg_dma_buf = reset_reg_dma_buffer_v1;
-	reg_dma->ops.last_command = last_cmd_v1;
-
-	reg_dma_ctl_queue_off[CTL_0] = REG_DMA_CTL0_QUEUE_0_CMD0_OFF;
-	for (i = CTL_1; i < ARRAY_SIZE(reg_dma_ctl_queue_off); i++)
-		reg_dma_ctl_queue_off[i] = reg_dma_ctl_queue_off[i - 1] +
-			(sizeof(u32) * 4);
-
-	return 0;
-}
-
-static int check_support_v1(enum dpu_reg_dma_features feature,
-		     enum dpu_reg_dma_blk blk,
-		     bool *is_supported)
-{
-	int ret = 0;
-
-	if (!is_supported)
-		return -EINVAL;
-
-	if (feature >= REG_DMA_FEATURES_MAX || blk >= MDSS) {
-		*is_supported = false;
-		return ret;
-	}
-
-	*is_supported = (blk & v1_supported[feature]) ? true : false;
-	return ret;
-}
-
-static int setup_payload_v1(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	int rc = 0;
-
-	rc = validate_dma_cfg(cfg);
-
-	if (!rc)
-		rc = validate_dma_op_params[cfg->ops](cfg);
-
-	if (!rc)
-		rc = write_dma_op_params[cfg->ops](cfg);
-
-	return rc;
-}
-
-
-static int kick_off_v1(struct dpu_reg_dma_kickoff_cfg *cfg)
-{
-	int rc = 0;
-
-	rc = validate_kick_off_v1(cfg);
-	if (rc)
-		return rc;
-
-	rc = write_kick_off_v1(cfg);
-	return rc;
-}
-
-int reset_v1(struct dpu_hw_ctl *ctl)
-{
-	struct dpu_hw_blk_reg_map hw;
-	u32 index, val;
-
-	if (!ctl || ctl->idx > CTL_MAX) {
-		DRM_ERROR("invalid ctl %pK ctl idx %d\n",
-			ctl, ((ctl) ? ctl->idx : 0));
-		return -EINVAL;
-	}
-
-	memset(&hw, 0, sizeof(hw));
-	index = ctl->idx - CTL_0;
-	SET_UP_REG_DMA_REG(hw, reg_dma);
-	DPU_REG_WRITE(&hw, REG_DMA_OP_MODE_OFF, BIT(0));
-	DPU_REG_WRITE(&hw, (REG_DMA_CTL0_RESET_OFF + index * sizeof(u32)),
-			BIT(0));
-
-	index = 0;
-	do {
-		udelay(1000);
-		index++;
-		val = DPU_REG_READ(&hw,
-			(REG_DMA_CTL0_RESET_OFF + index * sizeof(u32)));
-	} while (index < 2 && val);
-
-	return 0;
-}
-
-static struct dpu_reg_dma_buffer *alloc_reg_dma_buf_v1(u32 size)
-{
-	struct dpu_reg_dma_buffer *dma_buf = NULL;
-	u32 iova_aligned, offset;
-	u32 rsize = size + GUARD_BYTES;
-	struct msm_drm_private *priv = reg_dma->drm_dev->dev_private;
-	struct msm_gem_address_space *aspace = NULL;
-	int rc = 0;
-
-	if (!size || SIZE_DWORD(size) > MAX_DWORDS_SZ) {
-		DRM_ERROR("invalid buffer size %d\n", size);
-		return ERR_PTR(-EINVAL);
-	}
-
-	dma_buf = kzalloc(sizeof(*dma_buf), GFP_KERNEL);
-	if (!dma_buf)
-		return ERR_PTR(-ENOMEM);
-
-	dma_buf->buf = msm_gem_new(reg_dma->drm_dev,
-				    rsize, MSM_BO_UNCACHED);
-	if (IS_ERR_OR_NULL(dma_buf->buf)) {
-		rc = -EINVAL;
-		goto fail;
-	}
-
-	aspace = priv->kms->aspace;
-	if (!aspace) {
-		DRM_ERROR("failed to get aspace\n");
-		rc = -EINVAL;
-		goto free_gem;
-	}
-
-	dma_buf->aspace = aspace;
-	rc = msm_gem_get_iova(dma_buf->buf, aspace, &dma_buf->iova);
-	if (rc) {
-		DRM_ERROR("failed to get the iova rc %d\n", rc);
-		goto free_gem;
-	}
-
-	dma_buf->vaddr = msm_gem_get_vaddr(dma_buf->buf);
-	if (IS_ERR_OR_NULL(dma_buf->vaddr)) {
-		DRM_ERROR("failed to get va rc %d\n", rc);
-		rc = -EINVAL;
-		goto put_iova;
-	}
-
-	dma_buf->buffer_size = size;
-	iova_aligned = (dma_buf->iova + GUARD_BYTES) & ALIGNED_OFFSET;
-	offset = iova_aligned - dma_buf->iova;
-	dma_buf->iova = dma_buf->iova + offset;
-	dma_buf->vaddr = (void *)(((u8 *)dma_buf->vaddr) + offset);
-	dma_buf->next_op_allowed = DECODE_SEL_OP;
-
-	return dma_buf;
-
-put_iova:
-	msm_gem_put_iova(dma_buf->buf, aspace);
-free_gem:
-	mutex_lock(&reg_dma->drm_dev->struct_mutex);
-	msm_gem_free_object(dma_buf->buf);
-	mutex_unlock(&reg_dma->drm_dev->struct_mutex);
-fail:
-	kfree(dma_buf);
-	return ERR_PTR(rc);
-}
-
-static int dealloc_reg_dma_v1(struct dpu_reg_dma_buffer *dma_buf)
-{
-	if (!dma_buf) {
-		DRM_ERROR("invalid param reg_buf %pK\n", dma_buf);
-		return -EINVAL;
-	}
-
-	if (dma_buf->buf) {
-		msm_gem_put_iova(dma_buf->buf, 0);
-		mutex_lock(&reg_dma->drm_dev->struct_mutex);
-		msm_gem_free_object(dma_buf->buf);
-		mutex_unlock(&reg_dma->drm_dev->struct_mutex);
-	}
-
-	kfree(dma_buf);
-	return 0;
-}
-
-static int reset_reg_dma_buffer_v1(struct dpu_reg_dma_buffer *lut_buf)
-{
-	if (!lut_buf)
-		return -EINVAL;
-
-	lut_buf->index = 0;
-	lut_buf->ops_completed = 0;
-	lut_buf->next_op_allowed = DECODE_SEL_OP;
-	return 0;
-}
-
-static int validate_last_cmd(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 remain_len, write_len;
-
-	remain_len = BUFFER_SPACE_LEFT(cfg);
-	write_len = sizeof(u32);
-	if (remain_len < write_len) {
-		DRM_ERROR("buffer is full sz %d needs %d bytes\n",
-				remain_len, write_len);
-		return -EINVAL;
-	}
-	return 0;
-}
-
-static int write_last_cmd(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	u32 *loc = NULL;
-
-	loc =  (u32 *)((u8 *)cfg->dma_buf->vaddr +
-			cfg->dma_buf->index);
-	loc[0] = REG_DMA_DECODE_SEL;
-	loc[1] = 0;
-	cfg->dma_buf->index = sizeof(u32) * 2;
-	cfg->dma_buf->ops_completed = REG_WRITE_OP | DECODE_SEL_OP;
-	cfg->dma_buf->next_op_allowed = REG_WRITE_OP;
-
-	return 0;
-}
-
-static int last_cmd_v1(struct dpu_hw_ctl *ctl, enum dpu_reg_dma_queue q)
-{
-	struct dpu_reg_dma_setup_ops_cfg cfg;
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-
-	if (!last_cmd_buf || !ctl || q >= DMA_CTL_QUEUE_MAX) {
-		DRM_ERROR("invalid param buf %pK ctl %pK q %d\n", last_cmd_buf,
-				ctl, q);
-		return -EINVAL;
-	}
-
-	if (!last_cmd_buf->iova) {
-		DRM_DEBUG("iova not set, possible secure session\n");
-		return 0;
-	}
-
-	cfg.dma_buf = last_cmd_buf;
-	reset_reg_dma_buffer_v1(last_cmd_buf);
-	if (validate_last_cmd(&cfg)) {
-		DRM_ERROR("validate buf failed\n");
-		return -EINVAL;
-	}
-
-	if (write_last_cmd(&cfg)) {
-		DRM_ERROR("write buf failed\n");
-		return -EINVAL;
-	}
-
-	kick_off.ctl = ctl;
-	kick_off.queue_select = q;
-	kick_off.trigger_mode = WRITE_IMMEDIATE;
-	kick_off.last_command = 1;
-	kick_off.op = REG_DMA_WRITE;
-	kick_off.dma_buf = last_cmd_buf;
-	if (kick_off_v1(&kick_off)) {
-		DRM_ERROR("kick off last cmd failed\n");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-void deinit_v1(void)
-{
-	if (last_cmd_buf)
-		dealloc_reg_dma_v1(last_cmd_buf);
-	last_cmd_buf = NULL;
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h
deleted file mode 100644
index 4d784eb..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#ifndef _DPU_HW_REG_DMA_V1_H
-#define _DPU_HW_REG_DMA_V1_H
-
-#include "dpu_reg_dma.h"
-
-/**
- * init_v1() - initialize the reg dma v1 driver by installing v1 ops
- * @reg_dma - reg_dma hw info structure exposing capabilities.
- */
-int init_v1(struct dpu_hw_reg_dma *reg_dma);
-
-/**
- * deinit_v1() - free up any resources allocated during the v1 reg dma init
- */
-void deinit_v1(void);
-#endif /* _DPU_HW_REG_DMA_V1_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c
deleted file mode 100644
index d21aa6f..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c
+++ /dev/null
@@ -1,943 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#include <drm/msm_drm_pp.h>
-#include "dpu_reg_dma.h"
-#include "dpu_hw_reg_dma_v1_color_proc.h"
-#include "dpu_hw_color_proc_common_v4.h"
-
-/* Reserve space of 128 words for LUT dma payload set-up */
-#define REG_DMA_HEADERS_BUFFER_SZ (sizeof(u32) * 128)
-
-#define VLUT_MEM_SIZE ((128 * sizeof(u32)) + REG_DMA_HEADERS_BUFFER_SZ)
-#define VLUT_LEN (128 * sizeof(u32))
-#define PA_OP_MODE_OFF 0x800
-#define PA_LUTV_OPMODE_OFF 0x84c
-
-#define GAMUT_LUT_MEM_SIZE ((sizeof(struct drm_msm_3d_gamut)) + \
-		REG_DMA_HEADERS_BUFFER_SZ)
-#define GAMUT_SCALE_OFF_LEN (GAMUT_3D_SCALE_OFF_SZ * \
-		GAMUT_3D_SCALE_OFF_TBL_NUM * sizeof(u32))
-#define GAMUT_SCALE_OFF_LEN_12 (GAMUT_3D_SCALEB_OFF_SZ * sizeof(u32))
-
-#define GC_LUT_MEM_SIZE ((sizeof(struct drm_msm_pgc_lut)) + \
-		REG_DMA_HEADERS_BUFFER_SZ)
-
-#define IGC_LUT_MEM_SIZE ((sizeof(struct drm_msm_igc_lut)) + \
-		REG_DMA_HEADERS_BUFFER_SZ)
-
-#define PCC_LUT_ENTRIES (PCC_NUM_PLANES * PCC_NUM_COEFF)
-#define PCC_LEN (PCC_LUT_ENTRIES * sizeof(u32))
-#define PCC_MEM_SIZE (PCC_LEN + \
-		REG_DMA_HEADERS_BUFFER_SZ)
-
-#define REG_MASK(n) ((BIT(n)) - 1)
-
-static struct dpu_reg_dma_buffer *dspp_buf[REG_DMA_FEATURES_MAX][DSPP_MAX];
-
-static u32 feature_map[DPU_DSPP_MAX] = {
-	[DPU_DSPP_VLUT] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_GAMUT] = GAMUT,
-	[DPU_DSPP_IGC] = IGC,
-	[DPU_DSPP_PCC] = PCC,
-	[DPU_DSPP_GC] = GC,
-	[DPU_DSPP_HSIC] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_MEMCOLOR] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_SIXZONE] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_DITHER] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_HIST] = REG_DMA_FEATURES_MAX,
-	[DPU_DSPP_AD] = REG_DMA_FEATURES_MAX,
-};
-
-static u32 feature_reg_dma_sz[DPU_DSPP_MAX] = {
-	[DPU_DSPP_VLUT] = VLUT_MEM_SIZE,
-	[DPU_DSPP_GAMUT] = GAMUT_LUT_MEM_SIZE,
-	[DPU_DSPP_GC] = GC_LUT_MEM_SIZE,
-	[DPU_DSPP_IGC] = IGC_LUT_MEM_SIZE,
-	[DPU_DSPP_PCC] = PCC_MEM_SIZE,
-};
-
-static u32 dspp_mapping[DSPP_MAX] = {
-	[DSPP_0] = DSPP0,
-	[DSPP_1] = DSPP1,
-	[DSPP_2] = DSPP2,
-	[DSPP_3] = DSPP3,
-};
-
-#define REG_DMA_INIT_OPS(cfg, block, reg_dma_feature, feature_dma_buf) \
-	do { \
-		memset(&cfg, 0, sizeof(cfg)); \
-		(cfg).blk = block; \
-		(cfg).feature = reg_dma_feature; \
-		(cfg).dma_buf = feature_dma_buf; \
-	} while (0)
-
-#define REG_DMA_SETUP_OPS(cfg, block_off, data_ptr, data_len, op, \
-		wrap_sz, wrap_inc) \
-	do { \
-		(cfg).ops = op; \
-		(cfg).blk_offset = block_off; \
-		(cfg).data_size = data_len; \
-		(cfg).data = data_ptr; \
-		(cfg).inc = wrap_inc; \
-		(cfg).wrap_size = wrap_sz; \
-	} while (0)
-
-#define REG_DMA_SETUP_KICKOFF(cfg, hw_ctl, feature_dma_buf, ops, ctl_q, \
-		mode) \
-	do { \
-		memset(&cfg, 0, sizeof(cfg)); \
-		(cfg).ctl = hw_ctl; \
-		(cfg).dma_buf = feature_dma_buf; \
-		(cfg).op = ops; \
-		(cfg).queue_select = ctl_q; \
-		(cfg).trigger_mode = mode; \
-	} while (0)
-
-static int reg_dma_buf_init(struct dpu_reg_dma_buffer **buf, u32 sz);
-static int reg_dma_dspp_check(struct dpu_hw_dspp *ctx, void *cfg,
-		enum dpu_reg_dma_features feature);
-static int reg_dma_blk_select(enum dpu_reg_dma_features feature,
-		enum dpu_reg_dma_blk blk, struct dpu_reg_dma_buffer *dma_buf);
-static int reg_dma_write(enum dpu_reg_dma_setup_ops ops, u32 off, u32 data_sz,
-			u32 *data, struct dpu_reg_dma_buffer *dma_buf,
-			enum dpu_reg_dma_features feature,
-			enum dpu_reg_dma_blk blk);
-static int reg_dma_kick_off(enum dpu_reg_dma_op op, enum dpu_reg_dma_queue q,
-		enum dpu_reg_dma_trigger_mode mode,
-		struct dpu_reg_dma_buffer *dma_buf, struct dpu_hw_ctl *ctl);
-
-static int reg_dma_buf_init(struct dpu_reg_dma_buffer **buf, u32 size)
-{
-	struct dpu_hw_reg_dma_ops *dma_ops;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	if (IS_ERR_OR_NULL(dma_ops))
-		return -ENOTSUPP;
-
-	if (!buf) {
-		DRM_ERROR("invalid buf\n");
-		return -EINVAL;
-	}
-
-	/* buffer already initialized */
-	if (*buf)
-		return 0;
-
-	*buf = dma_ops->alloc_reg_dma_buf(size);
-	if (IS_ERR_OR_NULL(*buf))
-		return -EINVAL;
-
-	return 0;
-}
-
-static int reg_dma_dspp_check(struct dpu_hw_dspp *ctx, void *cfg,
-		enum dpu_reg_dma_features feature)
-{
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-
-	if (!cfg || !ctx) {
-		DRM_ERROR("invalid cfg %pK ctx %pK\n", cfg, ctx);
-		return -EINVAL;
-	}
-
-	dma_ops = dpu_reg_dma_get_ops();
-	if (IS_ERR_OR_NULL(dma_ops))
-		return -EINVAL;
-
-	if (!hw_cfg->ctl || ctx->idx >= DSPP_MAX ||
-		feature >= REG_DMA_FEATURES_MAX) {
-		DRM_ERROR("invalid ctl %pK dspp idx %d feature %d\n",
-			hw_cfg->ctl, ctx->idx, feature);
-		return -EINVAL;
-	}
-
-	if (!dspp_buf[feature][ctx->idx]) {
-		DRM_ERROR("invalid dma_buf\n");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int reg_dma_blk_select(enum dpu_reg_dma_features feature,
-		enum dpu_reg_dma_blk blk, struct dpu_reg_dma_buffer *dma_buf)
-{
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc = 0;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dma_buf);
-	memset(&dma_write_cfg, 0, sizeof(dma_write_cfg));
-	dma_write_cfg.blk = blk;
-	dma_write_cfg.feature = feature;
-	dma_write_cfg.ops = HW_BLK_SELECT;
-	dma_write_cfg.dma_buf = dma_buf;
-
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc)
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-
-	return rc;
-}
-
-static int reg_dma_write(enum dpu_reg_dma_setup_ops ops, u32 off, u32 data_sz,
-			u32 *data, struct dpu_reg_dma_buffer *dma_buf,
-			enum dpu_reg_dma_features feature,
-			enum dpu_reg_dma_blk blk)
-{
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	memset(&dma_write_cfg, 0, sizeof(dma_write_cfg));
-
-	dma_write_cfg.ops = ops;
-	dma_write_cfg.blk_offset = off;
-	dma_write_cfg.data_size = data_sz;
-	dma_write_cfg.data = data;
-	dma_write_cfg.dma_buf = dma_buf;
-	dma_write_cfg.feature = feature;
-	dma_write_cfg.blk = blk;
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc)
-		DRM_ERROR("write single reg failed ret %d\n", rc);
-
-	return rc;
-}
-
-static int reg_dma_kick_off(enum dpu_reg_dma_op op, enum dpu_reg_dma_queue q,
-		enum dpu_reg_dma_trigger_mode mode,
-		struct dpu_reg_dma_buffer *dma_buf, struct dpu_hw_ctl *ctl)
-{
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	int rc;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	memset(&kick_off, 0, sizeof(kick_off));
-	kick_off.ctl = ctl;
-	kick_off.dma_buf = dma_buf;
-	kick_off.op = op;
-	kick_off.queue_select = q;
-	kick_off.trigger_mode = mode;
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-
-	return rc;
-}
-
-int reg_dmav1_init_dspp_op_v4(int feature, enum dpu_dspp idx)
-{
-	int rc = -ENOTSUPP;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	bool is_supported = false;
-	u32 blk;
-
-	if (feature >= DPU_DSPP_MAX || idx >= DSPP_MAX) {
-		DRM_ERROR("invalid feature %x max %x dspp idx %x max %xd\n",
-			feature, DPU_DSPP_MAX, idx, DSPP_MAX);
-		return rc;
-	}
-
-	if (feature_map[feature] >= REG_DMA_FEATURES_MAX) {
-		DRM_ERROR("invalid feature map %d for feature %d\n",
-			feature_map[feature], feature);
-		return -ENOTSUPP;
-	}
-
-	dma_ops = dpu_reg_dma_get_ops();
-	if (IS_ERR_OR_NULL(dma_ops))
-		return -ENOTSUPP;
-
-	blk = (feature_map[feature] == IGC) ? DSPP_IGC : dspp_mapping[idx];
-	rc = dma_ops->check_support(feature_map[feature], blk, &is_supported);
-	if (!rc)
-		rc = (is_supported) ? 0 : -ENOTSUPP;
-
-	if (!rc)
-		rc = reg_dma_buf_init(&dspp_buf[feature_map[feature]][idx],
-				feature_reg_dma_sz[feature]);
-
-	return rc;
-}
-
-int reg_dmav1_init_sspp_op_v4(int feature, enum dpu_sspp idx)
-{
-	return -ENOTSUPP;
-}
-
-void reg_dmav1_setup_dspp_vlutv18(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_pa_vlut *payload = NULL;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 op_mode;
-	u32 *data = NULL;
-	int i, j, rc = 0;
-
-	rc = reg_dma_dspp_check(ctx, cfg, VLUT);
-	if (rc)
-		return;
-
-	op_mode = DPU_REG_READ(&ctx->hw, PA_OP_MODE_OFF);
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("Disable vlut feature\n");
-		DPU_REG_WRITE(&ctx->hw, PA_LUTV_OPMODE_OFF, 0);
-		if (op_mode & (~(BIT(20))))
-			op_mode = 0;
-		DPU_REG_WRITE(&ctx->hw, PA_OP_MODE_OFF, op_mode);
-		return;
-	}
-
-	rc = reg_dma_blk_select(VLUT, dspp_mapping[ctx->idx],
-			dspp_buf[VLUT][ctx->idx]);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	data = kzalloc(VLUT_LEN, GFP_KERNEL);
-	if (!data)
-		return;
-
-	payload = hw_cfg->payload;
-	DRM_DEBUG_DRIVER("Enable vlut feature flags %llx\n", payload->flags);
-	for (i = 0, j = 0; i < ARRAY_SIZE(payload->val); i += 2, j++)
-		data[j] = (payload->val[i] & REG_MASK(10)) |
-			((payload->val[i + 1] & REG_MASK(10)) << 16);
-
-	rc = reg_dma_write(REG_BLK_WRITE_SINGLE, ctx->cap->sblk->vlut.base,
-			VLUT_LEN, data,
-			dspp_buf[VLUT][ctx->idx], VLUT,
-			dspp_mapping[ctx->idx]);
-	if (rc) {
-		DRM_ERROR("write single reg failed ret %d\n", rc);
-		goto exit;
-	}
-
-	rc = reg_dma_kick_off(REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE,
-			dspp_buf[VLUT][ctx->idx], hw_cfg->ctl);
-	if (rc) {
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-		goto exit;
-	}
-	DPU_REG_WRITE(&ctx->hw, PA_LUTV_OPMODE_OFF, BIT(0));
-	DPU_REG_WRITE(&ctx->hw, PA_OP_MODE_OFF, op_mode | BIT(20));
-
-exit:
-	kfree(data);
-}
-
-static int dpu_gamut_get_mode_info(struct drm_msm_3d_gamut *payload,
-		u32 *tbl_len, u32 *tbl_off, u32 *opcode, u32 *scale_off)
-{
-	int rc = 0;
-
-	if (payload->mode > GAMUT_3D_MODE_13) {
-		DRM_ERROR("invalid mode %d", payload->mode);
-		return -EINVAL;
-	}
-
-	switch (payload->mode) {
-	case GAMUT_3D_MODE_17:
-		*tbl_len = GAMUT_3D_MODE17_TBL_SZ * sizeof(u32) * 2;
-		*tbl_off = 0;
-		*scale_off = GAMUT_SCALEA_OFFSET_OFF;
-		*opcode = gamut_mode_17 << 2;
-		break;
-	case GAMUT_3D_MODE_5:
-		*tbl_len = GAMUT_3D_MODE5_TBL_SZ * sizeof(u32) * 2;
-		*tbl_off = GAMUT_MODE_5_OFF;
-		*scale_off = GAMUT_SCALEB_OFFSET_OFF;
-		*opcode = gamut_mode_5 << 2;
-		break;
-	case GAMUT_3D_MODE_13:
-		*tbl_len = GAMUT_3D_MODE13_TBL_SZ * sizeof(u32) * 2;
-		*opcode = (*opcode & (BIT(4) - 1)) >> 2;
-		if (*opcode == gamut_mode_13a)
-			*opcode = gamut_mode_13b;
-		else
-			*opcode = gamut_mode_13a;
-		*tbl_off = (*opcode == gamut_mode_13a) ? 0 :
-			GAMUT_MODE_13B_OFF;
-		*scale_off = (*opcode == gamut_mode_13a) ?
-			GAMUT_SCALEA_OFFSET_OFF : GAMUT_SCALEB_OFFSET_OFF;
-		*opcode <<= 2;
-		break;
-	default:
-		rc = -EINVAL;
-		break;
-	}
-	if (payload->flags & GAMUT_3D_MAP_EN)
-		*opcode |= GAMUT_MAP_EN;
-	*opcode |= GAMUT_EN;
-
-	return rc;
-}
-
-static void dspp_3d_gamutv4_off(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 op_mode = 0;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[GAMUT][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], GAMUT,
-			dspp_buf[GAMUT][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->gamut.base,
-		&op_mode, sizeof(op_mode), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("opmode write single reg failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[GAMUT][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-}
-
-void reg_dmav1_setup_dspp_3d_gamutv4(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_3d_gamut *payload;
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	u32 op_mode, reg, tbl_len, tbl_off, scale_off, i;
-	u32 scale_tbl_len, scale_tbl_off;
-	u32 *scale_data;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	int rc;
-
-	rc = reg_dma_dspp_check(ctx, cfg, GAMUT);
-	if (rc)
-		return;
-
-	op_mode = DPU_REG_READ(&ctx->hw, ctx->cap->sblk->gamut.base);
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable gamut feature\n");
-		dspp_3d_gamutv4_off(ctx, cfg);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_3d_gamut)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_3d_gamut));
-		return;
-	}
-	payload = hw_cfg->payload;
-	rc = dpu_gamut_get_mode_info(payload, &tbl_len, &tbl_off, &op_mode,
-			&scale_off);
-	if (rc) {
-		DRM_ERROR("invalid mode info rc %d\n", rc);
-		return;
-	}
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[GAMUT][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], GAMUT,
-			dspp_buf[GAMUT][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-	for (i = 0; i < GAMUT_3D_TBL_NUM; i++) {
-		reg = GAMUT_TABLE0_SEL << i;
-		reg |= ((tbl_off) & (BIT(11) - 1));
-		REG_DMA_SETUP_OPS(dma_write_cfg,
-			ctx->cap->sblk->gamut.base + GAMUT_TABLE_SEL_OFF,
-			&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("write tbl sel reg failed ret %d\n", rc);
-			return;
-		}
-		REG_DMA_SETUP_OPS(dma_write_cfg,
-		    ctx->cap->sblk->gamut.base + GAMUT_LOWER_COLOR_OFF,
-		    &payload->col[i][0].c2_c1, tbl_len,
-		    REG_BLK_WRITE_MULTIPLE, 2, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("write color reg failed ret %d\n", rc);
-			return;
-		}
-	}
-
-	if (op_mode & GAMUT_MAP_EN) {
-		if (scale_off == GAMUT_SCALEA_OFFSET_OFF)
-			scale_tbl_len = GAMUT_SCALE_OFF_LEN;
-		else
-			scale_tbl_len = GAMUT_SCALE_OFF_LEN_12;
-
-		for (i = 0; i < GAMUT_3D_SCALE_OFF_TBL_NUM; i++) {
-			scale_tbl_off = ctx->cap->sblk->gamut.base + scale_off +
-					(i * scale_tbl_len);
-			scale_data = &payload->scale_off[i][0];
-			REG_DMA_SETUP_OPS(dma_write_cfg, scale_tbl_off,
-					scale_data, scale_tbl_len,
-					REG_BLK_WRITE_SINGLE, 0, 0);
-			rc = dma_ops->setup_payload(&dma_write_cfg);
-			if (rc) {
-				DRM_ERROR("write scale/off reg failed ret %d\n",
-						rc);
-				return;
-			}
-		}
-	}
-
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->gamut.base,
-		&op_mode, sizeof(op_mode), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("opmode write single reg failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[GAMUT][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-}
-
-void reg_dmav1_setup_dspp_gcv18(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_pgc_lut *lut_cfg;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc, i = 0;
-	u32 reg;
-
-	rc = reg_dma_dspp_check(ctx, cfg, GC);
-	if (rc)
-		return;
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable pgc feature\n");
-		DPU_REG_WRITE(&ctx->hw, ctx->cap->sblk->gc.base, 0);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_pgc_lut)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_pgc_lut));
-		return;
-	}
-	lut_cfg = hw_cfg->payload;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[GC][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], GC,
-			dspp_buf[GC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	for (i = 0; i < GC_TBL_NUM; i++) {
-		reg = 0;
-		REG_DMA_SETUP_OPS(dma_write_cfg,
-			ctx->cap->sblk->gc.base + GC_C0_INDEX_OFF +
-			(i * sizeof(u32) * 2),
-			&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("index init failed ret %d\n", rc);
-			return;
-		}
-
-		REG_DMA_SETUP_OPS(dma_write_cfg,
-			ctx->cap->sblk->gc.base + GC_C0_OFF +
-			(i * sizeof(u32) * 2),
-			lut_cfg->c0 + (ARRAY_SIZE(lut_cfg->c0) * i),
-			PGC_TBL_LEN * sizeof(u32),
-			REG_BLK_WRITE_INC, 0, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("lut write failed ret %d\n", rc);
-			return;
-		}
-	}
-
-	reg = BIT(0);
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->gc.base + GC_LUT_SWAP_OFF,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("setting swap offset failed ret %d\n", rc);
-		return;
-	}
-
-	reg = GC_EN | ((lut_cfg->flags & PGC_8B_ROUND) ? GC_8B_ROUND_EN : 0);
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->gc.base,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("enabling gamma correction failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[GC][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc) {
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-		return;
-	}
-}
-
-static void _dspp_igcv31_off(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc;
-	u32 reg;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[IGC][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], IGC,
-		dspp_buf[IGC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	reg = IGC_DIS;
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->igc.base + IGC_OPMODE_OFF,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("setting opcode failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[IGC][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-}
-
-void reg_dmav1_setup_dspp_igcv31(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct drm_msm_igc_lut *lut_cfg;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc, i = 0, j = 0;
-	u32 *addr = NULL;
-	u32 offset = 0;
-	u32 reg;
-
-	rc = reg_dma_dspp_check(ctx, cfg, IGC);
-	if (rc)
-		return;
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable igc feature\n");
-		_dspp_igcv31_off(ctx, cfg);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_igc_lut)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_igc_lut));
-		return;
-	}
-
-	lut_cfg = hw_cfg->payload;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[IGC][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, DSPP_IGC, IGC, dspp_buf[IGC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	for (i = 0; i < IGC_TBL_NUM; i++) {
-		addr = lut_cfg->c0 + (i * ARRAY_SIZE(lut_cfg->c0));
-		offset = IGC_C0_OFF + (i * sizeof(u32));
-
-		for (j = 0; j < IGC_TBL_LEN; j++) {
-			addr[j] &= IGC_DATA_MASK;
-			addr[j] |= IGC_DSPP_SEL_MASK(ctx->idx - 1);
-			if (j == 0)
-				addr[j] |= IGC_INDEX_UPDATE;
-		}
-
-		REG_DMA_SETUP_OPS(dma_write_cfg, offset, addr,
-			IGC_TBL_LEN * sizeof(u32),
-			REG_BLK_WRITE_INC, 0, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("lut write failed ret %d\n", rc);
-			return;
-		}
-	}
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], IGC,
-		dspp_buf[IGC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	if (lut_cfg->flags & IGC_DITHER_ENABLE) {
-		reg = lut_cfg->strength & IGC_DITHER_DATA_MASK;
-		REG_DMA_SETUP_OPS(dma_write_cfg,
-			ctx->cap->sblk->igc.base + IGC_DITHER_OFF,
-			&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-		rc = dma_ops->setup_payload(&dma_write_cfg);
-		if (rc) {
-			DRM_ERROR("dither strength failed ret %d\n", rc);
-			return;
-		}
-	}
-
-	reg = IGC_EN;
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->igc.base + IGC_OPMODE_OFF,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("setting opcode failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[IGC][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-}
-
-static void _dspp_pccv4_off(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	int rc;
-	u32 reg;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[PCC][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx], PCC,
-		dspp_buf[PCC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	reg = PCC_DIS;
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->pcc.base,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("setting opcode failed ret %d\n", rc);
-		return;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[PCC][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-}
-
-void reg_dmav1_setup_dspp_pccv4(struct dpu_hw_dspp *ctx, void *cfg)
-{
-	struct dpu_hw_reg_dma_ops *dma_ops;
-	struct dpu_reg_dma_kickoff_cfg kick_off;
-	struct dpu_hw_cp_cfg *hw_cfg = cfg;
-	struct dpu_reg_dma_setup_ops_cfg dma_write_cfg;
-	struct drm_msm_pcc *pcc_cfg;
-	struct drm_msm_pcc_coeff *coeffs = NULL;
-	u32 *data = NULL;
-	int rc, i = 0;
-	u32 reg = 0;
-
-	rc = reg_dma_dspp_check(ctx, cfg, PCC);
-	if (rc)
-		return;
-
-	if (!hw_cfg->payload) {
-		DRM_DEBUG_DRIVER("disable pcc feature\n");
-		_dspp_pccv4_off(ctx, cfg);
-		return;
-	}
-
-	if (hw_cfg->len != sizeof(struct drm_msm_pcc)) {
-		DRM_ERROR("invalid size of payload len %d exp %zd\n",
-				hw_cfg->len, sizeof(struct drm_msm_pcc));
-		return;
-	}
-
-	pcc_cfg = hw_cfg->payload;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	dma_ops->reset_reg_dma_buf(dspp_buf[PCC][ctx->idx]);
-
-	REG_DMA_INIT_OPS(dma_write_cfg, dspp_mapping[ctx->idx],
-		PCC, dspp_buf[PCC][ctx->idx]);
-
-	REG_DMA_SETUP_OPS(dma_write_cfg, 0, NULL, 0, HW_BLK_SELECT, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write decode select failed ret %d\n", rc);
-		return;
-	}
-
-	data = kzalloc(PCC_LEN, GFP_KERNEL);
-	if (!data)
-		return;
-
-	for (i = 0; i < PCC_NUM_PLANES; i++) {
-		switch (i) {
-		case 0:
-			coeffs = &pcc_cfg->r;
-			data[i + 24] = pcc_cfg->r_rr;
-			data[i + 27] = pcc_cfg->r_gg;
-			data[i + 30] = pcc_cfg->r_bb;
-			break;
-		case 1:
-			coeffs = &pcc_cfg->g;
-			data[i + 24] = pcc_cfg->g_rr;
-			data[i + 27] = pcc_cfg->g_gg;
-			data[i + 30] = pcc_cfg->g_bb;
-			break;
-		case 2:
-			coeffs = &pcc_cfg->b;
-			data[i + 24] = pcc_cfg->b_rr;
-			data[i + 27] = pcc_cfg->b_gg;
-			data[i + 30] = pcc_cfg->b_bb;
-			break;
-		default:
-			DRM_ERROR("invalid pcc plane: %d\n", i);
-			goto exit;
-		}
-
-		data[i] = coeffs->c;
-		data[i + 3] = coeffs->r;
-		data[i + 6] = coeffs->g;
-		data[i + 9] = coeffs->b;
-		data[i + 12] = coeffs->rg;
-		data[i + 15] = coeffs->rb;
-		data[i + 18] = coeffs->gb;
-		data[i + 21] = coeffs->rgb;
-	}
-
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->pcc.base + PCC_C_OFF,
-		data, PCC_LEN,
-		REG_BLK_WRITE_SINGLE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("write pcc lut failed ret %d\n", rc);
-		goto exit;
-	}
-
-	reg = PCC_EN;
-	REG_DMA_SETUP_OPS(dma_write_cfg,
-		ctx->cap->sblk->pcc.base,
-		&reg, sizeof(reg), REG_SINGLE_WRITE, 0, 0);
-	rc = dma_ops->setup_payload(&dma_write_cfg);
-	if (rc) {
-		DRM_ERROR("setting opcode failed ret %d\n", rc);
-		goto exit;
-	}
-
-	REG_DMA_SETUP_KICKOFF(kick_off, hw_cfg->ctl, dspp_buf[PCC][ctx->idx],
-			REG_DMA_WRITE, DMA_CTL_QUEUE0, WRITE_IMMEDIATE);
-	rc = dma_ops->kick_off(&kick_off);
-	if (rc)
-		DRM_ERROR("failed to kick off ret %d\n", rc);
-
-exit:
-	kfree(data);
-}
-
-int reg_dmav1_deinit_dspp_ops(enum dpu_dspp idx)
-{
-	int i;
-	struct dpu_hw_reg_dma_ops *dma_ops;
-
-	dma_ops = dpu_reg_dma_get_ops();
-	if (IS_ERR_OR_NULL(dma_ops))
-		return -ENOTSUPP;
-
-	if (idx >= DSPP_MAX) {
-		DRM_ERROR("invalid dspp idx %x max %xd\n", idx, DSPP_MAX);
-		return -EINVAL;
-	}
-
-	for (i = 0; i < REG_DMA_FEATURES_MAX; i++) {
-		if (!dspp_buf[i][idx])
-			continue;
-		dma_ops->dealloc_reg_dma(dspp_buf[i][idx]);
-		dspp_buf[i][idx] = NULL;
-	}
-	return 0;
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h
deleted file mode 100644
index 5c33399..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-#ifndef _DPU_HW_REG_DMA_V1_COLOR_PROC_H
-#define _DPU_HW_REG_DMA_V1_COLOR_PROC_H
-
-#include "dpu_hw_util.h"
-#include "dpu_hw_catalog.h"
-#include "dpu_hw_dspp.h"
-
-/**
- * reg_dmav1_init_dspp_op_v4() - initialize the dspp feature op for dpu v4
- *                               using reg dma v1.
- * @feature: dspp feature
- * idx: dspp idx
- */
-int reg_dmav1_init_dspp_op_v4(int feature, enum dpu_dspp idx);
-
-/**
- * reg_dma_init_sspp_op_v4() - initialize the sspp feature op for dpu v4
- * @feature: sspp feature
- * @idx: sspp idx
- */
-int reg_dmav1_init_sspp_op_v4(int feature, enum dpu_sspp idx);
-
-/**
- * reg_dmav1_setup_dspp_vlutv18() - vlut v18 implementation using reg dma v1.
- * @ctx: dspp ctx info
- * @cfg: pointer to struct dpu_hw_cp_cfg
- */
-void reg_dmav1_setup_dspp_vlutv18(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * reg_dmav1_setup_3d_gamutv4() - gamut v4 implementation using reg dma v1.
- * @ctx: dspp ctx info
- * @cfg: pointer to struct dpu_hw_cp_cfg
- */
-void reg_dmav1_setup_dspp_3d_gamutv4(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * reg_dmav1_setup_dspp_gcv18() - gc v18 implementation using reg dma v1.
- * @ctx: dspp ctx info
- * @cfg: pointer to struct dpu_hw_cp_cfg
- */
-void reg_dmav1_setup_dspp_gcv18(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * reg_dmav1_setup_dspp_igcv31() - igc v31 implementation using reg dma v1.
- * @ctx: dspp ctx info
- * @cfg: pointer to struct dpu_hw_cp_cfg
- */
-void reg_dmav1_setup_dspp_igcv31(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * reg_dmav1_setup_dspp_pccv4() - pcc v4 implementation using reg dma v1.
- * @ctx: dspp ctx info
- * @cfg: pointer to struct dpu_hw_cp_cfg
- */
-void reg_dmav1_setup_dspp_pccv4(struct dpu_hw_dspp *ctx, void *cfg);
-
-/**
- * reg_dmav1_deinit_dspp_ops() - deinitialize the dspp feature op for dpu v4
- *                               which were initialized.
- * @idx: dspp idx
- */
-int reg_dmav1_deinit_dspp_ops(enum dpu_dspp idx);
-#endif /* _DPU_HW_REG_DMA_V1_COLOR_PROC_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
index e02a938..6640906 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
@@ -14,7 +14,6 @@
 #include "dpu_hw_catalog.h"
 #include "dpu_hw_lm.h"
 #include "dpu_hw_sspp.h"
-#include "dpu_hw_color_processing.h"
 #include "dpu_dbg.h"
 #include "dpu_kms.h"
 
@@ -165,15 +164,6 @@ static inline int _sspp_subblk_offset(struct dpu_hw_pipe *ctx,
 	case DPU_SSPP_CSC_10BIT:
 		*idx = sblk->csc_blk.base;
 		break;
-	case DPU_SSPP_HSIC:
-		*idx = sblk->hsic_blk.base;
-		break;
-	case DPU_SSPP_PCC:
-		*idx = sblk->pcc_blk.base;
-		break;
-	case DPU_SSPP_MEMCOLOR:
-		*idx = sblk->memcolor_blk.base;
-		break;
 	default:
 		rc = -EINVAL;
 	}
@@ -413,64 +403,6 @@ static void dpu_hw_sspp_setup_pe_config(struct dpu_hw_pipe *ctx,
 			tot_req_pixels[3]);
 }
 
-static void _dpu_hw_sspp_setup_scaler(struct dpu_hw_pipe *ctx,
-		struct dpu_hw_pipe_cfg *sspp,
-		struct dpu_hw_pixel_ext *pe,
-		void *scaler_cfg)
-{
-	struct dpu_hw_blk_reg_map *c;
-	int config_h = 0x0;
-	int config_v = 0x0;
-	u32 idx;
-
-	(void)sspp;
-	(void)scaler_cfg;
-	if (_sspp_subblk_offset(ctx, DPU_SSPP_SCALER_QSEED2, &idx) || !pe)
-		return;
-
-	c = &ctx->hw;
-
-	/* enable scaler(s) if valid filter set */
-	if (pe->horz_filter[DPU_SSPP_COMP_0] < DPU_SCALE_FILTER_MAX)
-		config_h |= pe->horz_filter[DPU_SSPP_COMP_0] << 8;
-	if (pe->horz_filter[DPU_SSPP_COMP_1_2] < DPU_SCALE_FILTER_MAX)
-		config_h |= pe->horz_filter[DPU_SSPP_COMP_1_2] << 12;
-	if (pe->horz_filter[DPU_SSPP_COMP_3] < DPU_SCALE_FILTER_MAX)
-		config_h |= pe->horz_filter[DPU_SSPP_COMP_3] << 16;
-
-	if (config_h)
-		config_h |= BIT(0);
-
-	if (pe->vert_filter[DPU_SSPP_COMP_0] < DPU_SCALE_FILTER_MAX)
-		config_v |= pe->vert_filter[DPU_SSPP_COMP_0] << 10;
-	if (pe->vert_filter[DPU_SSPP_COMP_1_2] < DPU_SCALE_FILTER_MAX)
-		config_v |= pe->vert_filter[DPU_SSPP_COMP_1_2] << 14;
-	if (pe->vert_filter[DPU_SSPP_COMP_3] < DPU_SCALE_FILTER_MAX)
-		config_v |= pe->vert_filter[DPU_SSPP_COMP_3] << 18;
-
-	if (config_v)
-		config_v |= BIT(1);
-
-	DPU_REG_WRITE(c, SCALE_CONFIG + idx,  config_h | config_v);
-	DPU_REG_WRITE(c, COMP0_3_INIT_PHASE_X + idx,
-		pe->init_phase_x[DPU_SSPP_COMP_0]);
-	DPU_REG_WRITE(c, COMP0_3_INIT_PHASE_Y + idx,
-		pe->init_phase_y[DPU_SSPP_COMP_0]);
-	DPU_REG_WRITE(c, COMP0_3_PHASE_STEP_X + idx,
-		pe->phase_step_x[DPU_SSPP_COMP_0]);
-	DPU_REG_WRITE(c, COMP0_3_PHASE_STEP_Y + idx,
-		pe->phase_step_y[DPU_SSPP_COMP_0]);
-
-	DPU_REG_WRITE(c, COMP1_2_INIT_PHASE_X + idx,
-		pe->init_phase_x[DPU_SSPP_COMP_1_2]);
-	DPU_REG_WRITE(c, COMP1_2_INIT_PHASE_Y + idx,
-		pe->init_phase_y[DPU_SSPP_COMP_1_2]);
-	DPU_REG_WRITE(c, COMP1_2_PHASE_STEP_X + idx,
-		pe->phase_step_x[DPU_SSPP_COMP_1_2]);
-	DPU_REG_WRITE(c, COMP1_2_PHASE_STEP_Y + idx,
-		pe->phase_step_y[DPU_SSPP_COMP_1_2]);
-}
-
 static void _dpu_hw_sspp_setup_scaler3(struct dpu_hw_pipe *ctx,
 		struct dpu_hw_pipe_cfg *sspp,
 		struct dpu_hw_pixel_ext *pe,
@@ -509,7 +441,6 @@ static void dpu_hw_sspp_setup_rects(struct dpu_hw_pipe *ctx,
 	struct dpu_hw_blk_reg_map *c;
 	u32 src_size, src_xy, dst_size, dst_xy, ystride0, ystride1;
 	u32 src_size_off, src_xy_off, out_size_off, out_xy_off;
-	u32 decimation = 0;
 	u32 idx;
 
 	if (_sspp_subblk_offset(ctx, DPU_SSPP_SRC, &idx) || !cfg)
@@ -560,13 +491,6 @@ static void dpu_hw_sspp_setup_rects(struct dpu_hw_pipe *ctx,
 		}
 	}
 
-	/* program scaler, phase registers, if pipes supporting scaling */
-	if (ctx->cap->features & DPU_SSPP_SCALER) {
-		/* program decimation */
-		decimation = ((1 << cfg->horz_decimation) - 1) << 8;
-		decimation |= ((1 << cfg->vert_decimation) - 1);
-	}
-
 	/* rectangle register programming */
 	DPU_REG_WRITE(c, src_size_off + idx, src_size);
 	DPU_REG_WRITE(c, src_xy_off + idx, src_xy);
@@ -575,52 +499,6 @@ static void dpu_hw_sspp_setup_rects(struct dpu_hw_pipe *ctx,
 
 	DPU_REG_WRITE(c, SSPP_SRC_YSTRIDE0 + idx, ystride0);
 	DPU_REG_WRITE(c, SSPP_SRC_YSTRIDE1 + idx, ystride1);
-	DPU_REG_WRITE(c, SSPP_DECIMATION_CONFIG + idx, decimation);
-}
-
-/**
- * _dpu_hw_sspp_setup_excl_rect() - set exclusion rect configs
- * @ctx: Pointer to pipe context
- * @excl_rect: Exclusion rect configs
- */
-static void _dpu_hw_sspp_setup_excl_rect(struct dpu_hw_pipe *ctx,
-		struct dpu_rect *excl_rect,
-		enum dpu_sspp_multirect_index rect_index)
-{
-	struct dpu_hw_blk_reg_map *c;
-	u32 size, xy;
-	u32 idx;
-	u32 reg_xy, reg_size;
-	u32 excl_ctrl, enable_bit;
-
-	if (_sspp_subblk_offset(ctx, DPU_SSPP_SRC, &idx) || !excl_rect)
-		return;
-
-	if (rect_index == DPU_SSPP_RECT_0 || rect_index == DPU_SSPP_RECT_SOLO) {
-		reg_xy = SSPP_EXCL_REC_XY;
-		reg_size = SSPP_EXCL_REC_SIZE;
-		enable_bit = BIT(0);
-	} else {
-		reg_xy = SSPP_EXCL_REC_XY_REC1;
-		reg_size = SSPP_EXCL_REC_SIZE_REC1;
-		enable_bit = BIT(1);
-	}
-
-	c = &ctx->hw;
-
-	xy = (excl_rect->y << 16) | (excl_rect->x);
-	size = (excl_rect->h << 16) | (excl_rect->w);
-
-	excl_ctrl = DPU_REG_READ(c, SSPP_EXCL_REC_CTL + idx);
-	if (!size) {
-		DPU_REG_WRITE(c, SSPP_EXCL_REC_CTL + idx,
-				excl_ctrl & ~enable_bit);
-	} else {
-		DPU_REG_WRITE(c, SSPP_EXCL_REC_CTL + idx,
-				excl_ctrl | enable_bit);
-		DPU_REG_WRITE(c, reg_size + idx, size);
-		DPU_REG_WRITE(c, reg_xy + idx, xy);
-	}
 }
 
 static void dpu_hw_sspp_setup_sourceaddress(struct dpu_hw_pipe *ctx,
@@ -667,24 +545,6 @@ static void dpu_hw_sspp_setup_csc(struct dpu_hw_pipe *ctx,
 	dpu_hw_csc_setup(&ctx->hw, idx, data, csc10);
 }
 
-static void dpu_hw_sspp_setup_sharpening(struct dpu_hw_pipe *ctx,
-		struct dpu_hw_sharp_cfg *cfg)
-{
-	struct dpu_hw_blk_reg_map *c;
-	u32 idx;
-
-	if (_sspp_subblk_offset(ctx, DPU_SSPP_SCALER_QSEED2, &idx) || !cfg ||
-			!test_bit(DPU_SSPP_SCALER_QSEED2, &ctx->cap->features))
-		return;
-
-	c = &ctx->hw;
-
-	DPU_REG_WRITE(c, VIG_0_QSEED2_SHARP + idx, cfg->strength);
-	DPU_REG_WRITE(c, VIG_0_QSEED2_SHARP + idx + 0x4, cfg->edge_thr);
-	DPU_REG_WRITE(c, VIG_0_QSEED2_SHARP + idx + 0x8, cfg->smooth_thr);
-	DPU_REG_WRITE(c, VIG_0_QSEED2_SHARP + idx + 0xC, cfg->noise_thr);
-}
-
 static void dpu_hw_sspp_setup_solidfill(struct dpu_hw_pipe *ctx, u32 color, enum
 		dpu_sspp_multirect_index rect_index)
 {
@@ -754,57 +614,6 @@ static void dpu_hw_sspp_setup_qos_ctrl(struct dpu_hw_pipe *ctx,
 	DPU_REG_WRITE(&ctx->hw, SSPP_QOS_CTRL + idx, qos_ctrl);
 }
 
-static void dpu_hw_sspp_setup_ts_prefill(struct dpu_hw_pipe *ctx,
-		struct dpu_hw_pipe_ts_cfg *cfg,
-		enum dpu_sspp_multirect_index index)
-{
-	u32 idx;
-	u32 ts_offset, ts_prefill_offset;
-	u32 ts_count = 0, ts_bytes = 0;
-	const struct dpu_sspp_cfg *cap;
-
-	if (!ctx || !cfg || !ctx->cap)
-		return;
-
-	if (_sspp_subblk_offset(ctx, DPU_SSPP_SRC, &idx))
-		return;
-
-	cap = ctx->cap;
-
-	if (index == DPU_SSPP_RECT_0 &&
-			test_bit(DPU_SSPP_TS_PREFILL, &cap->features)) {
-		ts_offset = SSPP_TRAFFIC_SHAPER;
-		ts_prefill_offset = SSPP_TRAFFIC_SHAPER_PREFILL;
-	} else if (index == DPU_SSPP_RECT_1 &&
-			test_bit(DPU_SSPP_TS_PREFILL_REC1, &cap->features)) {
-		ts_offset = SSPP_TRAFFIC_SHAPER_REC1;
-		ts_prefill_offset = SSPP_TRAFFIC_SHAPER_REC1_PREFILL;
-	} else {
-		return;
-	}
-
-	if (cfg->time) {
-		/* this does mult_frac in a 64-bit safe manner */
-		u64 rate = TS_CLK * 1000000ULL;
-		u32 rem;
-		u64 quot = div_u64_rem(rate, cfg->time, &rem);
-
-		ts_bytes = (quot * cfg->size) +
-			   div_u64(rem * cfg->size, cfg->time);
-
-		if (ts_bytes > SSPP_TRAFFIC_SHAPER_BPC_MAX)
-			ts_bytes = SSPP_TRAFFIC_SHAPER_BPC_MAX;
-	}
-
-	if (ts_bytes) {
-		ts_count = DIV_ROUND_UP_ULL(cfg->size, ts_bytes);
-		ts_bytes |= BIT(31) | BIT(27);
-	}
-
-	DPU_REG_WRITE(&ctx->hw, ts_offset, ts_bytes);
-	DPU_REG_WRITE(&ctx->hw, ts_prefill_offset, ts_count);
-}
-
 static void dpu_hw_sspp_setup_cdp(struct dpu_hw_pipe *ctx,
 		struct dpu_hw_pipe_cdp_cfg *cfg)
 {
@@ -840,9 +649,6 @@ static void _setup_layer_ops(struct dpu_hw_pipe *c,
 		c->ops.setup_pe = dpu_hw_sspp_setup_pe_config;
 	}
 
-	if (test_bit(DPU_SSPP_EXCL_RECT, &features))
-		c->ops.setup_excl_rect = _dpu_hw_sspp_setup_excl_rect;
-
 	if (test_bit(DPU_SSPP_QOS, &features)) {
 		c->ops.setup_danger_safe_lut =
 			dpu_hw_sspp_setup_danger_safe_lut;
@@ -850,18 +656,10 @@ static void _setup_layer_ops(struct dpu_hw_pipe *c,
 		c->ops.setup_qos_ctrl = dpu_hw_sspp_setup_qos_ctrl;
 	}
 
-	if (test_bit(DPU_SSPP_TS_PREFILL, &features))
-		c->ops.setup_ts_prefill = dpu_hw_sspp_setup_ts_prefill;
-
 	if (test_bit(DPU_SSPP_CSC, &features) ||
 		test_bit(DPU_SSPP_CSC_10BIT, &features))
 		c->ops.setup_csc = dpu_hw_sspp_setup_csc;
 
-	if (test_bit(DPU_SSPP_SCALER_QSEED2, &features)) {
-		c->ops.setup_sharpening = dpu_hw_sspp_setup_sharpening;
-		c->ops.setup_scaler = _dpu_hw_sspp_setup_scaler;
-	}
-
 	if (dpu_hw_sspp_multirect_enabled(c->cap))
 		c->ops.setup_multirect = dpu_hw_sspp_setup_multirect;
 
@@ -870,24 +668,6 @@ static void _setup_layer_ops(struct dpu_hw_pipe *c,
 		c->ops.get_scaler_ver = _dpu_hw_sspp_get_scaler3_ver;
 	}
 
-	if (test_bit(DPU_SSPP_HSIC, &features)) {
-		/* TODO: add version based assignment here as inline or macro */
-		if (c->cap->sblk->hsic_blk.version ==
-			(DPU_COLOR_PROCESS_VER(0x1, 0x7))) {
-			c->ops.setup_pa_hue = dpu_setup_pipe_pa_hue_v1_7;
-			c->ops.setup_pa_sat = dpu_setup_pipe_pa_sat_v1_7;
-			c->ops.setup_pa_val = dpu_setup_pipe_pa_val_v1_7;
-			c->ops.setup_pa_cont = dpu_setup_pipe_pa_cont_v1_7;
-		}
-	}
-
-	if (test_bit(DPU_SSPP_MEMCOLOR, &features)) {
-		if (c->cap->sblk->memcolor_blk.version ==
-			(DPU_COLOR_PROCESS_VER(0x1, 0x7)))
-			c->ops.setup_pa_memcolor =
-				dpu_setup_pipe_pa_memcol_v1_7;
-	}
-
 	if (test_bit(DPU_SSPP_CDP, &features))
 		c->ops.setup_cdp = dpu_hw_sspp_setup_cdp;
 }
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
index a32ecc6..0bb5ecb 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
@@ -18,7 +18,6 @@
 #include "dpu_hw_util.h"
 #include "dpu_hw_blk.h"
 #include "dpu_formats.h"
-#include "dpu_color_processing.h"
 
 struct dpu_hw_pipe;
 
@@ -160,12 +159,6 @@ struct dpu_hw_pixel_ext {
  * @src_rect:  src ROI, caller takes into account the different operations
  *             such as decimation, flip etc to program this field
  * @dest_rect: destination ROI.
- * @ horz_decimation : horizontal decimation factor( 0, 2, 4, 8, 16)
- * @ vert_decimation : vertical decimation factor( 0, 2, 4, 8, 16)
- *              2: Read 1 line/pixel drop 1 line/pixel
- *              4: Read 1 line/pixel drop 3  lines/pixels
- *              8: Read 1 line/pixel drop 7 lines/pixels
- *              16: Read 1 line/pixel drop 15 line/pixels
  * @index:     index of the rectangle of SSPP
  * @mode:      parallel or time multiplex multirect mode
  */
@@ -173,8 +166,6 @@ struct dpu_hw_pipe_cfg {
 	struct dpu_hw_fmt_layout layout;
 	struct dpu_rect src_rect;
 	struct dpu_rect dst_rect;
-	u8 horz_decimation;
-	u8 vert_decimation;
 	enum dpu_sspp_multirect_index index;
 	enum dpu_sspp_multirect_mode mode;
 };
@@ -269,16 +260,6 @@ struct dpu_hw_sspp_ops {
 			struct dpu_hw_pixel_ext *pe_ext);
 
 	/**
-	 * setup_excl_rect - setup pipe exclusion rectangle
-	 * @ctx: Pointer to pipe context
-	 * @excl_rect: Pointer to exclclusion rect structure
-	 * @index: rectangle index in multirect
-	 */
-	void (*setup_excl_rect)(struct dpu_hw_pipe *ctx,
-			struct dpu_rect *excl_rect,
-			enum dpu_sspp_multirect_index index);
-
-	/**
 	 * setup_sourceaddress - setup pipe source addresses
 	 * @ctx: Pointer to pipe context
 	 * @cfg: Pointer to pipe config structure
@@ -324,50 +305,6 @@ struct dpu_hw_sspp_ops {
 	void (*setup_sharpening)(struct dpu_hw_pipe *ctx,
 			struct dpu_hw_sharp_cfg *cfg);
 
-
-	/**
-	 * setup_pa_hue(): Setup source hue adjustment
-	 * @ctx: Pointer to pipe context
-	 * @cfg: Pointer to hue data
-	 */
-	void (*setup_pa_hue)(struct dpu_hw_pipe *ctx, void *cfg);
-
-	/**
-	 * setup_pa_sat(): Setup source saturation adjustment
-	 * @ctx: Pointer to pipe context
-	 * @cfg: Pointer to saturation data
-	 */
-	void (*setup_pa_sat)(struct dpu_hw_pipe *ctx, void *cfg);
-
-	/**
-	 * setup_pa_val(): Setup source value adjustment
-	 * @ctx: Pointer to pipe context
-	 * @cfg: Pointer to value data
-	 */
-	void (*setup_pa_val)(struct dpu_hw_pipe *ctx, void *cfg);
-
-	/**
-	 * setup_pa_cont(): Setup source contrast adjustment
-	 * @ctx: Pointer to pipe context
-	 * @cfg: Pointer contrast data
-	 */
-	void (*setup_pa_cont)(struct dpu_hw_pipe *ctx, void *cfg);
-
-	/**
-	 * setup_pa_memcolor - setup source color processing
-	 * @ctx: Pointer to pipe context
-	 * @type: Memcolor type (Skin, sky or foliage)
-	 * @cfg: Pointer to memory color config data
-	 */
-	void (*setup_pa_memcolor)(struct dpu_hw_pipe *ctx,
-			enum dpu_memcolor_type type, void *cfg);
-
-	/**
-	 * setup_igc - setup inverse gamma correction
-	 * @ctx: Pointer to pipe context
-	 */
-	void (*setup_igc)(struct dpu_hw_pipe *ctx);
-
 	/**
 	 * setup_danger_safe_lut - setup danger safe LUTs
 	 * @ctx: Pointer to pipe context
@@ -422,16 +359,6 @@ struct dpu_hw_sspp_ops {
 	u32 (*get_scaler_ver)(struct dpu_hw_pipe *ctx);
 
 	/**
-	 * setup_ts_prefill - setup prefill traffic shaper
-	 * @ctx: Pointer to pipe context
-	 * @cfg: Pointer to traffic shaper configuration
-	 * @index: rectangle index in multirect
-	 */
-	void (*setup_ts_prefill)(struct dpu_hw_pipe *ctx,
-			struct dpu_hw_pipe_ts_cfg *cfg,
-			enum dpu_sspp_multirect_index index);
-
-	/**
 	 * setup_cdp - setup client driven prefetch
 	 * @ctx: Pointer to pipe context
 	 * @cfg: Pointer to cdp configuration
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c
index 019a8fa..1ba571e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c
@@ -11,7 +11,6 @@
  */
 #define pr_fmt(fmt)	"[drm:%s:%d] " fmt, __func__, __LINE__
 
-#include <uapi/drm/dpu_drm.h>
 #include "msm_drv.h"
 #include "dpu_kms.h"
 #include "dpu_hw_mdss.h"
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h
index d92cafb..42f1b22 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h
@@ -158,6 +158,162 @@ struct dpu_hw_scaler3_lut_cfg {
 	size_t sep_len;
 };
 
+/**
+ * struct dpu_drm_pix_ext_v1 - version 1 of pixel ext structure
+ * @num_ext_pxls_lr: Number of total horizontal pixels
+ * @num_ext_pxls_tb: Number of total vertical lines
+ * @left_ftch:       Number of extra pixels to overfetch from left
+ * @right_ftch:      Number of extra pixels to overfetch from right
+ * @top_ftch:        Number of extra lines to overfetch from top
+ * @btm_ftch:        Number of extra lines to overfetch from bottom
+ * @left_rpt:        Number of extra pixels to repeat from left
+ * @right_rpt:       Number of extra pixels to repeat from right
+ * @top_rpt:         Number of extra lines to repeat from top
+ * @btm_rpt:         Number of extra lines to repeat from bottom
+ */
+struct dpu_drm_pix_ext_v1 {
+	/*
+	 * Number of pixels ext in left, right, top and bottom direction
+	 * for all color components.
+	 */
+	int32_t num_ext_pxls_lr[DPU_MAX_PLANES];
+	int32_t num_ext_pxls_tb[DPU_MAX_PLANES];
+
+	/*
+	 * Number of pixels needs to be overfetched in left, right, top
+	 * and bottom directions from source image for scaling.
+	 */
+	int32_t left_ftch[DPU_MAX_PLANES];
+	int32_t right_ftch[DPU_MAX_PLANES];
+	int32_t top_ftch[DPU_MAX_PLANES];
+	int32_t btm_ftch[DPU_MAX_PLANES];
+	/*
+	 * Number of pixels needs to be repeated in left, right, top and
+	 * bottom directions for scaling.
+	 */
+	int32_t left_rpt[DPU_MAX_PLANES];
+	int32_t right_rpt[DPU_MAX_PLANES];
+	int32_t top_rpt[DPU_MAX_PLANES];
+	int32_t btm_rpt[DPU_MAX_PLANES];
+
+};
+
+/**
+ * struct dpu_drm_de_v1 - version 1 of detail enhancer structure
+ * @enable:         Enables/disables detail enhancer
+ * @sharpen_level1: Sharpening strength for noise
+ * @sharpen_level2: Sharpening strength for context
+ * @clip:           Clip coefficient
+ * @limit:          Detail enhancer limit factor
+ * @thr_quiet:      Quite zone threshold
+ * @thr_dieout:     Die-out zone threshold
+ * @thr_low:        Linear zone left threshold
+ * @thr_high:       Linear zone right threshold
+ * @prec_shift:     Detail enhancer precision
+ * @adjust_a:       Mapping curves A coefficients
+ * @adjust_b:       Mapping curves B coefficients
+ * @adjust_c:       Mapping curves C coefficients
+ */
+struct dpu_drm_de_v1 {
+	uint32_t enable;
+	int16_t sharpen_level1;
+	int16_t sharpen_level2;
+	uint16_t clip;
+	uint16_t limit;
+	uint16_t thr_quiet;
+	uint16_t thr_dieout;
+	uint16_t thr_low;
+	uint16_t thr_high;
+	uint16_t prec_shift;
+	int16_t adjust_a[DPU_MAX_DE_CURVES];
+	int16_t adjust_b[DPU_MAX_DE_CURVES];
+	int16_t adjust_c[DPU_MAX_DE_CURVES];
+};
+
+/**
+ * struct dpu_drm_scaler_v2 - version 2 of struct dpu_drm_scaler
+ * @enable:            Scaler enable
+ * @dir_en:            Detail enhancer enable
+ * @pe:                Pixel extension settings
+ * @horz_decimate:     Horizontal decimation factor
+ * @vert_decimate:     Vertical decimation factor
+ * @init_phase_x:      Initial scaler phase values for x
+ * @phase_step_x:      Phase step values for x
+ * @init_phase_y:      Initial scaler phase values for y
+ * @phase_step_y:      Phase step values for y
+ * @preload_x:         Horizontal preload value
+ * @preload_y:         Vertical preload value
+ * @src_width:         Source width
+ * @src_height:        Source height
+ * @dst_width:         Destination width
+ * @dst_height:        Destination height
+ * @y_rgb_filter_cfg:  Y/RGB plane filter configuration
+ * @uv_filter_cfg:     UV plane filter configuration
+ * @alpha_filter_cfg:  Alpha filter configuration
+ * @blend_cfg:         Selection of blend coefficients
+ * @lut_flag:          LUT configuration flags
+ * @dir_lut_idx:       2d 4x4 LUT index
+ * @y_rgb_cir_lut_idx: Y/RGB circular LUT index
+ * @uv_cir_lut_idx:    UV circular LUT index
+ * @y_rgb_sep_lut_idx: Y/RGB separable LUT index
+ * @uv_sep_lut_idx:    UV separable LUT index
+ * @de:                Detail enhancer settings
+ */
+struct dpu_drm_scaler_v2 {
+	/*
+	 * General definitions
+	 */
+	uint32_t enable;
+	uint32_t dir_en;
+
+	/*
+	 * Pix ext settings
+	 */
+	struct dpu_drm_pix_ext_v1 pe;
+
+	/*
+	 * Decimation settings
+	 */
+	uint32_t horz_decimate;
+	uint32_t vert_decimate;
+
+	/*
+	 * Phase settings
+	 */
+	int32_t init_phase_x[DPU_MAX_PLANES];
+	int32_t phase_step_x[DPU_MAX_PLANES];
+	int32_t init_phase_y[DPU_MAX_PLANES];
+	int32_t phase_step_y[DPU_MAX_PLANES];
+
+	uint32_t preload_x[DPU_MAX_PLANES];
+	uint32_t preload_y[DPU_MAX_PLANES];
+	uint32_t src_width[DPU_MAX_PLANES];
+	uint32_t src_height[DPU_MAX_PLANES];
+
+	uint32_t dst_width;
+	uint32_t dst_height;
+
+	uint32_t y_rgb_filter_cfg;
+	uint32_t uv_filter_cfg;
+	uint32_t alpha_filter_cfg;
+	uint32_t blend_cfg;
+
+	uint32_t lut_flag;
+	uint32_t dir_lut_idx;
+
+	/* for Y(RGB) and UV planes*/
+	uint32_t y_rgb_cir_lut_idx;
+	uint32_t uv_cir_lut_idx;
+	uint32_t y_rgb_sep_lut_idx;
+	uint32_t uv_sep_lut_idx;
+
+	/*
+	 * Detail enhancer settings
+	 */
+	struct dpu_drm_de_v1 de;
+};
+
+
 u32 *dpu_hw_util_get_log_mask_ptr(void);
 
 void dpu_reg_write(struct dpu_hw_blk_reg_map *c,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index db66566..fe614c0 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -35,7 +35,6 @@
 #include "dpu_encoder.h"
 #include "dpu_plane.h"
 #include "dpu_crtc.h"
-#include "dpu_reg_dma.h"
 
 #define CREATE_TRACE_POINTS
 #include "dpu_trace.h"
@@ -1064,8 +1063,6 @@ static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms)
 	if (dpu_kms->mmio)
 		msm_iounmap(dpu_kms->pdev, dpu_kms->mmio);
 	dpu_kms->mmio = NULL;
-
-	dpu_reg_dma_deinit();
 }
 
 static void dpu_kms_destroy(struct msm_kms *kms)
@@ -1511,14 +1508,6 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		goto power_error;
 	}
 
-	/* Initialize reg dma block which is a singleton */
-	rc = dpu_reg_dma_init(dpu_kms->reg_dma, dpu_kms->catalog,
-			dpu_kms->dev);
-	if (rc) {
-		DPU_ERROR("failed: reg dma init failed\n");
-		goto power_error;
-	}
-
 	rc = dpu_rm_init(&dpu_kms->rm, dpu_kms->catalog, dpu_kms->mmio,
 			dpu_kms->dev);
 	if (rc) {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 3b2c609..e81cb1f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -20,9 +20,6 @@
 
 #include <linux/debugfs.h>
 #include <linux/dma-buf.h>
-#include <uapi/drm/dpu_drm.h>
-#include <uapi/drm/msm_drm_pp.h>
-
 #include "msm_prop.h"
 #include "msm_drv.h"
 
@@ -34,7 +31,6 @@
 #include "dpu_crtc.h"
 #include "dpu_vbif.h"
 #include "dpu_plane.h"
-#include "dpu_color_processing.h"
 
 static bool suspend_blank = true;
 module_param(suspend_blank, bool, 0400);
@@ -93,8 +89,6 @@ enum dpu_plane_qos {
 /*
  * struct dpu_plane - local dpu plane structure
  * @aspace: address space pointer
- * @csc_cfg: Decoded user configuration for csc
- * @csc_usr_ptr: Points to csc_cfg if valid user config available
  * @csc_ptr: Points to dpu_csc_cfg structure to use for current
  * @mplane_list: List of multirect planes of the same pipe
  * @catalog: Points to dpu catalog structure
@@ -112,7 +106,6 @@ struct dpu_plane {
 
 	struct dpu_hw_pipe *pipe_hw;
 	struct dpu_hw_pipe_cfg pipe_cfg;
-	struct dpu_hw_sharp_cfg sharp_cfg;
 	struct dpu_hw_pipe_qos_cfg pipe_qos_cfg;
 	uint32_t color_fill;
 	bool is_error;
@@ -120,16 +113,11 @@ struct dpu_plane {
 	bool is_virtual;
 	struct list_head mplane_list;
 	struct dpu_mdss_cfg *catalog;
-	bool revalidate;
 
-	struct dpu_csc_cfg csc_cfg;
-	struct dpu_csc_cfg *csc_usr_ptr;
 	struct dpu_csc_cfg *csc_ptr;
 
 	const struct dpu_sspp_sub_blks *pipe_sblk;
-
 	char pipe_name[DPU_NAME_SIZE];
-
 	struct msm_property_info property_info;
 	struct msm_property_data property_data[PLANE_PROP_COUNT];
 	struct drm_property_blob *blob_info;
@@ -442,17 +430,6 @@ static void _dpu_plane_set_qos_ctrl(struct drm_plane *plane,
 			&pdpu->pipe_qos_cfg);
 }
 
-void dpu_plane_set_revalidate(struct drm_plane *plane, bool enable)
-{
-	struct dpu_plane *pdpu;
-
-	if (!plane)
-		return;
-
-	pdpu = to_dpu_plane(plane);
-	pdpu->revalidate = enable;
-}
-
 int dpu_plane_danger_signal_ctrl(struct drm_plane *plane, bool enable)
 {
 	struct dpu_plane *pdpu;
@@ -576,55 +553,6 @@ static void _dpu_plane_set_qos_remap(struct drm_plane *plane)
 }
 
 /**
- * _dpu_plane_set_ts_prefill - set prefill with traffic shaper
- * @plane:	Pointer to drm plane
- * @pstate:	Pointer to dpu plane state
- */
-static void _dpu_plane_set_ts_prefill(struct drm_plane *plane,
-		struct dpu_plane_state *pstate)
-{
-	struct dpu_plane *pdpu;
-	struct dpu_hw_pipe_ts_cfg cfg;
-	struct msm_drm_private *priv;
-	struct dpu_kms *dpu_kms;
-
-	if (!plane || !plane->dev) {
-		DPU_ERROR("invalid arguments");
-		return;
-	}
-
-	priv = plane->dev->dev_private;
-	if (!priv || !priv->kms) {
-		DPU_ERROR("invalid KMS reference\n");
-		return;
-	}
-
-	dpu_kms = to_dpu_kms(priv->kms);
-	pdpu = to_dpu_plane(plane);
-	if (!pdpu->pipe_hw) {
-		DPU_ERROR("invalid pipe reference\n");
-		return;
-	}
-
-	if (!pdpu->pipe_hw || !pdpu->pipe_hw->ops.setup_ts_prefill)
-		return;
-
-	_dpu_plane_set_qos_ctrl(plane, false, DPU_PLANE_QOS_VBLANK_AMORTIZE);
-
-	memset(&cfg, 0, sizeof(cfg));
-	cfg.size = dpu_plane_get_property(pstate,
-			PLANE_PROP_PREFILL_SIZE);
-	cfg.time = dpu_plane_get_property(pstate,
-			PLANE_PROP_PREFILL_TIME);
-
-	DPU_DEBUG("plane%d size:%llu time:%llu\n",
-			plane->base.id, cfg.size, cfg.time);
-	DPU_EVT32_VERBOSE(DRMID(plane), cfg.size, cfg.time);
-	pdpu->pipe_hw->ops.setup_ts_prefill(pdpu->pipe_hw, &cfg,
-			pstate->multirect_index);
-}
-
-/**
  * _dpu_plane_get_aspace: gets the address space
  */
 static int _dpu_plane_get_aspace(
@@ -701,36 +629,6 @@ static inline void _dpu_plane_set_scanout(struct drm_plane *plane,
 	}
 }
 
-static int _dpu_plane_setup_scaler3_lut(struct dpu_plane *pdpu,
-		struct dpu_plane_state *pstate)
-{
-	struct dpu_hw_scaler3_cfg *cfg;
-	int ret = 0;
-
-	if (!pdpu || !pstate) {
-		DPU_ERROR("invalid args\n");
-		return -EINVAL;
-	}
-
-	cfg = &pstate->scaler3_cfg;
-
-	cfg->dir_lut = msm_property_get_blob(
-			&pdpu->property_info,
-			&pstate->property_state, &cfg->dir_len,
-			PLANE_PROP_SCALER_LUT_ED);
-	cfg->cir_lut = msm_property_get_blob(
-			&pdpu->property_info,
-			&pstate->property_state, &cfg->cir_len,
-			PLANE_PROP_SCALER_LUT_CIR);
-	cfg->sep_lut = msm_property_get_blob(
-			&pdpu->property_info,
-			&pstate->property_state, &cfg->sep_len,
-			PLANE_PROP_SCALER_LUT_SEP);
-	if (!cfg->dir_lut || !cfg->cir_lut || !cfg->sep_lut)
-		ret = -ENODATA;
-	return ret;
-}
-
 static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu,
 		struct dpu_plane_state *pstate,
 		uint32_t src_w, uint32_t src_h, uint32_t dst_w, uint32_t dst_h,
@@ -738,7 +636,7 @@ static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu,
 		const struct dpu_format *fmt,
 		uint32_t chroma_subsmpl_h, uint32_t chroma_subsmpl_v)
 {
-	uint32_t decimated, i;
+	uint32_t i;
 
 	if (!pdpu || !pstate || !scale_cfg || !fmt || !chroma_subsmpl_h ||
 			!chroma_subsmpl_v) {
@@ -752,14 +650,10 @@ static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu,
 	memset(scale_cfg, 0, sizeof(*scale_cfg));
 	memset(&pstate->pixel_ext, 0, sizeof(struct dpu_hw_pixel_ext));
 
-	decimated = DECIMATED_DIMENSION(src_w,
-			pdpu->pipe_cfg.horz_decimation);
 	scale_cfg->phase_step_x[DPU_SSPP_COMP_0] =
-		mult_frac((1 << PHASE_STEP_SHIFT), decimated, dst_w);
-	decimated = DECIMATED_DIMENSION(src_h,
-			pdpu->pipe_cfg.vert_decimation);
+		mult_frac((1 << PHASE_STEP_SHIFT), src_w, dst_w);
 	scale_cfg->phase_step_y[DPU_SSPP_COMP_0] =
-		mult_frac((1 << PHASE_STEP_SHIFT), decimated, dst_h);
+		mult_frac((1 << PHASE_STEP_SHIFT), src_h, dst_h);
 
 
 	scale_cfg->phase_step_y[DPU_SSPP_COMP_1_2] =
@@ -778,10 +672,8 @@ static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu,
 		scale_cfg->phase_step_y[DPU_SSPP_COMP_0];
 
 	for (i = 0; i < DPU_MAX_PLANES; i++) {
-		scale_cfg->src_width[i] = DECIMATED_DIMENSION(src_w,
-				pdpu->pipe_cfg.horz_decimation);
-		scale_cfg->src_height[i] = DECIMATED_DIMENSION(src_h,
-				pdpu->pipe_cfg.vert_decimation);
+		scale_cfg->src_width[i] = src_w;
+		scale_cfg->src_height[i] = src_h;
 		if (i == DPU_SSPP_COMP_1_2 || i == DPU_SSPP_COMP_2) {
 			scale_cfg->src_width[i] /= chroma_subsmpl_h;
 			scale_cfg->src_height[i] /= chroma_subsmpl_v;
@@ -807,154 +699,6 @@ static void _dpu_plane_setup_scaler3(struct dpu_plane *pdpu,
 	scale_cfg->enable = 1;
 }
 
-/**
- * _dpu_plane_setup_scaler2 - determine default scaler phase steps/filter type
- * @pdpu: Pointer to DPU plane object
- * @src: Source size
- * @dst: Destination size
- * @phase_steps: Pointer to output array for phase steps
- * @filter: Pointer to output array for filter type
- * @fmt: Pointer to format definition
- * @chroma_subsampling: Subsampling amount for chroma channel
- *
- * Returns: 0 on success
- */
-static int _dpu_plane_setup_scaler2(struct dpu_plane *pdpu,
-		uint32_t src, uint32_t dst, uint32_t *phase_steps,
-		enum dpu_hw_filter *filter, const struct dpu_format *fmt,
-		uint32_t chroma_subsampling)
-{
-	if (!pdpu || !phase_steps || !filter || !fmt) {
-		DPU_ERROR(
-			"invalid arg(s), plane %d phase %d filter %d fmt %d\n",
-			pdpu != 0, phase_steps != 0, filter != 0, fmt != 0);
-		return -EINVAL;
-	}
-
-	/* calculate phase steps, leave init phase as zero */
-	phase_steps[DPU_SSPP_COMP_0] =
-		mult_frac(1 << PHASE_STEP_SHIFT, src, dst);
-	phase_steps[DPU_SSPP_COMP_1_2] =
-		phase_steps[DPU_SSPP_COMP_0] / chroma_subsampling;
-	phase_steps[DPU_SSPP_COMP_2] = phase_steps[DPU_SSPP_COMP_1_2];
-	phase_steps[DPU_SSPP_COMP_3] = phase_steps[DPU_SSPP_COMP_0];
-
-	/* calculate scaler config, if necessary */
-	if (DPU_FORMAT_IS_YUV(fmt) || src != dst) {
-		filter[DPU_SSPP_COMP_3] =
-			(src <= dst) ? DPU_SCALE_FILTER_BIL :
-			DPU_SCALE_FILTER_PCMN;
-
-		if (DPU_FORMAT_IS_YUV(fmt)) {
-			filter[DPU_SSPP_COMP_0] = DPU_SCALE_FILTER_CA;
-			filter[DPU_SSPP_COMP_1_2] = filter[DPU_SSPP_COMP_3];
-		} else {
-			filter[DPU_SSPP_COMP_0] = filter[DPU_SSPP_COMP_3];
-			filter[DPU_SSPP_COMP_1_2] =
-				DPU_SCALE_FILTER_NEAREST;
-		}
-	} else {
-		/* disable scaler */
-		filter[DPU_SSPP_COMP_0] = DPU_SCALE_FILTER_MAX;
-		filter[DPU_SSPP_COMP_1_2] = DPU_SCALE_FILTER_MAX;
-		filter[DPU_SSPP_COMP_3] = DPU_SCALE_FILTER_MAX;
-	}
-	return 0;
-}
-
-/**
- * _dpu_plane_setup_pixel_ext - determine default pixel extension values
- * @pdpu: Pointer to DPU plane object
- * @src: Source size
- * @dst: Destination size
- * @decimated_src: Source size after decimation, if any
- * @phase_steps: Pointer to output array for phase steps
- * @out_src: Output array for pixel extension values
- * @out_edge1: Output array for pixel extension first edge
- * @out_edge2: Output array for pixel extension second edge
- * @filter: Pointer to array for filter type
- * @fmt: Pointer to format definition
- * @chroma_subsampling: Subsampling amount for chroma channel
- * @post_compare: Whether to chroma subsampled source size for comparisions
- */
-static void _dpu_plane_setup_pixel_ext(struct dpu_plane *pdpu,
-		uint32_t src, uint32_t dst, uint32_t decimated_src,
-		uint32_t *phase_steps, uint32_t *out_src, int *out_edge1,
-		int *out_edge2, enum dpu_hw_filter *filter,
-		const struct dpu_format *fmt, uint32_t chroma_subsampling,
-		bool post_compare)
-{
-	int64_t edge1, edge2, caf;
-	uint32_t src_work;
-	int i, tmp;
-
-	if (pdpu && phase_steps && out_src && out_edge1 &&
-			out_edge2 && filter && fmt) {
-		/* handle CAF for YUV formats */
-		if (DPU_FORMAT_IS_YUV(fmt) && *filter == DPU_SCALE_FILTER_CA)
-			caf = PHASE_STEP_UNIT_SCALE;
-		else
-			caf = 0;
-
-		for (i = 0; i < DPU_MAX_PLANES; i++) {
-			src_work = decimated_src;
-			if (i == DPU_SSPP_COMP_1_2 || i == DPU_SSPP_COMP_2)
-				src_work /= chroma_subsampling;
-			if (post_compare)
-				src = src_work;
-			if (!DPU_FORMAT_IS_YUV(fmt) && (src == dst)) {
-				/* unity */
-				edge1 = 0;
-				edge2 = 0;
-			} else if (dst >= src) {
-				/* upscale */
-				edge1 = (1 << PHASE_RESIDUAL);
-				edge1 -= caf;
-				edge2 = (1 << PHASE_RESIDUAL);
-				edge2 += (dst - 1) * *(phase_steps + i);
-				edge2 -= (src_work - 1) * PHASE_STEP_UNIT_SCALE;
-				edge2 += caf;
-				edge2 = -(edge2);
-			} else {
-				/* downscale */
-				edge1 = 0;
-				edge2 = (dst - 1) * *(phase_steps + i);
-				edge2 -= (src_work - 1) * PHASE_STEP_UNIT_SCALE;
-				edge2 += *(phase_steps + i);
-				edge2 = -(edge2);
-			}
-
-			/* only enable CAF for luma plane */
-			caf = 0;
-
-			/* populate output arrays */
-			*(out_src + i) = src_work;
-
-			/* edge updates taken from __pxl_extn_helper */
-			if (edge1 >= 0) {
-				tmp = (uint32_t)edge1;
-				tmp >>= PHASE_STEP_SHIFT;
-				*(out_edge1 + i) = -tmp;
-			} else {
-				tmp = (uint32_t)(-edge1);
-				*(out_edge1 + i) =
-					(tmp + PHASE_STEP_UNIT_SCALE - 1) >>
-					PHASE_STEP_SHIFT;
-			}
-			if (edge2 >= 0) {
-				tmp = (uint32_t)edge2;
-				tmp >>= PHASE_STEP_SHIFT;
-				*(out_edge2 + i) = -tmp;
-			} else {
-				tmp = (uint32_t)(-edge2);
-				*(out_edge2 + i) =
-					(tmp + PHASE_STEP_UNIT_SCALE - 1) >>
-					PHASE_STEP_SHIFT;
-			}
-		}
-	}
-}
-
 static inline void _dpu_plane_setup_csc(struct dpu_plane *pdpu)
 {
 	static const struct dpu_csc_cfg dpu_csc_YUV2RGB_601L = {
@@ -991,10 +735,7 @@ static inline void _dpu_plane_setup_csc(struct dpu_plane *pdpu)
 		return;
 	}
 
-	/* revert to kernel default if override not available */
-	if (pdpu->csc_usr_ptr)
-		pdpu->csc_ptr = pdpu->csc_usr_ptr;
-	else if (BIT(DPU_SSPP_CSC_10BIT) & pdpu->features)
+	if (BIT(DPU_SSPP_CSC_10BIT) & pdpu->features)
 		pdpu->csc_ptr = (struct dpu_csc_cfg *)&dpu_csc10_YUV2RGB_601L;
 	else
 		pdpu->csc_ptr = (struct dpu_csc_cfg *)&dpu_csc_YUV2RGB_601L;
@@ -1005,60 +746,6 @@ static inline void _dpu_plane_setup_csc(struct dpu_plane *pdpu)
 			pdpu->csc_ptr->csc_mv[2]);
 }
 
-static void dpu_color_process_plane_setup(struct drm_plane *plane)
-{
-	struct dpu_plane *pdpu;
-	struct dpu_plane_state *pstate;
-	uint32_t hue, saturation, value, contrast;
-	struct drm_msm_memcol *memcol = NULL;
-	size_t memcol_sz = 0;
-
-	pdpu = to_dpu_plane(plane);
-	pstate = to_dpu_plane_state(plane->state);
-
-	hue = (uint32_t) dpu_plane_get_property(pstate, PLANE_PROP_HUE_ADJUST);
-	if (pdpu->pipe_hw->ops.setup_pa_hue)
-		pdpu->pipe_hw->ops.setup_pa_hue(pdpu->pipe_hw, &hue);
-	saturation = (uint32_t) dpu_plane_get_property(pstate,
-		PLANE_PROP_SATURATION_ADJUST);
-	if (pdpu->pipe_hw->ops.setup_pa_sat)
-		pdpu->pipe_hw->ops.setup_pa_sat(pdpu->pipe_hw, &saturation);
-	value = (uint32_t) dpu_plane_get_property(pstate,
-		PLANE_PROP_VALUE_ADJUST);
-	if (pdpu->pipe_hw->ops.setup_pa_val)
-		pdpu->pipe_hw->ops.setup_pa_val(pdpu->pipe_hw, &value);
-	contrast = (uint32_t) dpu_plane_get_property(pstate,
-		PLANE_PROP_CONTRAST_ADJUST);
-	if (pdpu->pipe_hw->ops.setup_pa_cont)
-		pdpu->pipe_hw->ops.setup_pa_cont(pdpu->pipe_hw, &contrast);
-
-	if (pdpu->pipe_hw->ops.setup_pa_memcolor) {
-		/* Skin memory color setup */
-		memcol = msm_property_get_blob(&pdpu->property_info,
-					&pstate->property_state,
-					&memcol_sz,
-					PLANE_PROP_SKIN_COLOR);
-		pdpu->pipe_hw->ops.setup_pa_memcolor(pdpu->pipe_hw,
-					MEMCOLOR_SKIN, memcol);
-
-		/* Sky memory color setup */
-		memcol = msm_property_get_blob(&pdpu->property_info,
-					&pstate->property_state,
-					&memcol_sz,
-					PLANE_PROP_SKY_COLOR);
-		pdpu->pipe_hw->ops.setup_pa_memcolor(pdpu->pipe_hw,
-					MEMCOLOR_SKY, memcol);
-
-		/* Foliage memory color setup */
-		memcol = msm_property_get_blob(&pdpu->property_info,
-					&pstate->property_state,
-					&memcol_sz,
-					PLANE_PROP_FOLIAGE_COLOR);
-		pdpu->pipe_hw->ops.setup_pa_memcolor(pdpu->pipe_hw,
-					MEMCOLOR_FOLIAGE, memcol);
-	}
-}
-
 static void _dpu_plane_setup_scaler(struct dpu_plane *pdpu,
 		struct dpu_plane_state *pstate,
 		const struct dpu_format *fmt, bool color_fill)
@@ -1074,99 +761,20 @@ static void _dpu_plane_setup_scaler(struct dpu_plane *pdpu,
 
 	pe = &pstate->pixel_ext;
 
-	pdpu->pipe_cfg.horz_decimation =
-		dpu_plane_get_property(pstate, PLANE_PROP_H_DECIMATE);
-	pdpu->pipe_cfg.vert_decimation =
-		dpu_plane_get_property(pstate, PLANE_PROP_V_DECIMATE);
-
 	/* don't chroma subsample if decimating */
-	chroma_subsmpl_h = pdpu->pipe_cfg.horz_decimation ? 1 :
+	chroma_subsmpl_h =
 		drm_format_horz_chroma_subsampling(fmt->base.pixel_format);
-	chroma_subsmpl_v = pdpu->pipe_cfg.vert_decimation ? 1 :
+	chroma_subsmpl_v =
 		drm_format_vert_chroma_subsampling(fmt->base.pixel_format);
 
-	/* update scaler */
-	if (pdpu->features & BIT(DPU_SSPP_SCALER_QSEED3)) {
-		int rc;
-
-		if (!color_fill && !pdpu->debugfs_default_scale)
-			rc = _dpu_plane_setup_scaler3_lut(pdpu, pstate);
-		else
-			rc = -EINVAL;
-		if (rc || pstate->scaler_check_state !=
-			DPU_PLANE_SCLCHECK_SCALER_V2) {
-			/* calculate default config for QSEED3 */
-			_dpu_plane_setup_scaler3(pdpu, pstate,
-					pdpu->pipe_cfg.src_rect.w,
-					pdpu->pipe_cfg.src_rect.h,
-					pdpu->pipe_cfg.dst_rect.w,
-					pdpu->pipe_cfg.dst_rect.h,
-					&pstate->scaler3_cfg, fmt,
-					chroma_subsmpl_h, chroma_subsmpl_v);
-		}
-	} else if (pstate->scaler_check_state != DPU_PLANE_SCLCHECK_SCALER_V1 ||
-			color_fill || pdpu->debugfs_default_scale) {
-		uint32_t deci_dim, i;
-
-		/* calculate default configuration for QSEED2 */
-		memset(pe, 0, sizeof(struct dpu_hw_pixel_ext));
-
-		DPU_DEBUG_PLANE(pdpu, "default config\n");
-		deci_dim = DECIMATED_DIMENSION(pdpu->pipe_cfg.src_rect.w,
-				pdpu->pipe_cfg.horz_decimation);
-		_dpu_plane_setup_scaler2(pdpu,
-				deci_dim,
-				pdpu->pipe_cfg.dst_rect.w,
-				pe->phase_step_x,
-				pe->horz_filter, fmt, chroma_subsmpl_h);
-
-		if (DPU_FORMAT_IS_YUV(fmt))
-			deci_dim &= ~0x1;
-		_dpu_plane_setup_pixel_ext(pdpu, pdpu->pipe_cfg.src_rect.w,
-				pdpu->pipe_cfg.dst_rect.w, deci_dim,
-				pe->phase_step_x,
-				pe->roi_w,
-				pe->num_ext_pxls_left,
-				pe->num_ext_pxls_right, pe->horz_filter, fmt,
-				chroma_subsmpl_h, 0);
-
-		deci_dim = DECIMATED_DIMENSION(pdpu->pipe_cfg.src_rect.h,
-				pdpu->pipe_cfg.vert_decimation);
-		_dpu_plane_setup_scaler2(pdpu,
-				deci_dim,
-				pdpu->pipe_cfg.dst_rect.h,
-				pe->phase_step_y,
-				pe->vert_filter, fmt, chroma_subsmpl_v);
-		_dpu_plane_setup_pixel_ext(pdpu, pdpu->pipe_cfg.src_rect.h,
-				pdpu->pipe_cfg.dst_rect.h, deci_dim,
-				pe->phase_step_y,
-				pe->roi_h,
-				pe->num_ext_pxls_top,
-				pe->num_ext_pxls_btm, pe->vert_filter, fmt,
-				chroma_subsmpl_v, 1);
-
-		for (i = 0; i < DPU_MAX_PLANES; i++) {
-			if (pe->num_ext_pxls_left[i] >= 0)
-				pe->left_rpt[i] = pe->num_ext_pxls_left[i];
-			else
-				pe->left_ftch[i] = pe->num_ext_pxls_left[i];
-
-			if (pe->num_ext_pxls_right[i] >= 0)
-				pe->right_rpt[i] = pe->num_ext_pxls_right[i];
-			else
-				pe->right_ftch[i] = pe->num_ext_pxls_right[i];
-
-			if (pe->num_ext_pxls_top[i] >= 0)
-				pe->top_rpt[i] = pe->num_ext_pxls_top[i];
-			else
-				pe->top_ftch[i] = pe->num_ext_pxls_top[i];
-
-			if (pe->num_ext_pxls_btm[i] >= 0)
-				pe->btm_rpt[i] = pe->num_ext_pxls_btm[i];
-			else
-				pe->btm_ftch[i] = pe->num_ext_pxls_btm[i];
-		}
-	}
+	/* update scaler. calculate default config for QSEED3 */
+	_dpu_plane_setup_scaler3(pdpu, pstate,
+			pdpu->pipe_cfg.src_rect.w,
+			pdpu->pipe_cfg.src_rect.h,
+			pdpu->pipe_cfg.dst_rect.w,
+			pdpu->pipe_cfg.dst_rect.h,
+			&pstate->scaler3_cfg, fmt,
+			chroma_subsmpl_h, chroma_subsmpl_v);
 }
 
 /**
@@ -1463,189 +1071,6 @@ static void dpu_plane_cleanup_fb(struct drm_plane *plane,
 	msm_framebuffer_cleanup(old_state->fb, old_pstate->aspace);
 }
 
-static void _dpu_plane_sspp_atomic_check_mode_changed(struct dpu_plane *pdpu,
-		struct drm_plane_state *state,
-		struct drm_plane_state *old_state)
-{
-	struct dpu_plane_state *pstate = to_dpu_plane_state(state);
-	struct dpu_plane_state *old_pstate = to_dpu_plane_state(old_state);
-	struct drm_framebuffer *fb, *old_fb;
-
-	/* no need to check it again */
-	if (pstate->dirty == DPU_PLANE_DIRTY_ALL)
-		return;
-
-	if (!dpu_plane_enabled(state) || !dpu_plane_enabled(old_state)
-			|| pdpu->is_error) {
-		DPU_DEBUG_PLANE(pdpu,
-			"enabling/disabling full modeset required\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_ALL;
-	} else if (to_dpu_plane_state(old_state)->pending) {
-		DPU_DEBUG_PLANE(pdpu, "still pending\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_ALL;
-	} else if (pstate->multirect_index != old_pstate->multirect_index ||
-			pstate->multirect_mode != old_pstate->multirect_mode) {
-		DPU_DEBUG_PLANE(pdpu, "multirect config updated\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_ALL;
-	} else if (state->crtc_w != old_state->crtc_w ||
-		   state->crtc_h != old_state->crtc_h ||
-		   state->crtc_x != old_state->crtc_x ||
-		   state->crtc_y != old_state->crtc_y) {
-		DPU_DEBUG_PLANE(pdpu, "crtc rect updated\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_RECTS;
-	} else if (pstate->excl_rect.w != old_pstate->excl_rect.w ||
-		   pstate->excl_rect.h != old_pstate->excl_rect.h ||
-		   pstate->excl_rect.x != old_pstate->excl_rect.x ||
-		   pstate->excl_rect.y != old_pstate->excl_rect.y) {
-		DPU_DEBUG_PLANE(pdpu, "excl_rect updated\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_RECTS;
-	}
-
-	fb = state->fb;
-	old_fb = old_state->fb;
-
-	if (!fb || !old_fb) {
-		DPU_DEBUG_PLANE(pdpu, "can't compare fb handles\n");
-	} else if (fb->format->format != old_fb->format->format) {
-		DPU_DEBUG_PLANE(pdpu, "format change\n");
-		pstate->dirty |= DPU_PLANE_DIRTY_FORMAT | DPU_PLANE_DIRTY_RECTS;
-	} else {
-		uint64_t new_mod = fb->modifier;
-		uint64_t old_mod = old_fb->modifier;
-		uint32_t *new_pitches = fb->pitches;
-		uint32_t *old_pitches = old_fb->pitches;
-		uint32_t *new_offset = fb->offsets;
-		uint32_t *old_offset = old_fb->offsets;
-		int i;
-
-		if (new_mod != old_mod) {
-			DPU_DEBUG_PLANE(pdpu,
-				"format modifiers change\"\
-				new_mode:%llu old_mode:%llu\n",
-				new_mod, old_mod);
-			pstate->dirty |= DPU_PLANE_DIRTY_FORMAT |
-				DPU_PLANE_DIRTY_RECTS;
-		}
-
-		for (i = 0; i < ARRAY_SIZE(fb->pitches); i++) {
-			if (new_pitches[i] != old_pitches[i]) {
-				DPU_DEBUG_PLANE(pdpu,
-					"pitches change plane:%d\"\
-					old_pitches:%u new_pitches:%u\n",
-					i, old_pitches[i], new_pitches[i]);
-				pstate->dirty |= DPU_PLANE_DIRTY_RECTS;
-				break;
-			}
-		}
-		for (i = 0; i < ARRAY_SIZE(fb->offsets); i++) {
-			if (new_offset[i] != old_offset[i]) {
-				DPU_DEBUG_PLANE(pdpu,
-					"offset change plane:%d\"\
-					old_offset:%u new_offset:%u\n",
-					i, old_offset[i], new_offset[i]);
-				pstate->dirty |= DPU_PLANE_DIRTY_FORMAT |
-					DPU_PLANE_DIRTY_RECTS;
-				break;
-			}
-		}
-	}
-}
-
-static int _dpu_plane_validate_scaler_v2(struct dpu_plane *pdpu,
-		struct dpu_plane_state *pstate,
-		const struct dpu_format *fmt,
-		uint32_t img_w, uint32_t img_h,
-		uint32_t src_w, uint32_t src_h,
-		uint32_t deci_w, uint32_t deci_h)
-{
-	int i;
-
-	if (!pdpu || !pstate || !fmt) {
-		DPU_ERROR_PLANE(pdpu, "invalid arguments\n");
-		return -EINVAL;
-	}
-
-	/* don't run checks unless scaler data was changed */
-	if (pstate->scaler_check_state != DPU_PLANE_SCLCHECK_SCALER_V2_CHECK)
-		return 0;
-
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_INVALID;
-
-	for (i = 0; i < DPU_MAX_PLANES; i++) {
-		uint32_t hor_req_pixels, hor_fetch_pixels;
-		uint32_t vert_req_pixels, vert_fetch_pixels;
-		uint32_t src_w_tmp, src_h_tmp;
-
-		/* re-use color plane 1's config for plane 2 */
-		if (i == 2)
-			continue;
-
-		src_w_tmp = src_w;
-		src_h_tmp = src_h;
-
-		/*
-		 * For chroma plane, width is half for the following sub sampled
-		 * formats. Except in case of decimation, where hardware avoids
-		 * 1 line of decimation instead of downsampling.
-		 */
-		if (i == 1) {
-			if (!deci_w &&
-					(fmt->chroma_sample == DPU_CHROMA_420 ||
-					 fmt->chroma_sample == DPU_CHROMA_H2V1))
-				src_w_tmp >>= 1;
-			if (!deci_h &&
-					(fmt->chroma_sample == DPU_CHROMA_420 ||
-					 fmt->chroma_sample == DPU_CHROMA_H1V2))
-				src_h_tmp >>= 1;
-		}
-
-		hor_req_pixels = pstate->pixel_ext.roi_w[i];
-		vert_req_pixels = pstate->pixel_ext.roi_h[i];
-
-		hor_fetch_pixels = DECIMATED_DIMENSION(src_w_tmp +
-			(int8_t)(pstate->pixel_ext.left_ftch[i] & 0xFF) +
-			(int8_t)(pstate->pixel_ext.right_ftch[i] & 0xFF),
-			deci_w);
-		vert_fetch_pixels = DECIMATED_DIMENSION(src_h_tmp +
-			(int8_t)(pstate->pixel_ext.top_ftch[i] & 0xFF) +
-			(int8_t)(pstate->pixel_ext.btm_ftch[i] & 0xFF),
-			deci_h);
-
-		if ((hor_req_pixels != hor_fetch_pixels) ||
-			(hor_fetch_pixels > img_w) ||
-			(vert_req_pixels != vert_fetch_pixels) ||
-			(vert_fetch_pixels > img_h)) {
-			DPU_ERROR_PLANE(pdpu,
-					"req %d/%d, fetch %d/%d, src %dx%d\n",
-					hor_req_pixels, vert_req_pixels,
-					hor_fetch_pixels, vert_fetch_pixels,
-					img_w, img_h);
-			return -EINVAL;
-		}
-
-		/*
-		 * Alpha plane can only be scaled using bilinear or pixel
-		 * repeat/drop, src_width and src_height are only specified
-		 * for Y and UV plane
-		 */
-		if (i != 3 &&
-			(hor_req_pixels != pstate->scaler3_cfg.src_width[i] ||
-			vert_req_pixels != pstate->scaler3_cfg.src_height[i])) {
-			DPU_ERROR_PLANE(pdpu,
-				"roi[%d] %d/%d, scaler src %dx%d, src %dx%d\n",
-				i, pstate->pixel_ext.roi_w[i],
-				pstate->pixel_ext.roi_h[i],
-				pstate->scaler3_cfg.src_width[i],
-				pstate->scaler3_cfg.src_height[i],
-				src_w, src_h);
-			return -EINVAL;
-		}
-	}
-
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_SCALER_V2;
-	return 0;
-}
-
 static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 		struct drm_plane_state *state)
 {
@@ -1654,7 +1079,6 @@ static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 	struct dpu_plane_state *pstate;
 	const struct dpu_format *fmt;
 	struct dpu_rect src, dst;
-	uint32_t deci_w, deci_h, src_deci_w, src_deci_h;
 	uint32_t max_upscale, max_downscale, min_src_size, max_linewidth;
 	bool q16_data = true;
 
@@ -1674,18 +1098,12 @@ static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 		goto exit;
 	}
 
-	deci_w = dpu_plane_get_property(pstate, PLANE_PROP_H_DECIMATE);
-	deci_h = dpu_plane_get_property(pstate, PLANE_PROP_V_DECIMATE);
-
 	/* src values are in Q16 fixed point, convert to integer */
 	POPULATE_RECT(&src, state->src_x, state->src_y, state->src_w,
 		state->src_h, q16_data);
 	POPULATE_RECT(&dst, state->crtc_x, state->crtc_y, state->crtc_w,
 		state->crtc_h, !q16_data);
 
-	src_deci_w = DECIMATED_DIMENSION(src.w, deci_w);
-	src_deci_h = DECIMATED_DIMENSION(src.h, deci_h);
-
 	max_upscale = pdpu->pipe_sblk->maxupscale;
 	max_downscale = pdpu->pipe_sblk->maxdwnscale;
 	max_linewidth = pdpu->pipe_sblk->common->maxlinewidth;
@@ -1694,7 +1112,7 @@ static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 		dpu_plane_enabled(plane->state), dpu_plane_enabled(state));
 
 	if (!dpu_plane_enabled(state))
-		goto modeset_update;
+		goto exit;
 
 	fmt = to_dpu_format(msm_framebuffer_format(state->fb));
 
@@ -1732,18 +1150,6 @@ static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 		ret = -EINVAL;
 
 	/* decimation validation */
-	} else if (deci_w || deci_h) {
-		if ((deci_w > pdpu->pipe_sblk->common->maxhdeciexp) ||
-			(deci_h > pdpu->pipe_sblk->common->maxvdeciexp)) {
-			DPU_ERROR_PLANE(pdpu,
-					"too much decimation requested\n");
-			ret = -EINVAL;
-		} else if (fmt->fetch_mode != DPU_FETCH_LINEAR) {
-			DPU_ERROR_PLANE(pdpu,
-					"decimation requires linear fetch\n");
-			ret = -EINVAL;
-		}
-
 	} else if (!(pdpu->features & DPU_SSPP_SCALER) &&
 		((src.w != dst.w) || (src.h != dst.h))) {
 		DPU_ERROR_PLANE(pdpu,
@@ -1752,57 +1158,23 @@ static int dpu_plane_sspp_atomic_check(struct drm_plane *plane,
 		ret = -EINVAL;
 
 	/* check decimated source width */
-	} else if (src_deci_w > max_linewidth) {
+	} else if (src.w > max_linewidth) {
 		DPU_ERROR_PLANE(pdpu,
-				"invalid src w:%u, deci w:%u, line w:%u\n",
-				src.w, src_deci_w, max_linewidth);
+				"invalid src w:%u, line w:%u\n",
+				src.w, max_linewidth);
 		ret = -E2BIG;
 
 	/* check max scaler capability */
-	} else if (((src_deci_w * max_upscale) < dst.w) ||
-		((src_deci_h * max_upscale) < dst.h) ||
-		((dst.w * max_downscale) < src_deci_w) ||
-		((dst.h * max_downscale) < src_deci_h)) {
+	} else if (((src.w * max_upscale) < dst.w) ||
+		((src.h * max_upscale) < dst.h) ||
+		((dst.w * max_downscale) < src.w) ||
+		((dst.h * max_downscale) < src.h)) {
 		DPU_ERROR_PLANE(pdpu,
 			"too much scaling requested %ux%u->%ux%u\n",
-			src_deci_w, src_deci_h, dst.w, dst.h);
+			src.w, src.h, dst.w, dst.h);
 		ret = -E2BIG;
-	} else if (_dpu_plane_validate_scaler_v2(pdpu, pstate, fmt,
-				state->fb->width,
-				state->fb->height,
-				src.w, src.h, deci_w, deci_h)) {
-		ret = -EINVAL;
 	}
 
-	/* check excl rect configs */
-	if (!ret && pstate->excl_rect.w && pstate->excl_rect.h) {
-		struct dpu_rect intersect;
-
-		/*
-		 * Check exclusion rect against src rect.
-		 * it must intersect with source rect.
-		 */
-		dpu_kms_rect_intersect(&src, &pstate->excl_rect, &intersect);
-		if (intersect.w != pstate->excl_rect.w ||
-				intersect.h != pstate->excl_rect.h ||
-				DPU_FORMAT_IS_YUV(fmt)) {
-			DPU_ERROR_PLANE(pdpu,
-				"invalid excl_rect:{%d,%d,%d,%d} src:{%d,%d,%d,%d}, fmt: %4.4s\n",
-				pstate->excl_rect.x, pstate->excl_rect.y,
-				pstate->excl_rect.w, pstate->excl_rect.h,
-				src.x, src.y, src.w, src.h,
-				(char *)&fmt->base.pixel_format);
-			ret = -EINVAL;
-		}
-		DPU_DEBUG_PLANE(pdpu, "excl_rect: {%d,%d,%d,%d}\n",
-				pstate->excl_rect.x, pstate->excl_rect.y,
-				pstate->excl_rect.w, pstate->excl_rect.h);
-	}
-
-modeset_update:
-	if (!ret)
-		_dpu_plane_sspp_atomic_check_mode_changed(pdpu,
-				state, plane->state);
 exit:
 	return ret;
 }
@@ -1895,7 +1267,6 @@ static int dpu_plane_sspp_atomic_update(struct drm_plane *plane,
 	struct drm_framebuffer *fb;
 	struct dpu_rect src, dst;
 	bool q16_data = true;
-	int idx;
 
 	if (!plane) {
 		DPU_ERROR("invalid plane\n");
@@ -1925,150 +1296,69 @@ static int dpu_plane_sspp_atomic_update(struct drm_plane *plane,
 	fmt = to_dpu_format(msm_framebuffer_format(fb));
 	nplanes = fmt->num_planes;
 
-	/* force reprogramming of all the parameters, if the flag is set */
-	if (pdpu->revalidate) {
-		DPU_DEBUG("plane:%d - reconfigure all the parameters\n",
-				plane->base.id);
-		pstate->dirty = DPU_PLANE_DIRTY_ALL;
-		pdpu->revalidate = false;
-	}
-
-	/* determine what needs to be refreshed */
-	while ((idx = msm_property_pop_dirty(&pdpu->property_info,
-					&pstate->property_state)) >= 0) {
-		switch (idx) {
-		case PLANE_PROP_SCALER_V1:
-		case PLANE_PROP_SCALER_V2:
-		case PLANE_PROP_SCALER_LUT_ED:
-		case PLANE_PROP_SCALER_LUT_CIR:
-		case PLANE_PROP_SCALER_LUT_SEP:
-		case PLANE_PROP_H_DECIMATE:
-		case PLANE_PROP_V_DECIMATE:
-		case PLANE_PROP_SRC_CONFIG:
-		case PLANE_PROP_ZPOS:
-		case PLANE_PROP_EXCL_RECT_V1:
-			pstate->dirty |= DPU_PLANE_DIRTY_RECTS;
-			break;
-		case PLANE_PROP_CSC_V1:
-			pstate->dirty |= DPU_PLANE_DIRTY_FORMAT;
-			break;
-		case PLANE_PROP_COLOR_FILL:
-			/* potentially need to refresh everything */
-			pstate->dirty = DPU_PLANE_DIRTY_ALL;
-			break;
-		case PLANE_PROP_INFO:
-		case PLANE_PROP_ALPHA:
-		case PLANE_PROP_BLEND_OP:
-			/* no special action required */
-			break;
-		case PLANE_PROP_PREFILL_SIZE:
-		case PLANE_PROP_PREFILL_TIME:
-			pstate->dirty |= DPU_PLANE_DIRTY_PERF;
-			break;
-		default:
-			/* unknown property, refresh everything */
-			pstate->dirty |= DPU_PLANE_DIRTY_ALL;
-			DPU_ERROR("executing full mode set, prp_idx %d\n", idx);
-			break;
-		}
-	}
-
-	/**
-	 * since plane_atomic_check is invoked before crtc_atomic_check
-	 * in the commit sequence, all the parameters for updating the
-	 * plane dirty flag will not be available during
-	 * plane_atomic_check as some features params are updated
-	 * in crtc_atomic_check (eg.:sDMA). So check for mode_change
-	 * before sspp update.
-	 */
-	_dpu_plane_sspp_atomic_check_mode_changed(pdpu, state,
-								old_state);
-
-	if (pstate->dirty & DPU_PLANE_DIRTY_RECTS)
-		memset(&(pdpu->pipe_cfg), 0, sizeof(struct dpu_hw_pipe_cfg));
+	memset(&(pdpu->pipe_cfg), 0, sizeof(struct dpu_hw_pipe_cfg));
 
 	_dpu_plane_set_scanout(plane, pstate, &pdpu->pipe_cfg, fb);
 
-	/* early out if nothing dirty */
-	if (!pstate->dirty)
-		return 0;
 	pstate->pending = true;
 
 	pdpu->is_rt_pipe = (dpu_crtc_get_client_type(crtc) != NRT_CLIENT);
 	_dpu_plane_set_qos_ctrl(plane, false, DPU_PLANE_QOS_PANIC_CTRL);
 
 	/* update roi config */
-	if (pstate->dirty & DPU_PLANE_DIRTY_RECTS) {
-		POPULATE_RECT(&src, state->src_x, state->src_y,
-			state->src_w, state->src_h, q16_data);
-		POPULATE_RECT(&dst, state->crtc_x, state->crtc_y,
-			state->crtc_w, state->crtc_h, !q16_data);
-
-		DPU_DEBUG_PLANE(pdpu,
-			"FB[%u] %u,%u,%ux%u->crtc%u %d,%d,%ux%u, %4.4s ubwc %d\n",
-				fb->base.id, src.x, src.y, src.w, src.h,
-				crtc->base.id, dst.x, dst.y, dst.w, dst.h,
-				(char *)&fmt->base.pixel_format,
-				DPU_FORMAT_IS_UBWC(fmt));
-
-		if (dpu_plane_get_property(pstate, PLANE_PROP_SRC_CONFIG) &
-			BIT(DPU_DRM_DEINTERLACE)) {
-			DPU_DEBUG_PLANE(pdpu, "deinterlace\n");
-			for (idx = 0; idx < DPU_MAX_PLANES; ++idx)
-				pdpu->pipe_cfg.layout.plane_pitch[idx] <<= 1;
-			src.h /= 2;
-			src.y  = DIV_ROUND_UP(src.y, 2);
-			src.y &= ~0x1;
-		}
-
-		pdpu->pipe_cfg.src_rect = src;
-		pdpu->pipe_cfg.dst_rect = dst;
+	POPULATE_RECT(&src, state->src_x, state->src_y,
+		state->src_w, state->src_h, q16_data);
+	POPULATE_RECT(&dst, state->crtc_x, state->crtc_y,
+		state->crtc_w, state->crtc_h, !q16_data);
+
+	DPU_DEBUG_PLANE(pdpu,
+		"FB[%u] %u,%u,%ux%u->crtc%u %d,%d,%ux%u, %4.4s ubwc %d\n",
+			fb->base.id, src.x, src.y, src.w, src.h,
+			crtc->base.id, dst.x, dst.y, dst.w, dst.h,
+			(char *)&fmt->base.pixel_format,
+			DPU_FORMAT_IS_UBWC(fmt));
 
-		_dpu_plane_setup_scaler(pdpu, pstate, fmt, false);
 
-		/* check for color fill */
-		pdpu->color_fill = (uint32_t)dpu_plane_get_property(pstate,
-				PLANE_PROP_COLOR_FILL);
-		if (pdpu->color_fill & DPU_PLANE_COLOR_FILL_FLAG) {
-			/* skip remaining processing on color fill */
-			pstate->dirty = 0x0;
-		} else if (pdpu->pipe_hw->ops.setup_rects) {
-			pdpu->pipe_hw->ops.setup_rects(pdpu->pipe_hw,
-					&pdpu->pipe_cfg,
-					pstate->multirect_index);
-		}
+	pdpu->pipe_cfg.src_rect = src;
+	pdpu->pipe_cfg.dst_rect = dst;
 
-		if (pdpu->pipe_hw->ops.setup_pe &&
-				(pstate->multirect_index != DPU_SSPP_RECT_1))
-			pdpu->pipe_hw->ops.setup_pe(pdpu->pipe_hw,
-					&pstate->pixel_ext);
+	_dpu_plane_setup_scaler(pdpu, pstate, fmt, false);
 
-		/**
-		 * when programmed in multirect mode, scalar block will be
-		 * bypassed. Still we need to update alpha and bitwidth
-		 * ONLY for RECT0
-		 */
-		if (pdpu->pipe_hw->ops.setup_scaler &&
-				pstate->multirect_index != DPU_SSPP_RECT_1)
-			pdpu->pipe_hw->ops.setup_scaler(pdpu->pipe_hw,
-					&pdpu->pipe_cfg, &pstate->pixel_ext,
-					&pstate->scaler3_cfg);
-
-		/* update excl rect */
-		if (pdpu->pipe_hw->ops.setup_excl_rect)
-			pdpu->pipe_hw->ops.setup_excl_rect(pdpu->pipe_hw,
-					&pstate->excl_rect,
-					pstate->multirect_index);
+	/* override for color fill */
+	if (pdpu->color_fill & DPU_PLANE_COLOR_FILL_FLAG) {
+		/* skip remaining processing on color fill */
+		return 0;
+	}
 
-		if (pdpu->pipe_hw->ops.setup_multirect)
-			pdpu->pipe_hw->ops.setup_multirect(
-					pdpu->pipe_hw,
-					pstate->multirect_index,
-					pstate->multirect_mode);
+	if (pdpu->pipe_hw->ops.setup_rects) {
+		pdpu->pipe_hw->ops.setup_rects(pdpu->pipe_hw,
+				&pdpu->pipe_cfg,
+				pstate->multirect_index);
 	}
 
-	if ((pstate->dirty & DPU_PLANE_DIRTY_FORMAT) &&
-			pdpu->pipe_hw->ops.setup_format) {
+	if (pdpu->pipe_hw->ops.setup_pe &&
+			(pstate->multirect_index != DPU_SSPP_RECT_1))
+		pdpu->pipe_hw->ops.setup_pe(pdpu->pipe_hw,
+				&pstate->pixel_ext);
+
+	/**
+	 * when programmed in multirect mode, scalar block will be
+	 * bypassed. Still we need to update alpha and bitwidth
+	 * ONLY for RECT0
+	 */
+	if (pdpu->pipe_hw->ops.setup_scaler &&
+			pstate->multirect_index != DPU_SSPP_RECT_1)
+		pdpu->pipe_hw->ops.setup_scaler(pdpu->pipe_hw,
+				&pdpu->pipe_cfg, &pstate->pixel_ext,
+				&pstate->scaler3_cfg);
+
+	if (pdpu->pipe_hw->ops.setup_multirect)
+		pdpu->pipe_hw->ops.setup_multirect(
+				pdpu->pipe_hw,
+				pstate->multirect_index,
+				pstate->multirect_mode);
+
+	if (pdpu->pipe_hw->ops.setup_format) {
 		src_flags = 0x0;
 
 		/* update format */
@@ -2099,35 +1389,16 @@ static int dpu_plane_sspp_atomic_update(struct drm_plane *plane,
 			pdpu->csc_ptr = 0;
 	}
 
-	dpu_color_process_plane_setup(plane);
-
-	/* update sharpening */
-	if ((pstate->dirty & DPU_PLANE_DIRTY_SHARPEN) &&
-		pdpu->pipe_hw->ops.setup_sharpening) {
-		pdpu->sharp_cfg.strength = SHARP_STRENGTH_DEFAULT;
-		pdpu->sharp_cfg.edge_thr = SHARP_EDGE_THR_DEFAULT;
-		pdpu->sharp_cfg.smooth_thr = SHARP_SMOOTH_THR_DEFAULT;
-		pdpu->sharp_cfg.noise_thr = SHARP_NOISE_THR_DEFAULT;
-
-		pdpu->pipe_hw->ops.setup_sharpening(pdpu->pipe_hw,
-				&pdpu->sharp_cfg);
-	}
-
 	_dpu_plane_set_qos_lut(plane, fb);
 	_dpu_plane_set_danger_lut(plane, fb);
 
 	if (plane->type != DRM_PLANE_TYPE_CURSOR) {
 		_dpu_plane_set_qos_ctrl(plane, true, DPU_PLANE_QOS_PANIC_CTRL);
 		_dpu_plane_set_ot_limit(plane, crtc);
-		if (pstate->dirty & DPU_PLANE_DIRTY_PERF)
-			_dpu_plane_set_ts_prefill(plane, pstate);
 	}
 
 	_dpu_plane_set_qos_remap(plane);
 
-	/* clear dirty */
-	pstate->dirty = 0x0;
-
 	return 0;
 }
 
@@ -2206,13 +1477,6 @@ void dpu_plane_restore(struct drm_plane *plane)
 
 	pdpu = to_dpu_plane(plane);
 
-	/*
-	 * Revalidate is only true here if idle PC occurred and
-	 * there is no plane state update in current commit cycle.
-	 */
-	if (!pdpu->revalidate)
-		return;
-
 	DPU_DEBUG_PLANE(pdpu, "\n");
 
 	/* last plane state is same as current state */
@@ -2223,21 +1487,9 @@ void dpu_plane_restore(struct drm_plane *plane)
 static void _dpu_plane_install_properties(struct drm_plane *plane,
 	struct dpu_mdss_cfg *catalog, u32 master_plane_id)
 {
-	static const struct drm_prop_enum_list e_blend_op[] = {
-		{DPU_DRM_BLEND_OP_NOT_DEFINED,    "not_defined"},
-		{DPU_DRM_BLEND_OP_OPAQUE,         "opaque"},
-		{DPU_DRM_BLEND_OP_PREMULTIPLIED,  "premultiplied"},
-		{DPU_DRM_BLEND_OP_COVERAGE,       "coverage"}
-	};
-	static const struct drm_prop_enum_list e_src_config[] = {
-		{DPU_DRM_DEINTERLACE, "deinterlace"}
-	};
-	const struct dpu_format_extended *format_list;
-	struct dpu_kms_info *info;
 	struct dpu_plane *pdpu = to_dpu_plane(plane);
 	int zpos_max = 255;
 	int zpos_def = 0;
-	char feature_name[256];
 
 	if (!plane || !pdpu) {
 		DPU_ERROR("invalid plane\n");
@@ -2267,353 +1519,6 @@ static void _dpu_plane_install_properties(struct drm_plane *plane,
 
 	msm_property_install_range(&pdpu->property_info, "zpos",
 		0x0, 0, zpos_max, zpos_def, PLANE_PROP_ZPOS);
-
-	msm_property_install_range(&pdpu->property_info, "alpha",
-		0x0, 0, 255, 255, PLANE_PROP_ALPHA);
-
-	if (!master_plane_id) {
-		if (pdpu->pipe_sblk->common->maxhdeciexp) {
-			msm_property_install_range(&pdpu->property_info,
-					"h_decimate", 0x0, 0,
-					pdpu->pipe_sblk->common->maxhdeciexp, 0,
-					PLANE_PROP_H_DECIMATE);
-		}
-
-		if (pdpu->pipe_sblk->common->maxvdeciexp) {
-			msm_property_install_range(&pdpu->property_info,
-					"v_decimate", 0x0, 0,
-					pdpu->pipe_sblk->common->maxvdeciexp, 0,
-					PLANE_PROP_V_DECIMATE);
-		}
-
-		if (pdpu->features & BIT(DPU_SSPP_SCALER_QSEED3)) {
-			msm_property_install_range(
-					&pdpu->property_info, "scaler_v2",
-					0x0, 0, ~0, 0, PLANE_PROP_SCALER_V2);
-			msm_property_install_blob(&pdpu->property_info,
-					"lut_ed", 0, PLANE_PROP_SCALER_LUT_ED);
-			msm_property_install_blob(&pdpu->property_info,
-					"lut_cir", 0,
-					PLANE_PROP_SCALER_LUT_CIR);
-			msm_property_install_blob(&pdpu->property_info,
-					"lut_sep", 0,
-					PLANE_PROP_SCALER_LUT_SEP);
-		} else if (pdpu->features & DPU_SSPP_SCALER) {
-			msm_property_install_range(
-					&pdpu->property_info, "scaler_v1", 0x0,
-					0, ~0, 0, PLANE_PROP_SCALER_V1);
-		}
-
-		if (pdpu->features & BIT(DPU_SSPP_CSC) ||
-		    pdpu->features & BIT(DPU_SSPP_CSC_10BIT))
-			msm_property_install_volatile_range(
-					&pdpu->property_info, "csc_v1", 0x0,
-					0, ~0, 0, PLANE_PROP_CSC_V1);
-
-		if (pdpu->features & BIT(DPU_SSPP_HSIC)) {
-			snprintf(feature_name, sizeof(feature_name), "%s%d",
-				"DPU_SSPP_HUE_V",
-				pdpu->pipe_sblk->hsic_blk.version >> 16);
-			msm_property_install_range(&pdpu->property_info,
-				feature_name, 0, 0, 0xFFFFFFFF, 0,
-				PLANE_PROP_HUE_ADJUST);
-			snprintf(feature_name, sizeof(feature_name), "%s%d",
-				"DPU_SSPP_SATURATION_V",
-				pdpu->pipe_sblk->hsic_blk.version >> 16);
-			msm_property_install_range(&pdpu->property_info,
-				feature_name, 0, 0, 0xFFFFFFFF, 0,
-				PLANE_PROP_SATURATION_ADJUST);
-			snprintf(feature_name, sizeof(feature_name), "%s%d",
-				"DPU_SSPP_VALUE_V",
-				pdpu->pipe_sblk->hsic_blk.version >> 16);
-			msm_property_install_range(&pdpu->property_info,
-				feature_name, 0, 0, 0xFFFFFFFF, 0,
-				PLANE_PROP_VALUE_ADJUST);
-			snprintf(feature_name, sizeof(feature_name), "%s%d",
-				"DPU_SSPP_CONTRAST_V",
-				pdpu->pipe_sblk->hsic_blk.version >> 16);
-			msm_property_install_range(&pdpu->property_info,
-				feature_name, 0, 0, 0xFFFFFFFF, 0,
-				PLANE_PROP_CONTRAST_ADJUST);
-		}
-	}
-
-	if (pdpu->features & BIT(DPU_SSPP_EXCL_RECT))
-		msm_property_install_volatile_range(&pdpu->property_info,
-			"excl_rect_v1", 0x0, 0, ~0, 0, PLANE_PROP_EXCL_RECT_V1);
-
-	msm_property_install_enum(&pdpu->property_info, "blend_op", 0x0, 0,
-		e_blend_op, ARRAY_SIZE(e_blend_op), PLANE_PROP_BLEND_OP);
-
-	msm_property_install_enum(&pdpu->property_info, "src_config", 0x0, 1,
-		e_src_config, ARRAY_SIZE(e_src_config), PLANE_PROP_SRC_CONFIG);
-
-	if (pdpu->pipe_hw->ops.setup_solidfill)
-		msm_property_install_range(&pdpu->property_info, "color_fill",
-				0, 0, 0xFFFFFFFF, 0, PLANE_PROP_COLOR_FILL);
-
-	msm_property_install_range(&pdpu->property_info,
-			"prefill_size", 0x0, 0, ~0, 0,
-			PLANE_PROP_PREFILL_SIZE);
-	msm_property_install_range(&pdpu->property_info,
-			"prefill_time", 0x0, 0, ~0, 0,
-			PLANE_PROP_PREFILL_TIME);
-
-	info = kzalloc(sizeof(struct dpu_kms_info), GFP_KERNEL);
-	if (!info) {
-		DPU_ERROR("failed to allocate info memory\n");
-		return;
-	}
-
-	msm_property_install_blob(&pdpu->property_info, "capabilities",
-		DRM_MODE_PROP_IMMUTABLE, PLANE_PROP_INFO);
-	dpu_kms_info_reset(info);
-
-	if (!master_plane_id) {
-		format_list = pdpu->pipe_sblk->format_list;
-	} else {
-		format_list = pdpu->pipe_sblk->virt_format_list;
-		dpu_kms_info_add_keyint(info, "primary_smart_plane_id",
-						master_plane_id);
-	}
-
-	if (format_list) {
-		dpu_kms_info_start(info, "pixel_formats");
-		while (format_list->fourcc_format) {
-			dpu_kms_info_append_format(info,
-					format_list->fourcc_format,
-					format_list->modifier);
-			++format_list;
-		}
-		dpu_kms_info_stop(info);
-	}
-
-	if (pdpu->pipe_hw && pdpu->pipe_hw->ops.get_scaler_ver)
-		dpu_kms_info_add_keyint(info, "scaler_step_ver",
-			pdpu->pipe_hw->ops.get_scaler_ver(pdpu->pipe_hw));
-
-	dpu_kms_info_add_keyint(info, "max_linewidth",
-			pdpu->pipe_sblk->common->maxlinewidth);
-	dpu_kms_info_add_keyint(info, "max_upscale",
-			pdpu->pipe_sblk->maxupscale);
-	dpu_kms_info_add_keyint(info, "max_downscale",
-			pdpu->pipe_sblk->maxdwnscale);
-	dpu_kms_info_add_keyint(info, "max_horizontal_deci",
-			pdpu->pipe_sblk->common->maxhdeciexp);
-	dpu_kms_info_add_keyint(info, "max_vertical_deci",
-			pdpu->pipe_sblk->common->maxvdeciexp);
-	dpu_kms_info_add_keyint(info, "max_per_pipe_bw",
-			pdpu->pipe_sblk->max_per_pipe_bw * 1000LL);
-	msm_property_set_blob(&pdpu->property_info, &pdpu->blob_info,
-			info->data, DPU_KMS_INFO_DATALEN(info),
-			PLANE_PROP_INFO);
-
-	kfree(info);
-
-	if (pdpu->features & BIT(DPU_SSPP_MEMCOLOR)) {
-		snprintf(feature_name, sizeof(feature_name), "%s%d",
-			"DPU_SSPP_SKIN_COLOR_V",
-			pdpu->pipe_sblk->memcolor_blk.version >> 16);
-		msm_property_install_blob(&pdpu->property_info, feature_name, 0,
-			PLANE_PROP_SKIN_COLOR);
-		snprintf(feature_name, sizeof(feature_name), "%s%d",
-			"DPU_SSPP_SKY_COLOR_V",
-			pdpu->pipe_sblk->memcolor_blk.version >> 16);
-		msm_property_install_blob(&pdpu->property_info, feature_name, 0,
-			PLANE_PROP_SKY_COLOR);
-		snprintf(feature_name, sizeof(feature_name), "%s%d",
-			"DPU_SSPP_FOLIAGE_COLOR_V",
-			pdpu->pipe_sblk->memcolor_blk.version >> 16);
-		msm_property_install_blob(&pdpu->property_info, feature_name, 0,
-			PLANE_PROP_FOLIAGE_COLOR);
-	}
-}
-
-static inline void _dpu_plane_set_csc_v1(struct dpu_plane *pdpu, void *usr_ptr)
-{
-	struct dpu_drm_csc_v1 csc_v1;
-	int i;
-
-	if (!pdpu) {
-		DPU_ERROR("invalid plane\n");
-		return;
-	}
-
-	pdpu->csc_usr_ptr = NULL;
-	if (!usr_ptr) {
-		DPU_DEBUG_PLANE(pdpu, "csc data removed\n");
-		return;
-	}
-
-	if (copy_from_user(&csc_v1, usr_ptr, sizeof(csc_v1))) {
-		DPU_ERROR_PLANE(pdpu, "failed to copy csc data\n");
-		return;
-	}
-
-	/* populate from user space */
-	for (i = 0; i < DPU_CSC_MATRIX_COEFF_SIZE; ++i)
-		pdpu->csc_cfg.csc_mv[i] = csc_v1.ctm_coeff[i] >> 16;
-	for (i = 0; i < DPU_CSC_BIAS_SIZE; ++i) {
-		pdpu->csc_cfg.csc_pre_bv[i] = csc_v1.pre_bias[i];
-		pdpu->csc_cfg.csc_post_bv[i] = csc_v1.post_bias[i];
-	}
-	for (i = 0; i < DPU_CSC_CLAMP_SIZE; ++i) {
-		pdpu->csc_cfg.csc_pre_lv[i] = csc_v1.pre_clamp[i];
-		pdpu->csc_cfg.csc_post_lv[i] = csc_v1.post_clamp[i];
-	}
-	pdpu->csc_usr_ptr = &pdpu->csc_cfg;
-}
-
-static inline void _dpu_plane_set_scaler_v1(struct dpu_plane *pdpu,
-		struct dpu_plane_state *pstate, void *usr)
-{
-	struct dpu_drm_scaler_v1 scale_v1;
-	struct dpu_hw_pixel_ext *pe;
-	int i;
-
-	if (!pdpu || !pstate) {
-		DPU_ERROR("invalid argument(s)\n");
-		return;
-	}
-
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_NONE;
-	if (!usr) {
-		DPU_DEBUG_PLANE(pdpu, "scale data removed\n");
-		return;
-	}
-
-	if (copy_from_user(&scale_v1, usr, sizeof(scale_v1))) {
-		DPU_ERROR_PLANE(pdpu, "failed to copy scale data\n");
-		return;
-	}
-
-	/* force property to be dirty, even if the pointer didn't change */
-	msm_property_set_dirty(&pdpu->property_info,
-			&pstate->property_state, PLANE_PROP_SCALER_V1);
-
-	/* populate from user space */
-	pe = &pstate->pixel_ext;
-	memset(pe, 0, sizeof(struct dpu_hw_pixel_ext));
-	for (i = 0; i < DPU_MAX_PLANES; i++) {
-		pe->init_phase_x[i] = scale_v1.init_phase_x[i];
-		pe->phase_step_x[i] = scale_v1.phase_step_x[i];
-		pe->init_phase_y[i] = scale_v1.init_phase_y[i];
-		pe->phase_step_y[i] = scale_v1.phase_step_y[i];
-
-		pe->horz_filter[i] = scale_v1.horz_filter[i];
-		pe->vert_filter[i] = scale_v1.vert_filter[i];
-	}
-	for (i = 0; i < DPU_MAX_PLANES; i++) {
-		pe->left_ftch[i] = scale_v1.pe.left_ftch[i];
-		pe->right_ftch[i] = scale_v1.pe.right_ftch[i];
-		pe->left_rpt[i] = scale_v1.pe.left_rpt[i];
-		pe->right_rpt[i] = scale_v1.pe.right_rpt[i];
-		pe->roi_w[i] = scale_v1.pe.num_ext_pxls_lr[i];
-
-		pe->top_ftch[i] = scale_v1.pe.top_ftch[i];
-		pe->btm_ftch[i] = scale_v1.pe.btm_ftch[i];
-		pe->top_rpt[i] = scale_v1.pe.top_rpt[i];
-		pe->btm_rpt[i] = scale_v1.pe.btm_rpt[i];
-		pe->roi_h[i] = scale_v1.pe.num_ext_pxls_tb[i];
-	}
-
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_SCALER_V1;
-
-	DPU_EVT32_VERBOSE(DRMID(&pdpu->base));
-	DPU_DEBUG_PLANE(pdpu, "user property data copied\n");
-}
-
-static inline void _dpu_plane_set_scaler_v2(struct dpu_plane *pdpu,
-		struct dpu_plane_state *pstate, void *usr)
-{
-	struct dpu_drm_scaler_v2 scale_v2;
-	struct dpu_hw_pixel_ext *pe;
-	int i;
-	struct dpu_hw_scaler3_cfg *cfg;
-
-	if (!pdpu || !pstate) {
-		DPU_ERROR("invalid argument(s)\n");
-		return;
-	}
-
-	cfg = &pstate->scaler3_cfg;
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_NONE;
-	if (!usr) {
-		DPU_DEBUG_PLANE(pdpu, "scale data removed\n");
-		return;
-	}
-
-	if (copy_from_user(&scale_v2, usr, sizeof(scale_v2))) {
-		DPU_ERROR_PLANE(pdpu, "failed to copy scale data\n");
-		return;
-	}
-
-	/* detach/ignore user data if 'disabled' */
-	if (!scale_v2.enable) {
-		DPU_DEBUG_PLANE(pdpu, "scale data removed\n");
-		return;
-	}
-
-	/* force property to be dirty, even if the pointer didn't change */
-	msm_property_set_dirty(&pdpu->property_info,
-			&pstate->property_state, PLANE_PROP_SCALER_V2);
-
-	/* populate from user space */
-	dpu_set_scaler_v2(cfg, &scale_v2);
-
-	pe = &pstate->pixel_ext;
-	memset(pe, 0, sizeof(struct dpu_hw_pixel_ext));
-
-	for (i = 0; i < DPU_MAX_PLANES; i++) {
-		pe->left_ftch[i] = scale_v2.pe.left_ftch[i];
-		pe->right_ftch[i] = scale_v2.pe.right_ftch[i];
-		pe->left_rpt[i] = scale_v2.pe.left_rpt[i];
-		pe->right_rpt[i] = scale_v2.pe.right_rpt[i];
-		pe->roi_w[i] = scale_v2.pe.num_ext_pxls_lr[i];
-
-		pe->top_ftch[i] = scale_v2.pe.top_ftch[i];
-		pe->btm_ftch[i] = scale_v2.pe.btm_ftch[i];
-		pe->top_rpt[i] = scale_v2.pe.top_rpt[i];
-		pe->btm_rpt[i] = scale_v2.pe.btm_rpt[i];
-		pe->roi_h[i] = scale_v2.pe.num_ext_pxls_tb[i];
-	}
-	pstate->scaler_check_state = DPU_PLANE_SCLCHECK_SCALER_V2_CHECK;
-
-	DPU_EVT32_VERBOSE(DRMID(&pdpu->base), cfg->enable, cfg->de.enable,
-			cfg->src_width[0], cfg->src_height[0],
-			cfg->dst_width, cfg->dst_height);
-	DPU_DEBUG_PLANE(pdpu, "user property data copied\n");
-}
-
-static void _dpu_plane_set_excl_rect_v1(struct dpu_plane *pdpu,
-		struct dpu_plane_state *pstate, void *usr_ptr)
-{
-	struct drm_clip_rect excl_rect_v1;
-
-	if (!pdpu) {
-		DPU_ERROR("invalid plane\n");
-		return;
-	}
-
-	if (!usr_ptr) {
-		DPU_DEBUG_PLANE(pdpu, "invalid  excl_rect user data\n");
-		return;
-	}
-
-	if (copy_from_user(&excl_rect_v1, usr_ptr, sizeof(excl_rect_v1))) {
-		DPU_ERROR_PLANE(pdpu, "failed to copy excl_rect data\n");
-		return;
-	}
-
-	/* populate from user space */
-	pstate->excl_rect.x = excl_rect_v1.x1;
-	pstate->excl_rect.y = excl_rect_v1.y1;
-	pstate->excl_rect.w = excl_rect_v1.x2 - excl_rect_v1.x1;
-	pstate->excl_rect.h = excl_rect_v1.y2 - excl_rect_v1.y1;
-
-	DPU_DEBUG_PLANE(pdpu, "excl_rect: {%d,%d,%d,%d}\n",
-			pstate->excl_rect.x, pstate->excl_rect.y,
-			pstate->excl_rect.w, pstate->excl_rect.h);
 }
 
 static int dpu_plane_atomic_set_property(struct drm_plane *plane,
@@ -2622,7 +1527,7 @@ static int dpu_plane_atomic_set_property(struct drm_plane *plane,
 {
 	struct dpu_plane *pdpu = plane ? to_dpu_plane(plane) : NULL;
 	struct dpu_plane_state *pstate;
-	int idx, ret = -EINVAL;
+	int ret = -EINVAL;
 
 	DPU_DEBUG_PLANE(pdpu, "\n");
 
@@ -2634,31 +1539,6 @@ static int dpu_plane_atomic_set_property(struct drm_plane *plane,
 		pstate = to_dpu_plane_state(state);
 		ret = msm_property_atomic_set(&pdpu->property_info,
 				&pstate->property_state, property, val);
-		if (!ret) {
-			idx = msm_property_index(&pdpu->property_info,
-					property);
-			switch (idx) {
-			case PLANE_PROP_CSC_V1:
-				_dpu_plane_set_csc_v1(pdpu,
-						      u64_to_user_ptr(val));
-				break;
-			case PLANE_PROP_SCALER_V1:
-				_dpu_plane_set_scaler_v1(pdpu, pstate,
-							 u64_to_user_ptr(val));
-				break;
-			case PLANE_PROP_SCALER_V2:
-				_dpu_plane_set_scaler_v2(pdpu, pstate,
-							 u64_to_user_ptr(val));
-				break;
-			case PLANE_PROP_EXCL_RECT_V1:
-				_dpu_plane_set_excl_rect_v1(pdpu, pstate,
-						u64_to_user_ptr(val));
-				break;
-			default:
-				/* nothing to do */
-				break;
-			}
-		}
 	}
 
 	DPU_DEBUG_PLANE(pdpu, "%s[%d] <= 0x%llx ret=%d\n",
@@ -2770,7 +1650,6 @@ static void dpu_plane_destroy_state(struct drm_plane *plane,
 	msm_property_duplicate_state(&pdpu->property_info, old_state, pstate,
 			&pstate->property_state, pstate->property_values);
 
-	pstate->dirty = 0x0;
 	pstate->pending = false;
 
 	__drm_atomic_helper_plane_duplicate_state(plane, &pstate->base);
@@ -3168,6 +2047,8 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev,
 	if (ret)
 		goto clean_sspp;
 
+	pdpu->catalog = kms->catalog;
+
 	/* success! finalize initialization */
 	drm_plane_helper_add(plane, &dpu_plane_helper_funcs);
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h
index 25b6b15..a06c8b4 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h
@@ -26,32 +26,6 @@
 #include "dpu_hw_mdss.h"
 #include "dpu_hw_sspp.h"
 
-/* dirty bits for update function */
-#define DPU_PLANE_DIRTY_RECTS	0x1
-#define DPU_PLANE_DIRTY_FORMAT	0x2
-#define DPU_PLANE_DIRTY_SHARPEN	0x4
-#define DPU_PLANE_DIRTY_PERF	0x8
-#define DPU_PLANE_DIRTY_ALL	0xFFFFFFFF
-
-/**
- * enum dpu_plane_sclcheck_state - User scaler data status
- *
- * @DPU_PLANE_SCLCHECK_NONE: No user data provided
- * @DPU_PLANE_SCLCHECK_INVALID: Invalid user data provided
- * @DPU_PLANE_SCLCHECK_SCALER_V1: Valid scaler v1 data
- * @DPU_PLANE_SCLCHECK_SCALER_V1_CHECK: Unchecked scaler v1 data
- * @DPU_PLANE_SCLCHECK_SCALER_V2: Valid scaler v2 data
- * @DPU_PLANE_SCLCHECK_SCALER_V2_CHECK: Unchecked scaler v2 data
- */
-enum dpu_plane_sclcheck_state {
-	DPU_PLANE_SCLCHECK_NONE,
-	DPU_PLANE_SCLCHECK_INVALID,
-	DPU_PLANE_SCLCHECK_SCALER_V1,
-	DPU_PLANE_SCLCHECK_SCALER_V1_CHECK,
-	DPU_PLANE_SCLCHECK_SCALER_V2,
-	DPU_PLANE_SCLCHECK_SCALER_V2_CHECK,
-};
-
 /**
  * struct dpu_plane_state: Define dpu extension of drm plane state object
  * @base:	base drm plane state object
@@ -60,8 +34,6 @@ enum dpu_plane_sclcheck_state {
  * @aspace:	pointer to address space for input/output buffers
  * @input_fence:	dereferenced input fence pointer
  * @stage:	assigned by crtc blender
- * @excl_rect:	exclusion rect values
- * @dirty:	bitmask for which pipe h/w config functions need to be updated
  * @multirect_index: index of the rectangle of SSPP
  * @multirect_mode: parallel or time multiplex multirect mode
  * @pending:	whether the current update is still pending
@@ -77,8 +49,6 @@ struct dpu_plane_state {
 	struct msm_gem_address_space *aspace;
 	void *input_fence;
 	enum dpu_stage stage;
-	struct dpu_rect excl_rect;
-	uint32_t dirty;
 	uint32_t multirect_index;
 	uint32_t multirect_mode;
 	bool pending;
@@ -86,7 +56,6 @@ struct dpu_plane_state {
 	/* scaler configuration */
 	struct dpu_hw_scaler3_cfg scaler3_cfg;
 	struct dpu_hw_pixel_ext pixel_ext;
-	enum dpu_plane_sclcheck_state scaler_check_state;
 
 	struct dpu_hw_pipe_cdp_cfg cdp_cfg;
 };
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c
deleted file mode 100644
index b81e071..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include "dpu_reg_dma.h"
-#include "dpu_hw_reg_dma_v1.h"
-#include "dpu_dbg.h"
-
-static int default_check_support(enum dpu_reg_dma_features feature,
-		     enum dpu_reg_dma_blk blk,
-		     bool *is_supported)
-{
-
-	if (!is_supported)
-		return -EINVAL;
-
-	*is_supported = false;
-	return 0;
-}
-
-static int default_setup_payload(struct dpu_reg_dma_setup_ops_cfg *cfg)
-{
-	DRM_ERROR("not implemented\n");
-	return -EINVAL;
-}
-
-static int default_kick_off(struct dpu_reg_dma_kickoff_cfg *cfg)
-{
-	DRM_ERROR("not implemented\n");
-	return -EINVAL;
-
-}
-
-static int default_reset(struct dpu_hw_ctl *ctl)
-{
-	DRM_ERROR("not implemented\n");
-	return -EINVAL;
-}
-
-struct dpu_reg_dma_buffer *default_alloc_reg_dma_buf(u32 size)
-{
-	DRM_ERROR("not implemented\n");
-	return ERR_PTR(-EINVAL);
-}
-
-int default_dealloc_reg_dma(struct dpu_reg_dma_buffer *lut_buf)
-{
-	DRM_ERROR("not implemented\n");
-	return -EINVAL;
-}
-
-static int default_buf_reset_reg_dma(struct dpu_reg_dma_buffer *lut_buf)
-{
-	DRM_ERROR("not implemented\n");
-	return -EINVAL;
-}
-
-static int default_last_command(struct dpu_hw_ctl *ctl,
-		enum dpu_reg_dma_queue q)
-{
-	return 0;
-}
-
-static struct dpu_hw_reg_dma reg_dma = {
-	.ops = {default_check_support, default_setup_payload,
-		default_kick_off, default_reset, default_alloc_reg_dma_buf,
-		default_dealloc_reg_dma, default_buf_reset_reg_dma,
-		default_last_command},
-};
-
-int dpu_reg_dma_init(void __iomem *addr, struct dpu_mdss_cfg *m,
-		struct drm_device *dev)
-{
-	int rc = 0;
-
-	if (!addr || !m || !dev) {
-		DRM_DEBUG("invalid addr %pK catalog %pK dev %pK\n", addr, m,
-				dev);
-		return 0;
-	}
-
-	reg_dma.drm_dev = dev;
-	reg_dma.caps = &m->dma_cfg;
-	reg_dma.addr = addr;
-
-	if (!m->reg_dma_count)
-		return 0;
-
-	switch (reg_dma.caps->version) {
-	case 1:
-		rc = init_v1(&reg_dma);
-		if (rc)
-			DRM_DEBUG("init v1 dma ops failed\n");
-		else
-			dpu_dbg_reg_register_base("reg_dma", addr,
-					reg_dma.caps->len);
-		break;
-	default:
-		break;
-	}
-
-	return 0;
-}
-
-struct dpu_hw_reg_dma_ops *dpu_reg_dma_get_ops(void)
-{
-	return &reg_dma.ops;
-}
-
-void dpu_reg_dma_deinit(void)
-{
-	struct dpu_hw_reg_dma op = {
-	.ops = {default_check_support, default_setup_payload,
-		default_kick_off, default_reset, default_alloc_reg_dma_buf,
-		default_dealloc_reg_dma, default_buf_reset_reg_dma,
-		default_last_command},
-	};
-
-	if (!reg_dma.drm_dev || !reg_dma.caps)
-		return;
-
-	switch (reg_dma.caps->version) {
-	case 1:
-		deinit_v1();
-		break;
-	default:
-		break;
-	}
-	memset(&reg_dma, 0, sizeof(reg_dma));
-	memcpy(&reg_dma.ops, &op.ops, sizeof(op.ops));
-}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h
deleted file mode 100644
index 1fb92ed..0000000
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef _DPU_REG_DMA_H
-#define _DPU_REG_DMA_H
-
-#include "msm_drv.h"
-#include "dpu_hw_catalog.h"
-#include "dpu_hw_mdss.h"
-#include "dpu_hw_top.h"
-#include "dpu_hw_util.h"
-
-/**
- * enum dpu_reg_dma_op - defines operations supported by reg dma
- * @REG_DMA_READ: Read the histogram into buffer provided
- * @REG_DMA_WRITE: Write the reg dma configuration into MDP block
- * @REG_DMA_OP_MAX: Max operation which indicates that op is invalid
- */
-enum dpu_reg_dma_op {
-	REG_DMA_READ,
-	REG_DMA_WRITE,
-	REG_DMA_OP_MAX
-};
-
-/**
- * enum dpu_reg_dma_read_sel - defines the blocks for histogram read
- * @DSPP0_HIST: select dspp0
- * @DSPP1_HIST: select dspp1
- * @DSPP2_HIST: select dspp2
- * @DSPP3_HIST: select dspp3
- * @DSPP_HIST_MAX: invalid selection
- */
-enum dpu_reg_dma_read_sel {
-	DSPP0_HIST,
-	DSPP1_HIST,
-	DSPP2_HIST,
-	DSPP3_HIST,
-	DSPP_HIST_MAX,
-};
-
-/**
- * enum dpu_reg_dma_features - defines features supported by reg dma
- * @QSEED: qseed feature
- * @GAMUT: gamut feature
- * @IGC: inverse gamma correction
- * @PCC: polynomical color correction
- * @VLUT: PA vlut
- * @MEM_COLOR: memory color
- * @SIX_ZONE: six zone
- * @HSIC: Hue, saturation and contrast
- * @GC: gamma correction
- * @REG_DMA_FEATURES_MAX: invalid selection
- */
-enum dpu_reg_dma_features {
-	QSEED,
-	GAMUT,
-	IGC,
-	PCC,
-	VLUT,
-	MEM_COLOR,
-	SIX_ZONE,
-	HSIC,
-	GC,
-	REG_DMA_FEATURES_MAX,
-};
-
-/**
- * enum dpu_reg_dma_queue - defines reg dma write queue values
- * @DMA_CTL_QUEUE0: select queue0
- * @DMA_CTL_QUEUE1: select queue1
- * @DMA_CTL_QUEUE_MAX: invalid selection
- */
-enum dpu_reg_dma_queue {
-	DMA_CTL_QUEUE0,
-	DMA_CTL_QUEUE1,
-	DMA_CTL_QUEUE_MAX,
-};
-
-/**
- * enum dpu_reg_dma_trigger_mode - defines reg dma ops trigger mode
- * @WRITE_IMMEDIATE: trigger write op immediately
- * @WRITE_TRIGGER: trigger write op when sw trigger is issued
- * @READ_IMMEDIATE: trigger read op immediately
- * @READ_TRIGGER: trigger read op when sw trigger is issued
- * @TIGGER_MAX: invalid trigger selection
- */
-enum dpu_reg_dma_trigger_mode {
-	WRITE_IMMEDIATE,
-	WRITE_TRIGGER,
-	READ_IMMEDIATE,
-	READ_TRIGGER,
-	TIGGER_MAX,
-};
-
-/**
- * enum dpu_reg_dma_setup_ops - defines reg dma write configuration
- * @HW_BLK_SELECT: op for selecting the hardware block
- * @REG_SINGLE_WRITE: op for writing single register value
- *                    at the address provided
- * @REG_BLK_WRITE_SINGLE: op for writing multiple registers using hw index
- *                        register
- * @REG_BLK_WRITE_INC: op for writing multiple registers using auto address
- *                     increment
- * @REG_BLK_WRITE_MULTIPLE: op for writing hw index based registers at
- *                         non-consecutive location
- * @REG_DMA_SETUP_OPS_MAX: invalid operation
- */
-enum dpu_reg_dma_setup_ops {
-	HW_BLK_SELECT,
-	REG_SINGLE_WRITE,
-	REG_BLK_WRITE_SINGLE,
-	REG_BLK_WRITE_INC,
-	REG_BLK_WRITE_MULTIPLE,
-	REG_DMA_SETUP_OPS_MAX,
-};
-
-/**
- * enum dpu_reg_dma_blk - defines blocks for which reg dma op should be
- *                        performed
- * @VIG0: select vig0 block
- * @VIG1: select vig1 block
- * @VIG2: select vig2 block
- * @VIG3: select vig3 block
- * @LM0: select lm0 block
- * @LM1: select lm1 block
- * @LM2: select lm2 block
- * @LM3: select lm3 block
- * @DSPP0: select dspp0 block
- * @DSPP1: select dspp1 block
- * @DSPP2: select dspp2 block
- * @DSPP3: select dspp3 block
- * @DMA0: select dma0 block
- * @DMA1: select dma1 block
- * @DMA2: select dma2 block
- * @DMA3: select dma3 block
- * @SSPP_IGC: select sspp igc block
- * @DSPP_IGC: select dspp igc block
- * @MDSS: select mdss block
- */
-enum dpu_reg_dma_blk {
-	VIG0  = BIT(0),
-	VIG1  = BIT(1),
-	VIG2  = BIT(2),
-	VIG3  = BIT(3),
-	LM0   = BIT(4),
-	LM1   = BIT(5),
-	LM2   = BIT(6),
-	LM3   = BIT(7),
-	DSPP0 = BIT(8),
-	DSPP1 = BIT(9),
-	DSPP2 = BIT(10),
-	DSPP3 = BIT(11),
-	DMA0  = BIT(12),
-	DMA1  = BIT(13),
-	DMA2  = BIT(14),
-	DMA3  = BIT(15),
-	SSPP_IGC = BIT(16),
-	DSPP_IGC = BIT(17),
-	MDSS  = BIT(31)
-};
-
-/**
- * struct dpu_reg_dma_buffer - defines reg dma buffer structure.
- * @drm_gem_object *buf: drm gem handle for the buffer
- * @asapce : pointer to address space
- * @buffer_size: buffer size
- * @index: write pointer index
- * @iova: device address
- * @vaddr: cpu address
- * @next_op_allowed: operation allowed on the buffer
- * @ops_completed: operations completed on buffer
- */
-struct dpu_reg_dma_buffer {
-	struct drm_gem_object *buf;
-	struct msm_gem_address_space *aspace;
-	u32 buffer_size;
-	u32 index;
-	u64 iova;
-	void *vaddr;
-	u32 next_op_allowed;
-	u32 ops_completed;
-};
-
-/**
- * struct dpu_reg_dma_setup_ops_cfg - defines structure for reg dma ops on the
- *                                    reg dma buffer.
- * @dpu_reg_dma_setup_ops ops: ops to be performed
- * @dpu_reg_dma_blk blk: block on which op needs to be performed
- * @dpu_reg_dma_features feature: feature on which op needs to be done
- * @wrap_size: valid for REG_BLK_WRITE_MULTIPLE, indicates reg index location
- *             size
- * @inc: valid for REG_BLK_WRITE_MULTIPLE indicates whether reg index location
- *       needs an increment or decrement.
- *       0 - decrement
- *       1 - increment
- * @blk_offset: offset for blk, valid for HW_BLK_SELECT op only
- * @dpu_reg_dma_buffer *dma_buf: reg dma buffer on which op needs to be
- *                                performed
- * @data: pointer to payload which has to be written into reg dma buffer for
- *        selected op.
- * @data_size: size of payload in data
- */
-struct dpu_reg_dma_setup_ops_cfg {
-	enum dpu_reg_dma_setup_ops ops;
-	enum dpu_reg_dma_blk blk;
-	enum dpu_reg_dma_features feature;
-	u32 wrap_size;
-	u32 inc;
-	u32 blk_offset;
-	struct dpu_reg_dma_buffer *dma_buf;
-	u32 *data;
-	u32 data_size;
-};
-
-/**
- * struct dpu_reg_dma_kickoff_cfg - commit reg dma buffer to hw engine
- * @ctl: ctl for which reg dma buffer needs to be committed.
- * @dma_buf: reg dma buffer with iova address and size info
- * @block_select: histogram read select
- * @trigger_mode: reg dma ops trigger mode
- * @queue_select: queue on which reg dma buffer will be submitted
- * @last_command: last command for this vsync
- */
-struct dpu_reg_dma_kickoff_cfg {
-	struct dpu_hw_ctl *ctl;
-	enum dpu_reg_dma_op op;
-	struct dpu_reg_dma_buffer *dma_buf;
-	enum dpu_reg_dma_read_sel block_select;
-	enum dpu_reg_dma_trigger_mode trigger_mode;
-	enum dpu_reg_dma_queue queue_select;
-	u32 last_command;
-};
-
-/**
- * struct dpu_hw_reg_dma_ops - ops supported by reg dma frame work, based on
- *                             version of reg dma appropriate ops will be
- *                             installed during driver probe.
- * @check_support: checks if reg dma is supported on this platform for a
- *                 feature
- * @setup_payload: setup reg dma buffer based on ops and payload provided by
- *                 client
- * @kick_off: submit the reg dma buffer to hw enginge
- * @reset: reset the reg dma hw enginge for a ctl
- * @alloc_reg_dma_buf: allocate reg dma buffer
- * @dealloc_reg_dma: de-allocate reg dma buffer
- * @reset_reg_dma_buf: reset the buffer to init state
- * @last_command: notify control that last command is queued
- */
-struct dpu_hw_reg_dma_ops {
-	int (*check_support)(enum dpu_reg_dma_features feature,
-			     enum dpu_reg_dma_blk blk,
-			     bool *is_supported);
-	int (*setup_payload)(struct dpu_reg_dma_setup_ops_cfg *cfg);
-	int (*kick_off)(struct dpu_reg_dma_kickoff_cfg *cfg);
-	int (*reset)(struct dpu_hw_ctl *ctl);
-	struct dpu_reg_dma_buffer* (*alloc_reg_dma_buf)(u32 size);
-	int (*dealloc_reg_dma)(struct dpu_reg_dma_buffer *lut_buf);
-	int (*reset_reg_dma_buf)(struct dpu_reg_dma_buffer *buf);
-	int (*last_command)(struct dpu_hw_ctl *ctl, enum dpu_reg_dma_queue q);
-};
-
-/**
- * struct dpu_hw_reg_dma - structure to hold reg dma hw info
- * @drm_dev: drm driver dev handle
- * @caps: reg dma hw caps on the platform
- * @ops: reg dma ops supported on the platform
- * @addr: reg dma hw block base address
- */
-struct dpu_hw_reg_dma {
-	struct drm_device *drm_dev;
-	const struct dpu_reg_dma_cfg *caps;
-	struct dpu_hw_reg_dma_ops ops;
-	void __iomem *addr;
-};
-
-/**
- * dpu_reg_dma_init() - function called to initialize reg dma during dpu
- *                         drm driver probe. If reg dma is supported by dpu
- *                         ops for reg dma version will be installed.
- *                         if reg dma is not supported by dpu default ops will
- *                         be installed. check_support of default ops will
- *                         return false, hence the clients should fall back to
- *                         AHB programming.
- * @addr: reg dma block base address
- * @m: catalog which contains dpu hw capabilities and offsets
- * @dev: drm driver device handle
- */
-int dpu_reg_dma_init(void __iomem *addr, struct dpu_mdss_cfg *m,
-		struct drm_device *dev);
-
-/**
- * dpu_reg_dma_get_ops() - singleton module, ops is returned to the clients
- *                            who call this api.
- */
-struct dpu_hw_reg_dma_ops *dpu_reg_dma_get_ops(void);
-
-/**
- * dpu_reg_dma_deinit() - de-initialize the reg dma
- */
-void dpu_reg_dma_deinit(void);
-#endif /* _DPU_REG_DMA_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
index bddce41..b550d7d 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
@@ -17,7 +17,6 @@
 #include "dpu_hw_lm.h"
 #include "dpu_hw_ctl.h"
 #include "dpu_hw_cdm.h"
-#include "dpu_hw_dspp.h"
 #include "dpu_hw_ds.h"
 #include "dpu_hw_pingpong.h"
 #include "dpu_hw_intf.h"
@@ -28,7 +27,6 @@
 
 #define RM_RQ_LOCK(r) ((r)->top_ctrl & BIT(DPU_RM_TOPCTL_RESERVE_LOCK))
 #define RM_RQ_CLEAR(r) ((r)->top_ctrl & BIT(DPU_RM_TOPCTL_RESERVE_CLEAR))
-#define RM_RQ_DSPP(r) ((r)->top_ctrl & BIT(DPU_RM_TOPCTL_DSPP))
 #define RM_RQ_DS(r) ((r)->top_ctrl & BIT(DPU_RM_TOPCTL_DS))
 #define RM_IS_TOPOLOGY_MATCH(t, r) ((t).num_lm == (r).num_lm && \
 				(t).num_comp_enc == (r).num_enc && \
@@ -236,9 +234,6 @@ static void _dpu_rm_hw_destroy(enum dpu_hw_blk_type type, void *hw)
 	case DPU_HW_BLK_LM:
 		dpu_hw_lm_destroy(hw);
 		break;
-	case DPU_HW_BLK_DSPP:
-		dpu_hw_dspp_destroy(hw);
-		break;
 	case DPU_HW_BLK_DS:
 		dpu_hw_ds_destroy(hw);
 		break;
@@ -318,9 +313,6 @@ static int _dpu_rm_hw_blk_create(
 	case DPU_HW_BLK_LM:
 		hw = dpu_hw_lm_init(id, mmio, cat);
 		break;
-	case DPU_HW_BLK_DSPP:
-		hw = dpu_hw_dspp_init(id, mmio, cat);
-		break;
 	case DPU_HW_BLK_DS:
 		hw = dpu_hw_ds_init(id, mmio, cat);
 		break;
@@ -428,15 +420,6 @@ int dpu_rm_init(struct dpu_rm *rm,
 		}
 	}
 
-	for (i = 0; i < cat->dspp_count; i++) {
-		rc = _dpu_rm_hw_blk_create(rm, cat, mmio, DPU_HW_BLK_DSPP,
-				cat->dspp[i].id, &cat->dspp[i]);
-		if (rc) {
-			DPU_ERROR("failed: dspp hw not available\n");
-			goto fail;
-		}
-	}
-
 	if (cat->mdp[0].has_dest_scaler) {
 		for (i = 0; i < cat->ds_count; i++) {
 			rc = _dpu_rm_hw_blk_create(rm, cat, mmio, DPU_HW_BLK_DS,
@@ -500,16 +483,14 @@ int dpu_rm_init(struct dpu_rm *rm,
 /**
  * _dpu_rm_check_lm_and_get_connected_blks - check if proposed layer mixer meets
  *	proposed use case requirements, incl. hardwired dependent blocks like
- *	pingpong, and dspp.
+ *	pingpong
  * @rm: dpu resource manager handle
  * @rsvp: reservation currently being created
  * @reqs: proposed use case requirements
  * @lm: proposed layer mixer, function checks if lm, and all other hardwired
- *      blocks connected to the lm (pp, dspp) are available and appropriate
- * @dspp: output parameter, dspp block attached to the layer mixer.
- *        NULL if dspp was not available, or not matching requirements.
+ *      blocks connected to the lm (pp) is available and appropriate
  * @pp: output parameter, pingpong block attached to the layer mixer.
- *      NULL if dspp was not available, or not matching requirements.
+ *      NULL if pp was not available, or not matching requirements.
  * @primary_lm: if non-null, this function check if lm is compatible primary_lm
  *              as well as satisfying all other requirements
  * @Return: true if lm matches all requirements, false otherwise
@@ -519,21 +500,19 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(
 		struct dpu_rm_rsvp *rsvp,
 		struct dpu_rm_requirements *reqs,
 		struct dpu_rm_hw_blk *lm,
-		struct dpu_rm_hw_blk **dspp,
 		struct dpu_rm_hw_blk **ds,
 		struct dpu_rm_hw_blk **pp,
 		struct dpu_rm_hw_blk *primary_lm)
 {
 	const struct dpu_lm_cfg *lm_cfg = to_dpu_hw_mixer(lm->hw)->cap;
 	struct dpu_rm_hw_iter iter;
-	bool is_valid_dspp, is_valid_ds, ret;
+	bool is_valid_ds;
 
-	*dspp = NULL;
 	*ds = NULL;
 	*pp = NULL;
 
-	DPU_DEBUG("check lm %d: dspp %d ds %d pp %d\n",
-			   lm_cfg->id, lm_cfg->dspp,
+	DPU_DEBUG("check lm %d ds %d pp %d\n",
+			   lm_cfg->id,
 			   lm_cfg->ds, lm_cfg->pingpong);
 
 	/* Check if this layer mixer is a peer of the proposed primary LM */
@@ -548,28 +527,13 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(
 		}
 	}
 
-	is_valid_dspp = (lm_cfg->dspp != DSPP_MAX) ? true : false;
 	is_valid_ds = (lm_cfg->ds != DS_MAX) ? true : false;
 
-	/**
-	 * RM_RQ_X: specification of which LMs to choose
-	 * is_valid_X: indicates whether LM is tied with block X
-	 * ret: true if given LM matches the user requirement, false otherwise
-	 */
-	if (RM_RQ_DSPP(reqs) && RM_RQ_DS(reqs))
-		ret = (is_valid_dspp && is_valid_ds);
-	else if (RM_RQ_DSPP(reqs))
-		ret = is_valid_dspp;
-	else if (RM_RQ_DS(reqs))
-		ret = is_valid_ds;
-	else
-		ret = !(is_valid_dspp || is_valid_ds);
+	if (RM_RQ_DS(reqs) && !is_valid_ds) {
+		DPU_DEBUG("fail:lm(%d)req_ds(%d)ds(%d)\n",
+			lm_cfg->id, (bool)(RM_RQ_DS(reqs)), lm_cfg->ds);
 
-	if (!ret) {
-		DPU_DEBUG("fail:lm(%d)req_dspp(%d)dspp(%d)req_ds(%d)ds(%d)\n",
-			lm_cfg->id, (bool)(RM_RQ_DSPP(reqs)), lm_cfg->dspp,
-			(bool)(RM_RQ_DS(reqs)), lm_cfg->ds);
-		return ret;
+		return false;
 	}
 
 	/* Already reserved? */
@@ -578,28 +542,6 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(
 		return false;
 	}
 
-	if (lm_cfg->dspp != DSPP_MAX) {
-		dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_DSPP);
-		while (_dpu_rm_get_hw_locked(rm, &iter)) {
-			if (iter.blk->id == lm_cfg->dspp) {
-				*dspp = iter.blk;
-				break;
-			}
-		}
-
-		if (!*dspp) {
-			DPU_DEBUG("lm %d failed to retrieve dspp %d\n", lm->id,
-					lm_cfg->dspp);
-			return false;
-		}
-
-		if (RESERVED_BY_OTHER(*dspp, rsvp)) {
-			DPU_DEBUG("lm %d dspp %d already reserved\n",
-					lm->id, (*dspp)->id);
-			return false;
-		}
-	}
-
 	if (lm_cfg->ds != DS_MAX) {
 		dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_DS);
 		while (_dpu_rm_get_hw_locked(rm, &iter)) {
@@ -638,7 +580,6 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(
 	if (RESERVED_BY_OTHER(*pp, rsvp)) {
 		DPU_DEBUG("lm %d pp %d already reserved\n", lm->id,
 				(*pp)->id);
-		*dspp = NULL;
 		*ds = NULL;
 		return false;
 	}
@@ -653,7 +594,6 @@ static int _dpu_rm_reserve_lms(
 
 {
 	struct dpu_rm_hw_blk *lm[MAX_BLOCKS];
-	struct dpu_rm_hw_blk *dspp[MAX_BLOCKS];
 	struct dpu_rm_hw_blk *ds[MAX_BLOCKS];
 	struct dpu_rm_hw_blk *pp[MAX_BLOCKS];
 	struct dpu_rm_hw_iter iter_i, iter_j;
@@ -670,7 +610,6 @@ static int _dpu_rm_reserve_lms(
 	while (lm_count != reqs->topology->num_lm &&
 			_dpu_rm_get_hw_locked(rm, &iter_i)) {
 		memset(&lm, 0, sizeof(lm));
-		memset(&dspp, 0, sizeof(dspp));
 		memset(&ds, 0, sizeof(ds));
 		memset(&pp, 0, sizeof(pp));
 
@@ -678,8 +617,7 @@ static int _dpu_rm_reserve_lms(
 		lm[lm_count] = iter_i.blk;
 
 		if (!_dpu_rm_check_lm_and_get_connected_blks(
-				rm, rsvp, reqs, lm[lm_count],
-				&dspp[lm_count], &ds[lm_count],
+				rm, rsvp, reqs, lm[lm_count], &ds[lm_count],
 				&pp[lm_count], NULL))
 			continue;
 
@@ -695,8 +633,8 @@ static int _dpu_rm_reserve_lms(
 
 			if (!_dpu_rm_check_lm_and_get_connected_blks(
 					rm, rsvp, reqs, iter_j.blk,
-					&dspp[lm_count], &ds[lm_count],
-					&pp[lm_count], iter_i.blk))
+					&ds[lm_count], &pp[lm_count],
+					iter_i.blk))
 				continue;
 
 			lm[lm_count] = iter_j.blk;
@@ -715,14 +653,11 @@ static int _dpu_rm_reserve_lms(
 
 		lm[i]->rsvp_nxt = rsvp;
 		pp[i]->rsvp_nxt = rsvp;
-		if (dspp[i])
-			dspp[i]->rsvp_nxt = rsvp;
 
 		if (ds[i])
 			ds[i]->rsvp_nxt = rsvp;
 
 		DPU_EVT32(lm[i]->type, rsvp->enc_id, lm[i]->id, pp[i]->id,
-				dspp[i] ? dspp[i]->id : 0,
 				ds[i] ? ds[i]->id : 0);
 	}
 
@@ -889,18 +824,7 @@ static int _dpu_rm_make_next_rsvp(
 	rsvp->topology = reqs->topology->top_name;
 	list_add_tail(&rsvp->list, &rm->rsvps);
 
-	/*
-	 * Assign LMs and blocks whose usage is tied to them: DSPP & Pingpong.
-	 * Do assignment preferring to give away low-resource mixers first:
-	 * - Check mixers without DSPPs
-	 * - Only then allow to grab from mixers with DSPP capability
-	 */
 	ret = _dpu_rm_reserve_lms(rm, rsvp, reqs);
-	if (ret && !RM_RQ_DSPP(reqs)) {
-		reqs->top_ctrl |= BIT(DPU_RM_TOPCTL_DSPP);
-		ret = _dpu_rm_reserve_lms(rm, rsvp, reqs);
-	}
-
 	if (ret) {
 		DPU_ERROR("unable to find appropriate mixers\n");
 		return ret;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h
index 4c77874..ef3f67b 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h
@@ -45,13 +45,11 @@ enum dpu_rm_topology_name {
  *                               release any reservation held by this display.
  *                               Normal behavior would not impact the
  *                               reservation list during the AtomicTest phase.
- * @DPU_RM_TOPCTL_DSPP: Require layer mixers with DSPP capabilities
  * @DPU_RM_TOPCTL_DS  : Require layer mixers with DS capabilities
  */
 enum dpu_rm_topology_control {
 	DPU_RM_TOPCTL_RESERVE_LOCK,
 	DPU_RM_TOPCTL_RESERVE_CLEAR,
-	DPU_RM_TOPCTL_DSPP,
 	DPU_RM_TOPCTL_DS,
 };
 
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index b73112a..5770ac0 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -74,39 +74,11 @@ struct msm_file_private {
 };
 
 enum msm_mdp_plane_property {
-	/* blob properties, always put these first */
-	PLANE_PROP_SCALER_V1,
-	PLANE_PROP_SCALER_V2,
-	PLANE_PROP_CSC_V1,
-	PLANE_PROP_INFO,
-	PLANE_PROP_SCALER_LUT_ED,
-	PLANE_PROP_SCALER_LUT_CIR,
-	PLANE_PROP_SCALER_LUT_SEP,
-	PLANE_PROP_SKIN_COLOR,
-	PLANE_PROP_SKY_COLOR,
-	PLANE_PROP_FOLIAGE_COLOR,
-	PLANE_PROP_ROT_CAPS_V1,
-
 	/* # of blob properties */
 	PLANE_PROP_BLOBCOUNT,
 
 	/* range properties */
 	PLANE_PROP_ZPOS = PLANE_PROP_BLOBCOUNT,
-	PLANE_PROP_ALPHA,
-	PLANE_PROP_COLOR_FILL,
-	PLANE_PROP_H_DECIMATE,
-	PLANE_PROP_V_DECIMATE,
-	PLANE_PROP_HUE_ADJUST,
-	PLANE_PROP_SATURATION_ADJUST,
-	PLANE_PROP_VALUE_ADJUST,
-	PLANE_PROP_CONTRAST_ADJUST,
-	PLANE_PROP_EXCL_RECT_V1,
-	PLANE_PROP_PREFILL_SIZE,
-	PLANE_PROP_PREFILL_TIME,
-
-	/* enum/bitmask properties */
-	PLANE_PROP_BLEND_OP,
-	PLANE_PROP_SRC_CONFIG,
 
 	/* total # of properties */
 	PLANE_PROP_COUNT
diff --git a/include/uapi/drm/dpu_drm.h b/include/uapi/drm/dpu_drm.h
index da73279..93af1fb 100644
--- a/include/uapi/drm/dpu_drm.h
+++ b/include/uapi/drm/dpu_drm.h
@@ -66,193 +66,6 @@
 /* DRM bitmasks are restricted to 0..63 */
 #define DPU_DRM_BITMASK_COUNT       64
 
-/**
- * struct dpu_drm_pix_ext_v1 - version 1 of pixel ext structure
- * @num_ext_pxls_lr: Number of total horizontal pixels
- * @num_ext_pxls_tb: Number of total vertical lines
- * @left_ftch:       Number of extra pixels to overfetch from left
- * @right_ftch:      Number of extra pixels to overfetch from right
- * @top_ftch:        Number of extra lines to overfetch from top
- * @btm_ftch:        Number of extra lines to overfetch from bottom
- * @left_rpt:        Number of extra pixels to repeat from left
- * @right_rpt:       Number of extra pixels to repeat from right
- * @top_rpt:         Number of extra lines to repeat from top
- * @btm_rpt:         Number of extra lines to repeat from bottom
- */
-struct dpu_drm_pix_ext_v1 {
-	/*
-	 * Number of pixels ext in left, right, top and bottom direction
-	 * for all color components.
-	 */
-	int32_t num_ext_pxls_lr[DPU_MAX_PLANES];
-	int32_t num_ext_pxls_tb[DPU_MAX_PLANES];
-
-	/*
-	 * Number of pixels needs to be overfetched in left, right, top
-	 * and bottom directions from source image for scaling.
-	 */
-	int32_t left_ftch[DPU_MAX_PLANES];
-	int32_t right_ftch[DPU_MAX_PLANES];
-	int32_t top_ftch[DPU_MAX_PLANES];
-	int32_t btm_ftch[DPU_MAX_PLANES];
-	/*
-	 * Number of pixels needs to be repeated in left, right, top and
-	 * bottom directions for scaling.
-	 */
-	int32_t left_rpt[DPU_MAX_PLANES];
-	int32_t right_rpt[DPU_MAX_PLANES];
-	int32_t top_rpt[DPU_MAX_PLANES];
-	int32_t btm_rpt[DPU_MAX_PLANES];
-
-};
-
-/**
- * struct dpu_drm_scaler_v1 - version 1 of struct dpu_drm_scaler
- * @lr:            Pixel extension settings for left/right
- * @tb:            Pixel extension settings for top/botton
- * @init_phase_x:  Initial scaler phase values for x
- * @phase_step_x:  Phase step values for x
- * @init_phase_y:  Initial scaler phase values for y
- * @phase_step_y:  Phase step values for y
- * @horz_filter:   Horizontal filter array
- * @vert_filter:   Vertical filter array
- */
-struct dpu_drm_scaler_v1 {
-	/*
-	 * Pix ext settings
-	 */
-	struct dpu_drm_pix_ext_v1 pe;
-	/*
-	 * Phase settings
-	 */
-	int32_t init_phase_x[DPU_MAX_PLANES];
-	int32_t phase_step_x[DPU_MAX_PLANES];
-	int32_t init_phase_y[DPU_MAX_PLANES];
-	int32_t phase_step_y[DPU_MAX_PLANES];
-
-	/*
-	 * Filter type to be used for scaling in horizontal and vertical
-	 * directions
-	 */
-	uint32_t horz_filter[DPU_MAX_PLANES];
-	uint32_t vert_filter[DPU_MAX_PLANES];
-};
-
-/**
- * struct dpu_drm_de_v1 - version 1 of detail enhancer structure
- * @enable:         Enables/disables detail enhancer
- * @sharpen_level1: Sharpening strength for noise
- * @sharpen_level2: Sharpening strength for context
- * @clip:           Clip coefficient
- * @limit:          Detail enhancer limit factor
- * @thr_quiet:      Quite zone threshold
- * @thr_dieout:     Die-out zone threshold
- * @thr_low:        Linear zone left threshold
- * @thr_high:       Linear zone right threshold
- * @prec_shift:     Detail enhancer precision
- * @adjust_a:       Mapping curves A coefficients
- * @adjust_b:       Mapping curves B coefficients
- * @adjust_c:       Mapping curves C coefficients
- */
-struct dpu_drm_de_v1 {
-	uint32_t enable;
-	int16_t sharpen_level1;
-	int16_t sharpen_level2;
-	uint16_t clip;
-	uint16_t limit;
-	uint16_t thr_quiet;
-	uint16_t thr_dieout;
-	uint16_t thr_low;
-	uint16_t thr_high;
-	uint16_t prec_shift;
-	int16_t adjust_a[DPU_MAX_DE_CURVES];
-	int16_t adjust_b[DPU_MAX_DE_CURVES];
-	int16_t adjust_c[DPU_MAX_DE_CURVES];
-};
-
-/**
- * struct dpu_drm_scaler_v2 - version 2 of struct dpu_drm_scaler
- * @enable:            Scaler enable
- * @dir_en:            Detail enhancer enable
- * @pe:                Pixel extension settings
- * @horz_decimate:     Horizontal decimation factor
- * @vert_decimate:     Vertical decimation factor
- * @init_phase_x:      Initial scaler phase values for x
- * @phase_step_x:      Phase step values for x
- * @init_phase_y:      Initial scaler phase values for y
- * @phase_step_y:      Phase step values for y
- * @preload_x:         Horizontal preload value
- * @preload_y:         Vertical preload value
- * @src_width:         Source width
- * @src_height:        Source height
- * @dst_width:         Destination width
- * @dst_height:        Destination height
- * @y_rgb_filter_cfg:  Y/RGB plane filter configuration
- * @uv_filter_cfg:     UV plane filter configuration
- * @alpha_filter_cfg:  Alpha filter configuration
- * @blend_cfg:         Selection of blend coefficients
- * @lut_flag:          LUT configuration flags
- * @dir_lut_idx:       2d 4x4 LUT index
- * @y_rgb_cir_lut_idx: Y/RGB circular LUT index
- * @uv_cir_lut_idx:    UV circular LUT index
- * @y_rgb_sep_lut_idx: Y/RGB separable LUT index
- * @uv_sep_lut_idx:    UV separable LUT index
- * @de:                Detail enhancer settings
- */
-struct dpu_drm_scaler_v2 {
-	/*
-	 * General definitions
-	 */
-	uint32_t enable;
-	uint32_t dir_en;
-
-	/*
-	 * Pix ext settings
-	 */
-	struct dpu_drm_pix_ext_v1 pe;
-
-	/*
-	 * Decimation settings
-	 */
-	uint32_t horz_decimate;
-	uint32_t vert_decimate;
-
-	/*
-	 * Phase settings
-	 */
-	int32_t init_phase_x[DPU_MAX_PLANES];
-	int32_t phase_step_x[DPU_MAX_PLANES];
-	int32_t init_phase_y[DPU_MAX_PLANES];
-	int32_t phase_step_y[DPU_MAX_PLANES];
-
-	uint32_t preload_x[DPU_MAX_PLANES];
-	uint32_t preload_y[DPU_MAX_PLANES];
-	uint32_t src_width[DPU_MAX_PLANES];
-	uint32_t src_height[DPU_MAX_PLANES];
-
-	uint32_t dst_width;
-	uint32_t dst_height;
-
-	uint32_t y_rgb_filter_cfg;
-	uint32_t uv_filter_cfg;
-	uint32_t alpha_filter_cfg;
-	uint32_t blend_cfg;
-
-	uint32_t lut_flag;
-	uint32_t dir_lut_idx;
-
-	/* for Y(RGB) and UV planes*/
-	uint32_t y_rgb_cir_lut_idx;
-	uint32_t uv_cir_lut_idx;
-	uint32_t y_rgb_sep_lut_idx;
-	uint32_t uv_sep_lut_idx;
-
-	/*
-	 * Detail enhancer settings
-	 */
-	struct dpu_drm_de_v1 de;
-};
-
 /* Number of dest scalers supported */
 #define DPU_MAX_DS_COUNT 2
 
diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h
index 404f201..60b1a30 100644
--- a/include/uapi/drm/msm_drm.h
+++ b/include/uapi/drm/msm_drm.h
@@ -26,7 +26,6 @@
 #define __MSM_DRM_H__
 
 #include "drm.h"
-#include "dpu_drm.h"
 
 #if defined(__cplusplus)
 extern "C" {
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

  parent reply	other threads:[~2018-06-11 21:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11 21:13 [DPU PATCH v3 0/7] clean up DPU custom properties Jeykumar Sankaran
2018-06-11 21:13 ` [DPU PATCH v3 4/7] drm/msm/dpu: switch to drm zpos property Jeykumar Sankaran
     [not found] ` <1528751604-32541-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-06-11 21:13   ` [DPU PATCH v3 1/7] drm/msm: remove connector custom properties Jeykumar Sankaran
2018-06-11 21:13   ` Jeykumar Sankaran [this message]
2018-06-11 21:13   ` [DPU PATCH v3 3/7] drm/msm: enable zpos normalization Jeykumar Sankaran
2018-06-11 21:13   ` [DPU PATCH v3 5/7] Remove dpu crtc custom properties and its handlers Jeykumar Sankaran
2018-06-11 21:13   ` [DPU PATCH v3 6/7] drm/msm: remove msm_prop files Jeykumar Sankaran
2018-06-14 15:23   ` [DPU PATCH v3 0/7] clean up DPU custom properties Sean Paul
2018-06-11 21:13 ` [DPU PATCH v3 7/7] drm/msm: remove dpu specific uapi header Jeykumar Sankaran

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1528751604-32541-3-git-send-email-jsanka@codeaurora.org \
    --to=jsanka-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    --cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.