diff --git a/sdm/include/core/layer_stack.h b/sdm/include/core/layer_stack.h
index b49c425..035b352 100644
--- a/sdm/include/core/layer_stack.h
+++ b/sdm/include/core/layer_stack.h
@@ -43,6 +43,10 @@
 #include "layer_buffer.h"
 #include "sdm_types.h"
 
+#ifdef FOD_ZPOS
+#include <drm/sde_drm.h>
+#endif
+
 namespace sdm {
 
 /*! @brief This enum represents display layer blending types.
@@ -187,6 +191,14 @@
 
       uint32_t single_buffer : 1;  //!< This flag shall be set by client to indicate that the layer
                                    //!< uses only a single buffer that will not be swapped out
+
+#ifdef FOD_ZPOS
+      uint32_t reserved : 26;      //!< This flag reserves the remaining 4 * 8 - (5 + 1) bits to
+                                   //!< avoid future ABI breakage
+
+      uint32_t fod_pressed : 1;    //!< This flag shall be set internally to mark the fod pressed
+                                   //!< layer
+#endif
     };
 
     uint32_t flags = 0;       //!< For initialization purpose only.
diff --git a/sdm/libs/core/Android.mk b/sdm/libs/core/Android.mk
index c934de0..8f6cb23 100644
--- a/sdm/libs/core/Android.mk
+++ b/sdm/libs/core/Android.mk
@@ -26,6 +26,10 @@
     LOCAL_CFLAGS += -DHYPERVISOR
 endif
 
+ifeq ($(TARGET_USES_FOD_ZPOS), true)
+    LOCAL_CFLAGS              += -DFOD_ZPOS
+endif
+
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := core_interface.cpp \
                                  core_impl.cpp \
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index da5c271..b0aa1fe 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -1174,7 +1174,15 @@
         if (update_config) {
           drm_atomic_intf_->Perform(DRMOps::PLANE_SET_ALPHA, pipe_id, layer.plane_alpha);
 
+#ifdef FOD_ZPOS
+          uint32_t z_order = pipe_info->z_order;
+          if (layer.flags.fod_pressed) {
+            z_order |= FOD_PRESSED_LAYER_ZORDER;
+          }
+          drm_atomic_intf_->Perform(DRMOps::PLANE_SET_ZORDER, pipe_id, z_order);
+#else
           drm_atomic_intf_->Perform(DRMOps::PLANE_SET_ZORDER, pipe_id, pipe_info->z_order);
+#endif
 
           DRMBlendType blending = {};
           SetBlending(layer.blending, &blending);
diff --git a/sdm/libs/hwc2/Android.mk b/sdm/libs/hwc2/Android.mk
index bdaeeb2..c291d72 100644
--- a/sdm/libs/hwc2/Android.mk
+++ b/sdm/libs/hwc2/Android.mk
@@ -48,6 +48,10 @@
 LOCAL_CFLAGS                  += -DCONFIG_BASEID_FROM_PROP
 endif
 
+ifeq ($(TARGET_USES_FOD_ZPOS), true)
+LOCAL_CFLAGS                  += -DFOD_ZPOS
+endif
+
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_session_services.cpp \
                                  hwc_display.cpp \
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index a4b8344..099249f 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -674,6 +674,12 @@
       layer->flags.solid_fill = true;
     }
 
+#ifdef FOD_ZPOS
+    if (hwc_layer->IsFodPressed()) {
+      layer->flags.fod_pressed = true;
+    }
+#endif
+
     if (!hwc_layer->IsDataSpaceSupported()) {
       layer->flags.skip = true;
     }
diff --git a/sdm/libs/hwc2/hwc_layers.cpp b/sdm/libs/hwc2/hwc_layers.cpp
index ecc1802..60a225d 100644
--- a/sdm/libs/hwc2/hwc_layers.cpp
+++ b/sdm/libs/hwc2/hwc_layers.cpp
@@ -543,6 +543,13 @@
 
 HWC2::Error HWCLayer::SetLayerZOrder(uint32_t z) {
   if (z_ != z) {
+#ifdef FOD_ZPOS
+    if (z & FOD_PRESSED_LAYER_ZORDER) {
+      fod_pressed_ = true;
+      z &= ~FOD_PRESSED_LAYER_ZORDER;
+    }
+#endif
+
     geometry_changes_ |= kZOrder;
     z_ = z;
   }
diff --git a/sdm/libs/hwc2/hwc_layers.h b/sdm/libs/hwc2/hwc_layers.h
index f6e9d71..0effbb9 100644
--- a/sdm/libs/hwc2/hwc_layers.h
+++ b/sdm/libs/hwc2/hwc_layers.h
@@ -119,6 +119,9 @@
   void SetLayerAsMask();
   bool BufferLatched() { return buffer_flipped_; }
   void ResetBufferFlip() { buffer_flipped_ = false; }
+#ifdef FOD_ZPOS
+  bool IsFodPressed() { return fod_pressed_; }
+#endif
 
  private:
   Layer *layer_ = nullptr;
@@ -139,6 +142,9 @@
   bool non_integral_source_crop_ = false;
   bool has_metadata_refresh_rate_ = false;
   bool buffer_flipped_ = false;
+#ifdef FOD_ZPOS
+  bool fod_pressed_ = false;
+#endif
 
   // Composition requested by client(SF) Original
   HWC2::Composition client_requested_orig_ = HWC2::Composition::Device;
