summaryrefslogtreecommitdiff
path: root/libdrmutils/drm_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'libdrmutils/drm_interface.h')
-rw-r--r--libdrmutils/drm_interface.h43
1 files changed, 40 insertions, 3 deletions
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 5afab4de..eeb94dcb 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
+* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -41,6 +41,10 @@
#include <drm/msm_drm.h>
#include <drm/msm_drm_pp.h>
+#ifdef KERNEL_5_4
+#include <drm/sde_drm.h>
+#endif
+
namespace sde_drm {
typedef std::map<std::pair<uint32_t, uint64_t>, float> CompRatioMap;
@@ -385,6 +389,11 @@ enum struct DRMOps {
*/
DPPS_COMMIT_FEATURE,
/*
+ * Op: Commit panel features.
+ * Arg: drmModeAtomicReq - Atomic request
+ */
+ COMMIT_PANEL_FEATURES,
+ /*
* Op: Sets qsync mode on connector
* Arg: uint32_t - Connector ID
* uint32_t - qsync mode
@@ -531,6 +540,7 @@ struct DRMCrtcInfo {
bool use_baselayer_for_stage = false;
bool has_micro_idle = false;
uint32_t ubwc_version = 1;
+ uint64_t rc_total_mem_size = 0;
};
enum struct DRMPlaneType {
@@ -691,7 +701,7 @@ enum DRMPPFeatureID {
kPPFeaturesMax,
};
-enum DRMPPPropType {
+enum DRMPropType {
kPropEnum,
kPropRange,
kPropBlob,
@@ -700,7 +710,7 @@ enum DRMPPPropType {
struct DRMPPFeatureInfo {
DRMPPFeatureID id;
- DRMPPPropType type;
+ DRMPropType type;
uint32_t version;
uint32_t payload_size;
void *payload;
@@ -770,6 +780,21 @@ struct DRMDppsFeatureInfo {
void *payload;
};
+enum DRMPanelFeatureID {
+ kDRMPanelFeatureRCInit,
+ kDRMPanelFeatureDsppRCInfo,
+ kDRMPanelFeatureMax,
+};
+
+struct DRMPanelFeatureInfo {
+ DRMPanelFeatureID prop_id;
+ uint32_t obj_type;
+ uint32_t obj_id;
+ uint32_t version;
+ uint32_t prop_size;
+ uint64_t prop_ptr;
+};
+
enum AD4Modes {
kAd4Off,
kAd4AutoStrength,
@@ -1057,6 +1082,18 @@ class DRMManagerInterface {
* [output]: Dpps feature version, info->version
*/
virtual void GetDppsFeatureInfo(DRMDppsFeatureInfo *info) = 0;
+
+ /*
+ * Get the Panel feature info
+ * [output]: panel feature info data
+ */
+ virtual void GetPanelFeature(DRMPanelFeatureInfo *info) = 0;
+
+ /*
+ * Set the Panel feature
+ * [input]: panel feature info data
+ */
+ virtual void SetPanelFeature(const DRMPanelFeatureInfo &info) = 0;
};
} // namespace sde_drm