drm/msm/sde: add DSC encoder support for display topologies

Add display stream compression support for sde drm driver. Read
DSC compression details of the panel from the display driver and
configure SDE as per the topology selected for the display panel.
Patch adds support for 3 different DSC compression modes:
(1) Single DSC encoder mode
(2) Dual DSC encoder merge mode
(3) Dual DSC encoder mode

Change-Id: Ibbb8fe37d0e01cc84c740d55e1d9c5c58da9d2d7
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/sde/sde_hw_pingpong.h b/drivers/gpu/drm/msm/sde/sde_hw_pingpong.h
index fc3bea5..90f6171 100644
--- a/drivers/gpu/drm/msm/sde/sde_hw_pingpong.h
+++ b/drivers/gpu/drm/msm/sde/sde_hw_pingpong.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2017, 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
@@ -49,11 +49,13 @@
  *
  * struct sde_hw_pingpong_ops : Interface to the pingpong Hw driver functions
  *  Assumption is these functions will be called after clocks are enabled
- *  @setup_tearcheck :
- *  @enable_tearcheck :
- *  @get_vsync_info :
- *  @setup_autorefresh :
- *  #setup_dsc :
+ *  @setup_tearcheck : program tear check values
+ *  @enable_tearcheck : enables tear check
+ *  @get_vsync_info : retries timing info of the panel
+ *  @setup_autorefresh : program auto refresh
+ *  @setup_dsc : program DSC block with encoding details
+ *  @enable_dsc : enables DSC encoder
+ *  @disable_dsc : disables DSC encoder
  */
 struct sde_hw_pingpong_ops {
 	/**
@@ -85,8 +87,17 @@
 	/**
 	 * Program the dsc compression block
 	 */
-	int (*setup_dsc)(struct sde_hw_pingpong *pp,
-			struct sde_hw_dsc_cfg *cfg);
+	int (*setup_dsc)(struct sde_hw_pingpong *pp);
+
+	/**
+	 * Enables DSC encoder
+	 */
+	void (*enable_dsc)(struct sde_hw_pingpong *pp);
+
+	/**
+	 * Disables DSC encoder
+	 */
+	void (*disable_dsc)(struct sde_hw_pingpong *pp);
 };
 
 struct sde_hw_pingpong {