sdm: drm: Set FB secure mode for Writeback Connector

Set FB Secure mode property for the Writeback Connector.

CRs-Fixed: 2098043
Change-Id: I8eb4f4f40541583107e0a8897a874ae7aeec4083
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 4ecfcbf..74cafd9 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -273,6 +273,12 @@
    *      DRMRect * - Array of Connector ROIs
    */
   CONNECTOR_SET_ROI,
+  /*
+   * Op: Set FB secure mode for Writeback connector.
+   * Arg: uint32_t - Connector ID
+   *      uint32_t - FB Secure mode
+   */
+  CONNECTOR_SET_FB_SECURE_MODE,
 };
 
 enum struct DRMRotation {
diff --git a/sdm/libs/core/drm/hw_virtual_drm.cpp b/sdm/libs/core/drm/hw_virtual_drm.cpp
index 55f38ac..7c7e348 100644
--- a/sdm/libs/core/drm/hw_virtual_drm.cpp
+++ b/sdm/libs/core/drm/hw_virtual_drm.cpp
@@ -42,6 +42,7 @@
 using sde_drm::DRMRect;
 using sde_drm::DRMOps;
 using sde_drm::DRMPowerMode;
+using sde_drm::DRMSecureMode;
 namespace sdm {
 
 HWVirtualDRM::HWVirtualDRM(BufferSyncHandler *buffer_sync_handler,
@@ -85,6 +86,11 @@
   return;
 }
 
+void HWVirtualDRM::ConfigureWbConnectorSecureMode(bool secure) {
+  DRMSecureMode secure_mode = secure ? DRMSecureMode::SECURE : DRMSecureMode::NON_SECURE;
+  drm_atomic_intf_->Perform(DRMOps::CONNECTOR_SET_FB_SECURE_MODE, token_.conn_id, secure_mode);
+}
+
 void HWVirtualDRM::InitializeConfigs() {
   drmModeModeInfo mode = {};
   mode.hdisplay = mode.hsync_start = mode.hsync_end = mode.htotal = (uint16_t) width_;
@@ -144,6 +150,7 @@
 
   ConfigureWbConnectorFbId(fb_id);
   ConfigureWbConnectorDestRect();
+  ConfigureWbConnectorSecureMode(output_buffer->flags.secure);
 
   err = HWDeviceDRM::AtomicCommit(hw_layers);
   registry_.UnregisterNext();
diff --git a/sdm/libs/core/drm/hw_virtual_drm.h b/sdm/libs/core/drm/hw_virtual_drm.h
index afa5c71..7fa6c54 100644
--- a/sdm/libs/core/drm/hw_virtual_drm.h
+++ b/sdm/libs/core/drm/hw_virtual_drm.h
@@ -59,6 +59,7 @@
   virtual DisplayError PowerOff();
   void ConfigureWbConnectorFbId(uint32_t fb_id);
   void ConfigureWbConnectorDestRect();
+  void ConfigureWbConnectorSecureMode(bool secure);
   void DumpConfigs();
 
  private: