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: