diff --git a/.gitupstream b/.gitupstream
new file mode 100644
index 0000000..4c7783e
--- /dev/null
+++ b/.gitupstream
@@ -0,0 +1 @@
+https://git.codelinaro.org/clo/la/platform/hardware/qcom/display
diff --git a/Android.mk b/Android.mk
index 351d3ef..b856dc3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,2 +1,6 @@
+ifeq ($(call my-dir),$(call project-path-for,qcom-display))
+
 LOCAL_PATH := $(call my-dir)
 include $(LOCAL_PATH)/qmcs.mk
+
+endif
diff --git a/composer/Android.bp b/composer/Android.bp
index 4dfa42d..fd0e02f 100644
--- a/composer/Android.bp
+++ b/composer/Android.bp
@@ -12,16 +12,14 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
 
     cflags: [
+        "-Wno-format",
         "-Wno-missing-field-initializers",
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
-    clang: true,
 
     shared_libs: [
         "libbinder",
diff --git a/composer/hwc_layers.cpp b/composer/hwc_layers.cpp
index 497b219..32be96f 100644
--- a/composer/hwc_layers.cpp
+++ b/composer/hwc_layers.cpp
@@ -463,7 +463,7 @@
   }
   buffer_flipped_ = reinterpret_cast<uint64_t>(handle) != layer_buffer->buffer_id;
   layer_buffer->buffer_id = reinterpret_cast<uint64_t>(handle);
-  int64_t hd_id, hd_usage;
+  [[maybe_unused]] int64_t hd_id, hd_usage;
   err = gralloc::GetMetaDataValue(hnd, (int64_t)StandardMetadataType::BUFFER_ID,
                                   &layer_buffer->handle_id);
   if (err != gralloc::Error::NONE) {
diff --git a/composer/hwc_session.cpp b/composer/hwc_session.cpp
index b33216c..5d99958 100644
--- a/composer/hwc_session.cpp
+++ b/composer/hwc_session.cpp
@@ -3484,7 +3484,7 @@
     }
   }
   if (is_active_virtual_display) {
-    auto error = DestroyVirtualDisplay(client_id);
+    [[maybe_unused]] auto error = DestroyVirtualDisplay(client_id);
   }
 
   // If it is called during primary prepare/commit, we need to pause any ongoing commit on
@@ -4026,7 +4026,7 @@
             cached_retire_fence_) {
           Fence::Wait(cached_retire_fence_);
         }
