diff --git a/services/config/config_defs.h b/services/config/config_defs.h
index 5572d63..fe316da 100644
--- a/services/config/config_defs.h
+++ b/services/config/config_defs.h
@@ -27,6 +27,42 @@
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+/*
+ *  Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ *  Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted (subject to the limitations in the
+ *  disclaimer below) provided that the following conditions are met:
+ *
+ *      * Redistributions of source code must retain the above copyright
+ *        notice, this list of conditions and the following disclaimer.
+ *
+ *      * Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials provided
+ *        with the distribution.
+ *
+ *      * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ *        contributors may be used to endorse or promote products derived
+ *        from this software without specific prior written permission.
+ *
+ *  NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ *  GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ *  HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ *   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ *  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ *  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ *  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ *  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ *  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
 #ifndef __CONFIG_DEFS_H__
 #define __CONFIG_DEFS_H__
 
@@ -111,6 +147,16 @@
   kOn,
 };
 
+enum class RGBOrder : int {
+  kFSCUnknown = 0,
+  kFSCRGB = 1,
+  kFSCRBG = 2,
+  kFSCBGR = 3,
+  kFSCBRG = 4,
+  kFSCGBR = 5,
+  kFSCGRB = 6,
+};
+
 // Input and Output Params structures
 struct Attributes {
   uint32_t vsync_period = 0;
@@ -280,6 +326,41 @@
   uint32_t fps = 0;
 };
 
+struct EnableCACParams {
+  uint32_t disp_id = 0;
+  bool enable = 0;
+  float red = 0;
+  float green = 0;
+  float blue = 0;
+};
+
+struct CacChannelRect {
+  float left = 0;
+  float top = 0;
+  float right = 0;
+  float bottom = 0;
+};
+
+struct CacEyeConfig {
+  CacChannelRect red_channel_src = {};
+  CacChannelRect red_channel_dst = {};
+  CacChannelRect green_channel_src = {};
+  CacChannelRect green_channel_dst = {};
+  CacChannelRect blue_channel_src = {};
+  CacChannelRect blue_channel_dst = {};
+};
+
+struct CacEyeConfigParams {
+  uint32_t disp_id = 0;
+  CacEyeConfig left = {};
+  CacEyeConfig right = {};
+};
+
+struct SkewVsyncParams {
+  uint32_t disp_id = 0;
+  uint32_t skew_vsync_val = 0;
+};
+
 /* Callback Interface */
 class ConfigCallback {
  public:
@@ -380,6 +461,13 @@
                                      WiderModePref /* mode_pref */) DEFAULT_RET
   virtual int ControlCameraSmoothCallback(bool /* enable */) DEFAULT_RET
   virtual int DummyDisplayConfigAPI() DEFAULT_RET
+  virtual int GetFSCRGBOrder(DisplayType /* dpy */,
+                             RGBOrder* /* fsc_rgb_color_order */) DEFAULT_RET
+  virtual int EnableCAC(uint32_t /* disp_id */, bool /* enable */, float /* red */,
+                        float /* green */, float /* blue */) DEFAULT_RET
+  virtual int SetCacEyeConfig(uint32_t /* disp_id */, const CacEyeConfig & /* left */,
+                              const CacEyeConfig & /* right */) DEFAULT_RET
+  virtual int SetSkewVsync(uint32_t /* disp_id */, uint32_t /* skew_vsync_val */) DEFAULT_RET
 
   // deprecated APIs
   virtual int GetDebugProperty(const std::string /* prop_name */,
