sdm: Set system property when HDMI is Primary
Set a system property "persist.sys.is_hdmi_primary" to indicate
that the HDMI interface is the primary display. This property can
be used by other system components to determine whether to
trigger certain functionality when HDMI is primary.
CRs-Fixed: 1009711
Change-Id: Id215a6ee9c6aa2953b0e2c01af0bad035b728a46
diff --git a/sdm/libs/hwc/hwc_debugger.cpp b/sdm/libs/hwc/hwc_debugger.cpp
index 7c8bbfd..c3c8707 100644
--- a/sdm/libs/hwc/hwc_debugger.cpp
+++ b/sdm/libs/hwc/hwc_debugger.cpp
@@ -181,5 +181,13 @@
return kErrorNotSupported;
}
+DisplayError HWCDebugHandler::SetProperty(const char *property_name, const char *value) {
+ if (property_set(property_name, value) == 0) {
+ return kErrorNone;
+ }
+
+ return kErrorNotSupported;
+}
+
} // namespace sdm
diff --git a/sdm/libs/hwc/hwc_debugger.h b/sdm/libs/hwc/hwc_debugger.h
index 68f95d9..f91338e 100644
--- a/sdm/libs/hwc/hwc_debugger.h
+++ b/sdm/libs/hwc/hwc_debugger.h
@@ -62,6 +62,7 @@
virtual void EndTrace();
virtual DisplayError GetProperty(const char *property_name, int *value);
virtual DisplayError GetProperty(const char *property_name, char *value);
+ virtual DisplayError SetProperty(const char *property_name, const char *value);
private:
static HWCDebugHandler debug_handler_;
diff --git a/sdm/libs/hwc/hwc_session.cpp b/sdm/libs/hwc/hwc_session.cpp
index 9632d71..8e1dd24 100644
--- a/sdm/libs/hwc/hwc_session.cpp
+++ b/sdm/libs/hwc/hwc_session.cpp
@@ -154,6 +154,7 @@
if (hw_disp_info.type == kHDMI) {
// HDMI is primary display. If already connected, then create it and store in
// primary display slot. If not connected, create a NULL display for now.
+ HWCDebugHandler::Get()->SetProperty("persist.sys.is_hdmi_primary", "1");
if (hw_disp_info.is_connected) {
status = HWCDisplayExternal::Create(core_intf_, &hwc_procs_, qservice_,
&hwc_display_[HWC_DISPLAY_PRIMARY]);
diff --git a/sdm/libs/utils/debug.cpp b/sdm/libs/utils/debug.cpp
index 7082421..b91cdf4 100644
--- a/sdm/libs/utils/debug.cpp
+++ b/sdm/libs/utils/debug.cpp
@@ -148,5 +148,13 @@
return true;
}
+bool Debug::SetProperty(const char* property_name, const char* value) {
+ if (debug_.debug_handler_->SetProperty(property_name, value) != kErrorNone) {
+ return false;
+ }
+
+ return true;
+}
+
} // namespace sdm