-        cached_retire_fence_ == nullptr;
+        cached_retire_fence_ = nullptr;
       }
       {
         SCOPE_LOCK(locker_[display_id]);
diff --git a/composer/vendor.qti.hardware.display.composer-service.rc b/composer/vendor.qti.hardware.display.composer-service.rc
index 96e080d..55b0112 100644
--- a/composer/vendor.qti.hardware.display.composer-service.rc
+++ b/composer/vendor.qti.hardware.display.composer-service.rc
@@ -5,4 +5,4 @@
     capabilities SYS_NICE
     onrestart restart surfaceflinger
     socket pps stream 0660 system system
-    writepid /dev/cpuset/system-background/tasks
+    task_profiles ServiceCapacityLow
diff --git a/config/display-product.mk b/config/display-product.mk
index 9c59bbc..74f0db8 100644
--- a/config/display-product.mk
+++ b/config/display-product.mk
@@ -1,53 +1,55 @@
 # Display product definitions
-include hardware/qcom/display/config/display-modules.mk
+DISPLAY_HAL_DIR := hardware/qcom-caf/sm8550/display
+
+include $(DISPLAY_HAL_DIR)/config/display-modules.mk
 PRODUCT_PACKAGES += $(DISPLAY_MODULES_HARDWARE)
 
 ifneq ($(TARGET_HAS_LOW_RAM),true)
 #Multi-stc libraries config xml file
-PRODUCT_COPY_FILES += hardware/qcom/display/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml
 
 #Clstc library config xml file
-PRODUCT_COPY_FILES += hardware/qcom/display/config/clstc_config_library.xml:$(TARGET_COPY_OUT_VENDOR)/etc/clstc_config_library.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/clstc_config_library.xml:$(TARGET_COPY_OUT_VENDOR)/etc/clstc_config_library.xml
 endif
 
 #QDCM calibration json file for r66451 panel
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_without_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_without_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_without_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_panel_without_DSC.json
 
 #QDCM calibration json file for Sharp panel
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_qhd_cmd_mode_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_qhd_cmd_mode_dsi_panel.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_Sharp_qhd_cmd_mode_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_Sharp_qhd_cmd_mode_dsi_panel.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.json
 
 #QDCM calibration JSON file for nt36672e LCD video mode single dsi with DSC panel.
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_without_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_without_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_without_DSC.json
 
 #Backlight calibration xml file for r66451 amoled panels
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_r66451_amoled_video_mode_dsi_visionox_panel_with_DSC.xml
 
 #QDCM calibration json file for vtdr6130 panel
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.json
-PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.json
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/qdcm_calib_data_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.json:$(TARGET_COPY_OUT_VENDOR)/etc/display/qdcm_calib_data_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.json
 
 #Backlight calibration xml file for vtdr6130 amoled panels
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.xml
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.xml
-PRODUCT_COPY_FILES += hardware/qcom/display/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_video_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_qsync_cmd_mode_dsi_visionox_panel_with_DSC.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/backlight_calib_vtdr6130_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display/backlight_calib_vtdr6130_amoled_qsync_video_mode_dsi_visionox_panel_with_DSC.xml
 
 #Smomo config xml file
-PRODUCT_COPY_FILES += hardware/qcom/display/config/smomo_setting.xml:$(TARGET_COPY_OUT_VENDOR)/etc/smomo_setting.xml
+PRODUCT_COPY_FILES += $(DISPLAY_HAL_DIR)/config/smomo_setting.xml:$(TARGET_COPY_OUT_VENDOR)/etc/smomo_setting.xml
 
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     persist.demo.hdmirotationlock=false \
     persist.sys.sf.color_saturation=1.0 \
     persist.sys.sf.color_mode=9 \
@@ -91,25 +93,25 @@
 
 # Enable offline rotator for Bengal.
 ifneq ($(TARGET_BOARD_PLATFORM),bengal)
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.disable_offline_rotator=1
 else
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.disable_rotator_ubwc=1 \
     vendor.display.disable_layer_stitch=0
 endif
 
 ifeq ($(TARGET_BOARD_PLATFORM),holi)
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.secure_preview_buffer_format=420_sp \
     vendor.gralloc.secure_preview_buffer_format=420_sp \
     vendor.gralloc.secure_preview_only=1
-    PRODUCT_PROPERTY_OVERRIDES += vendor.display.enable_rounded_corner=1
-    PRODUCT_PROPERTY_OVERRIDES += vendor.display.disable_rounded_corner_thread=0
+    PRODUCT_VENDOR_PROPERTIES += vendor.display.enable_rounded_corner=1
+    PRODUCT_VENDOR_PROPERTIES += vendor.display.disable_rounded_corner_thread=0
 endif
 
 ifneq ($(PLATFORM_VERSION), 10)
-    PRODUCT_PROPERTY_OVERRIDES +=  vendor.display.enable_async_powermode=0
+    PRODUCT_VENDOR_PROPERTIES +=  vendor.display.enable_async_powermode=0
 endif
 
 #Set WCG properties
@@ -133,13 +135,13 @@
 
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
 # Recovery is enabled, logging is enabled
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.disable_hw_recovery_dump=0
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.hw_recovery_threshold=5
 else
 # Recovery is enabled, logging is disabled
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_VENDOR_PROPERTIES += \
     vendor.display.disable_hw_recovery_dump=1
 endif
 
@@ -176,7 +178,7 @@
 
 ifeq ($(TARGET_IS_HEADLESS), true)
     # TODO: QMAA prebuilts
-    PRODUCT_SOONG_NAMESPACES += hardware/qcom/display/qmaa
+    PRODUCT_SOONG_NAMESPACES += $(DISPLAY_HAL_DIR)/qmaa
     SOONG_CONFIG_qtidisplay_headless := true
     SOONG_CONFIG_qtidisplay_default := false
 else
@@ -185,7 +187,7 @@
     PRODUCT_PACKAGES += libsdedrm
     PRODUCT_PACKAGES += libgpu_tonemapper
     #Properties that should not be set in QMAA are enabled here.
-    PRODUCT_PROPERTY_OVERRIDES += \
+    PRODUCT_VENDOR_PROPERTIES += \
         vendor.display.enable_early_wakeup=1
     ifneq ($(BUILD_DISPLAY_TECHPACK_SOURCE), true)
         SOONG_CONFIG_qtidisplay_var1 := true
diff --git a/gralloc/Android.bp b/gralloc/Android.bp
index 4158475..53ebabf 100644
--- a/gralloc/Android.bp
+++ b/gralloc/Android.bp
@@ -10,8 +10,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
     shared_libs: [
         "libdl",
@@ -26,6 +24,7 @@
     cflags: [
         "-DLOG_TAG=\"qdgralloc\"",
         "-D__QTI_DISPLAY_GRALLOC__",
+        "-Wno-format",
         "-Wno-sign-conversion",
         "-Wno-unused-parameter",
         "-Wno-unused-variable",
@@ -48,9 +47,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
-        "libvmmem_headers",
     ],
     include_dirs: [
         "system/memory/libion/include",
@@ -64,7 +60,6 @@
         "libhidlbase",
         "libion",
         "libdmabufheap",
-        "libvmmem",
         "android.hardware.graphics.mapper@2.1",
         "android.hardware.graphics.mapper@3.0",
         "android.hardware.graphics.mapper@4.0",
@@ -72,6 +67,7 @@
     cflags: [
         "-DLOG_TAG=\"qdgralloc\"",
         "-D__QTI_DISPLAY_GRALLOC__",
+        "-Wno-format",
         "-Wno-sign-conversion",
         "-Wno-unused-parameter",
     ],
diff --git a/gralloc/QtiGralloc.cpp b/gralloc/QtiGralloc.cpp
index 212ca43..ea0762f 100644
--- a/gralloc/QtiGralloc.cpp
+++ b/gralloc/QtiGralloc.cpp
@@ -212,7 +212,6 @@
   if (!in.size() || !out) {
     return Error::BAD_VALUE;
   }
-  qti_ycbcr *p = reinterpret_cast<qti_ycbcr *>(in.data());
   memcpy(out, in.data(), (YCBCR_LAYOUT_ARRAY_SIZE * sizeof(qti_ycbcr)));
   return Error::NONE;
 }
@@ -230,7 +229,6 @@
   if (!in.size() || !out) {
     return Error::BAD_VALUE;
   }
-  BufferPermission *p = reinterpret_cast<BufferPermission *>(in.data());
   memcpy(out, in.data(), (BUFFER_CLIENT_MAX * sizeof(BufferPermission)));
   return Error::NONE;
 }
diff --git a/gralloc/gr_allocator.cpp b/gralloc/gr_allocator.cpp
index b9c3491..56822ac 100644
--- a/gralloc/gr_allocator.cpp
+++ b/gralloc/gr_allocator.cpp
@@ -62,7 +62,6 @@
 
 int Allocator::AllocateMem(AllocData *alloc_data, uint64_t usage, int format) {
   int ret;
-  bool is_secure = false;
   alloc_data->uncached = UseUncached(format, usage);
 
   AllocInterface *alloc_intf = AllocInterface::GetInstance();
@@ -161,7 +160,6 @@
   bool cur_uncached = false, prev_uncached = false;
   unsigned int alignedw, alignedh;
   unsigned int max_size = 0;
-  bool is_secure = false;
   unsigned int cur_size = 0, prev_size = 0;
 
   *max_index = -1;
diff --git a/gralloc/gr_buf_mgr.cpp b/gralloc/gr_buf_mgr.cpp
index 5c47884..b0d08fb 100644
--- a/gralloc/gr_buf_mgr.cpp
+++ b/gralloc/gr_buf_mgr.cpp
@@ -859,11 +859,9 @@
     return Error::BAD_BUFFER;
   }
 
-  auto metadata = reinterpret_cast<MetaData_t *>(handle->base_metadata);
   if (metadatatype_value == QTI_CUSTOM_CONTENT_METADATA) {
     Error error = Error::NONE;
     void *custom_content_md_region = buf->custom_content_md_region_ptr;
-    uint64_t custom_content_md_region_size = buf->custom_content_md_size;
 
       if (buf->custom_content_md_region_ptr == nullptr ||
           buf->custom_content_md_size != sizeof(CustomContentMetadata)) {
@@ -913,8 +911,7 @@
   auto metadata = reinterpret_cast<MetaData_t *>(handle->base_metadata);
 
   void *metadata_ptr = nullptr;
-  auto result = GetMetaDataByReference(handle, metadatatype_value, &metadata_ptr);
-  Error error = Error::NONE;
+  Error error = GetMetaDataByReference(handle, metadatatype_value, &metadata_ptr);
   switch (metadatatype_value) {
     case (int64_t)StandardMetadataType::BUFFER_ID:
       if (metadata_ptr != nullptr) {
diff --git a/gralloc/gr_dma_mgr.cpp b/gralloc/gr_dma_mgr.cpp
index 41ce6ef..7fe336d 100644
--- a/gralloc/gr_dma_mgr.cpp
+++ b/gralloc/gr_dma_mgr.cpp
@@ -56,6 +56,23 @@
 
 DmaManager *DmaManager::dma_manager_ = NULL;
 
+DmaManager::DmaManager() {
+  libvmmemPointer = dlopen("libvmmem.so", RTLD_LAZY);
+
+  if (libvmmemPointer) {
+    createVmMem = reinterpret_cast<std::unique_ptr<VmMem> (*)()>(dlsym(libvmmemPointer,
+                                                                 "CreateVmMem"));
+    const char* dlsym_error = dlerror();
+    if (dlsym_error) {
+      ALOGE("Cannot load symbol CreateVmMem: %s", dlsym_error);
+      return;
+    }
+  } else {
+    ALOGE("Could not load libvmmem: %s", dlerror());
+    return;
+  }
+}
+
 DmaManager *DmaManager::GetInstance() {
   if (!dma_manager_) {
     dma_manager_ = new DmaManager();
@@ -216,7 +233,7 @@
 
 int DmaManager::SecureMemPerms(AllocData *data) {
   int ret = 0;
-  std::unique_ptr<VmMem> vmmem = VmMem::CreateVmMem();
+  std::unique_ptr<VmMem> vmmem = createVmMem();
   if (!vmmem) {
     return -ENOMEM;
   }
diff --git a/gralloc/gr_dma_mgr.h b/gralloc/gr_dma_mgr.h
index 32c86e2..14636ed 100644
--- a/gralloc/gr_dma_mgr.h
+++ b/gralloc/gr_dma_mgr.h
@@ -33,13 +33,13 @@
 #define __GR_DMA_MGR_H__
 
 #include <BufferAllocator/BufferAllocator.h>
-#include <vmmem.h>
 #include <string>
 #include <vector>
 #include <bitset>
 
 #include "gr_alloc_interface.h"
 #include "membuf_wrapper.h"
+#include "vmmem.h"
 
 #define FD_INIT -1
 #define MEMBUF_CLIENT_LIB_NAME "libmemutils.so"
@@ -71,7 +71,7 @@
   static DmaManager *GetInstance();
 
  private:
-  DmaManager() {}
+  DmaManager();
   int UnmapBuffer(void *base, unsigned int size, unsigned int offset);
   void GetVMPermission(BufferPermission perm, std::bitset<kVmPermissionMax> *vm_perm);
   void InitMemUtils();
@@ -86,6 +86,9 @@
   void *mem_utils_lib_ = {};
   CreateMemBufInterface CreateMemBuf_ = nullptr;
   DestroyMemBufInterface DestroyMemBuf_ = nullptr;
+
+  void* libvmmemPointer;
+  std::unique_ptr<VmMem> (*createVmMem)();
 };
 
 }  // namespace gralloc
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index 9b9b019..f31e505 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -3173,12 +3173,11 @@
         auto error = GetColorSpaceFromColorMetaData(data->color, &colorspace);
         if (error == Error::NONE) {
           *(reinterpret_cast<uint32_t *>(in)) = colorspace;
-          break;
         } else {
           ret = Error::BAD_VALUE;
-          break;
         }
       }
+      break;
     }
     case QTI_YUV_PLANE_INFO: {
       if (copy) {
@@ -3204,10 +3203,8 @@
                 layout[0].chromaStep);
 
           memcpy(in, layout, YCBCR_LAYOUT_ARRAY_SIZE * sizeof(qti_ycbcr));
-          break;
         } else {
           ret = Error::BAD_BUFFER;
-          break;
         }
       }
       break;
@@ -3218,12 +3215,11 @@
         int32_t height;
         if (GetCustomDimensions(handle, &stride, &height) == 0) {
           *(reinterpret_cast<int32_t *>(in)) = stride;
-          break;
         } else {
           ret = Error::BAD_VALUE;
-          break;
         }
       }
+      break;
     }
     case QTI_CUSTOM_DIMENSIONS_HEIGHT: {
       if (copy) {
@@ -3231,24 +3227,22 @@
         int32_t height = handle->height;
         if (GetCustomDimensions(handle, &stride, &height) == 0) {
           *(reinterpret_cast<int32_t *>(in)) = height;
-          break;
         } else {
           ret = Error::BAD_VALUE;
-          break;
         }
       }
+      break;
     }
     case QTI_RGB_DATA_ADDRESS: {
       if (copy) {
         void *rgb_data = nullptr;
         if (GetRgbDataAddress(handle, &rgb_data) == 0) {
           *(reinterpret_cast<void **>(in)) = rgb_data;
-          break;
         } else {
           ret = Error::BAD_BUFFER;
-          break;
         }
       }
+      break;
     }
     case QTI_BUFFER_TYPE:
       if (copy) {
diff --git a/gralloc/vmmem.h b/gralloc/vmmem.h
new file mode 100644
index 0000000..43861c8
--- /dev/null
+++ b/gralloc/vmmem.h
@@ -0,0 +1,23 @@
+#ifndef __VMMEM_H__
+#define __VMMEM_H__
+
+#include <stdlib.h>
+#include <string>
+#include <vector>
+
+#define VMMEM_READ   4
+#define VMMEM_WRITE  2
+#define VMMEM_EXEC   1
+
+using VmHandle = int;
+using VmPerm = std::vector<std::pair<VmHandle, uint32_t>>;
+
+class VmMem {
+ public:
+  virtual ~VmMem() = 0;
+  static std::unique_ptr<VmMem> CreateVmMem();
+  virtual int FindVmByName(const std::string& vm_name);
+  virtual int LendDmabuf(int fd, const VmPerm& vm_perms);
+};
+
+#endif  // __VMMEM_H__
diff --git a/hdmi_cec/Android.bp b/hdmi_cec/Android.bp
index 9de8b63..8f589da 100644
--- a/hdmi_cec/Android.bp
+++ b/hdmi_cec/Android.bp
@@ -23,7 +23,6 @@
         "-DLOG_TAG=\"qdhdmi_cec\"",
         "-Wno-sign-conversion",
     ],
-    clang: true,
     srcs: [
         "qhdmi_cec.cpp",
         "QHDMIClient.cpp",
diff --git a/init/Android.bp b/init/Android.bp
index f933b23..560a347 100644
--- a/init/Android.bp
+++ b/init/Android.bp
@@ -1,10 +1,12 @@
-cc_prebuilt_binary {
-    name: "init.qti.display_boot.sh",
+prebuilt_etc {
+    name: "init.qti.display_boot.rc",
+    src: "init.qti.display_boot.rc",
+    sub_dir: "init",
     vendor: true,
-    strip: {
-        none: true,
-    },
-    device_supported: true,
-    srcs: ["init.qti.display_boot.sh"],
-    init_rc: ["init.qti.display_boot.rc"],
+}
+
+sh_binary {
+    name: "init.qti.display_boot.sh",
+    src: "init.qti.display_boot.sh",
+    vendor: true,
 }
diff --git a/libdebug/Android.bp b/libdebug/Android.bp
index 0fdf6d8..7a7e2c2 100644
--- a/libdebug/Android.bp
+++ b/libdebug/Android.bp
@@ -15,6 +15,5 @@
         "-fno-operator-names",
     ],
     export_include_dirs: ["."],
-    clang: true,
     srcs: ["debug_handler.cpp"],
 }
diff --git a/libdrmutils/Android.bp b/libdrmutils/Android.bp
index b034391..af99665 100644
--- a/libdrmutils/Android.bp
+++ b/libdrmutils/Android.bp
@@ -9,8 +9,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
     shared_libs: [
         "libdrm",
@@ -24,7 +22,6 @@
         "-Werror",
         "-fno-operator-names",
     ],
-    clang: true,
 
     srcs: [
         "drm_master.cpp",
diff --git a/libhistogram/Android.bp b/libhistogram/Android.bp
index 1d05e9c..1e672d4 100644
--- a/libhistogram/Android.bp
+++ b/libhistogram/Android.bp
@@ -27,8 +27,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
 
     cflags: [
@@ -39,7 +37,6 @@
         "-fno-operator-names",
         "-Wthread-safety",
     ],
-    clang: true,
     srcs: [
         "histogram_collector.cpp",
         "ringbuffer.cpp",
@@ -62,8 +59,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
 
     cflags: [
@@ -74,7 +69,6 @@
         "-fno-operator-names",
         "-Wthread-safety",
     ],
-    clang: true,
 
     vendor: true,
 
@@ -99,8 +93,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
 
     cflags: [
@@ -111,7 +103,6 @@
         "-fno-operator-names",
         "-Wthread-safety",
     ],
-    clang: true,
 
     vendor: true,
 
diff --git a/liblight/Android.bp b/liblight/Android.bp
index 9d92660..d2cb82a 100644
--- a/liblight/Android.bp
+++ b/liblight/Android.bp
@@ -6,7 +6,6 @@
     header_libs: ["libhardware_headers"],
     shared_libs: ["liblog"],
     cflags: ["-DLOG_TAG=\"qdlights\""],
-    clang: true,
     vendor: true,
 
 }
diff --git a/oem_services/Android.bp b/oem_services/Android.bp
index cae8e7b..de8d023 100644
--- a/oem_services/Android.bp
+++ b/oem_services/Android.bp
@@ -16,7 +16,6 @@
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
-    clang: true,
     header_libs: ["display_headers"],
 
     shared_libs: [
@@ -52,7 +51,6 @@
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
-    clang: true,
 
     header_libs: ["display_headers"],
 
diff --git a/qmaa/Android.bp b/qmaa/Android.bp
index 96b5023..957c5f0 100644
--- a/qmaa/Android.bp
+++ b/qmaa/Android.bp
@@ -1,9 +1,10 @@
 soong_namespace {
     imports: [
-        "hardware/qcom/display",
-        "hardware/qcom/display/libdebug",
+        "hardware/qcom-caf/sm8550/display",
+        "hardware/qcom-caf/sm8550/display/libdebug",
     ],
 }
+
 composer_srcs = ["*.cpp"]
 
 cc_binary {
@@ -18,8 +19,6 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
 
     cflags: [
@@ -27,7 +26,6 @@
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
-    clang: true,
 
     shared_libs: [
         "libbinder",
diff --git a/qmaa/vendor.qti.hardware.display.composer-service.rc b/qmaa/vendor.qti.hardware.display.composer-service.rc
index 96e080d..55b0112 100644
--- a/qmaa/vendor.qti.hardware.display.composer-service.rc
+++ b/qmaa/vendor.qti.hardware.display.composer-service.rc
@@ -5,4 +5,4 @@
     capabilities SYS_NICE
     onrestart restart surfaceflinger
     socket pps stream 0660 system system
-    writepid /dev/cpuset/system-background/tasks
+    task_profiles ServiceCapacityLow
diff --git a/sde-drm/Android.bp b/sde-drm/Android.bp
index bc33c5e..a87a547 100644
--- a/sde-drm/Android.bp
+++ b/sde-drm/Android.bp
@@ -14,18 +14,16 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
     cflags: [
         "-Wno-missing-field-initializers",
         "-Wall",
         "-Werror",
         "-fno-operator-names",
+        "-Wno-format",
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDE_DRM\"",
     ],
-    clang: true,
     srcs: [
         "drm_manager.cpp",
         "drm_connector.cpp",
diff --git a/sde-drm/drm_connector.cpp b/sde-drm/drm_connector.cpp
index 2f6d229..557857f 100644
--- a/sde-drm/drm_connector.cpp
+++ b/sde-drm/drm_connector.cpp
@@ -656,7 +656,7 @@
   fmt_str[blob->length] = '\0';
   stringstream stream(fmt_str);
   DRM_LOGI("stream str %s len %zu blob str %s len %d", stream.str().c_str(), stream.str().length(),
-           blob->data, blob->length);
+           static_cast<const char *>(blob->data), blob->length);
   string line = {};
   const string display_type = "display type=";
   const string panel_name = "panel name=";
@@ -764,7 +764,7 @@
   fmt_str[blob->length] = '\0';
   stringstream stream(fmt_str);
   DRM_LOGI("stream str %s len %zu blob str %s len %d", stream.str().c_str(), stream.str().length(),
-           blob->data, blob->length);
+           static_cast<const char *>(blob->data), blob->length);
 
   string line = {};
   const string mode_name = "mode_name=";
diff --git a/sde-drm/drm_crtc.cpp b/sde-drm/drm_crtc.cpp
index 3b53532..dc4230f 100755
--- a/sde-drm/drm_crtc.cpp
+++ b/sde-drm/drm_crtc.cpp
@@ -410,7 +410,7 @@
   fmt_str[blob->length] = '\0';
   stringstream stream(fmt_str);
   DRM_LOGI("stream str %s len %zu blob str %s len %d", stream.str().c_str(), stream.str().length(),
-           blob->data, blob->length);
+           static_cast<const char *>(blob->data), blob->length);
   string line = {};
   string max_blendstages = "max_blendstages=";
   string qseed_type = "qseed_type=";
diff --git a/sde-drm/drm_plane.cpp b/sde-drm/drm_plane.cpp
index a41f096..aa015ac 100644
--- a/sde-drm/drm_plane.cpp
+++ b/sde-drm/drm_plane.cpp
@@ -655,7 +655,7 @@
   // like formats etc
   stringstream stream(fmt_str);
   DRM_LOGI("stream str %s len %zu blob str %s len %d", stream.str().c_str(), stream.str().length(),
-           blob->data, blob->length);
+           static_cast<const char *>(blob->data), blob->length);
 
   string line = {};
   string pixel_formats = "pixel_formats=";
diff --git a/sdm/include/core/display_interface.h b/sdm/include/core/display_interface.h
index 7754541..0560e36 100644
--- a/sdm/include/core/display_interface.h
+++ b/sdm/include/core/display_interface.h
@@ -438,10 +438,10 @@
   virtual void MMRMEvent(bool restricted) = 0;
 
   /*! @brief Event handler for sending status of Qsync */
-  virtual DisplayError HandleQsyncState(const QsyncEventData &event_data) { return kErrorNone; }
+  virtual DisplayError HandleQsyncState(const QsyncEventData &) { return kErrorNone; }
 
   /*! @brief Event handler to notify CWB Done */
-  virtual void NotifyCwbDone(int32_t status, const LayerBuffer& buffer) { }
+  virtual void NotifyCwbDone(int32_t, const LayerBuffer&) { }
 
  protected:
   virtual ~DisplayEventHandler() { }
diff --git a/sdm/include/private/resource_interface.h b/sdm/include/private/resource_interface.h
index c68e77a..e95eb9a 100644
--- a/sdm/include/private/resource_interface.h
+++ b/sdm/include/private/resource_interface.h
@@ -143,7 +143,9 @@
   virtual uint32_t GetMixerCount() = 0;
   virtual void HandleTUITransition(Handle display_ctx, bool tui_active) = 0;
   virtual DisplayError SetBlendSpace(Handle display_ctx, const PrimariesTransfer &blend_space) = 0;
+#ifdef SDMCORE_HAS_IS_DISPLAY_HW_AVAILABLE_FUNC
   virtual bool IsDisplayHWAvailable() = 0;
+#endif
 };
 
 }  // namespace sdm
diff --git a/sdm/libs/core/Android.bp b/sdm/libs/core/Android.bp
index dc979b8..683066a 100644
--- a/sdm/libs/core/Android.bp
+++ b/sdm/libs/core/Android.bp
@@ -1,6 +1,9 @@
 cc_library_shared {
     name: "libsdmcore",
-    defaults: ["qtidisplay_defaults"],
+    defaults: [
+        "qtidisplay_defaults",
+        "sdmcore_has_is_display_hw_available_func_defaults",
+    ],
     sanitize: {
         integer_overflow: true,
     },
@@ -8,11 +11,10 @@
     header_libs: [
         "display_headers",
         "qti_kernel_headers",
-        "qti_display_kernel_headers",
-        "device_kernel_headers",
     ],
     cflags: [
         "-fno-operator-names",
+        "-Wno-format",
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
diff --git a/sdm/libs/core/comp_manager.cpp b/sdm/libs/core/comp_manager.cpp
old mode 100755
new mode 100644
index b2812ee..7f14600
--- a/sdm/libs/core/comp_manager.cpp
+++ b/sdm/libs/core/comp_manager.cpp
@@ -811,12 +811,16 @@
 }
 
 bool CompManager::IsDisplayHWAvailable() {
+#ifdef SDMCORE_HAS_IS_DISPLAY_HW_AVAILABLE_FUNC
   std::lock_guard<std::recursive_mutex> obj(comp_mgr_mutex_);
   if (resource_intf_) {
     return resource_intf_->IsDisplayHWAvailable();
   }
 
   return false;
+#else
+  return true;
+#endif
 }
 
 
diff --git a/sdm/libs/dal/Android.bp b/sdm/libs/dal/Android.bp
index 21caf7f..c54cd0c 100644
--- a/sdm/libs/dal/Android.bp
+++ b/sdm/libs/dal/Android.bp
@@ -5,11 +5,9 @@
         integer_overflow: true,
     },
     vendor: true,
-    header_libs: [
-        "qti_display_kernel_headers",
-    ],
     cflags: [
         "-fno-operator-names",
+        "-Wno-format",
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"SDM\"",
     ],
diff --git a/services/config/src/Android.bp b/services/config/src/Android.bp
index 7ad0dbb..02a100a 100644
--- a/services/config/src/Android.bp
+++ b/services/config/src/Android.bp
@@ -2,6 +2,7 @@
     name: "libdisplayconfig.qti",
     vendor: true,
     cflags: [
+        "-Wno-format",
         "-Wno-sign-conversion",
         "-Wno-unused-parameter",
         "-DLOG_TAG=\"libdisplayconfigqti\"",
