summaryrefslogtreecommitdiffstats
path: root/sdm/libs/hwc2/hwc_display_primary.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdm/libs/hwc2/hwc_display_primary.h')
-rw-r--r--sdm/libs/hwc2/hwc_display_primary.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/sdm/libs/hwc2/hwc_display_primary.h b/sdm/libs/hwc2/hwc_display_primary.h
index 7f5e50c9..40f0f489 100644
--- a/sdm/libs/hwc2/hwc_display_primary.h
+++ b/sdm/libs/hwc2/hwc_display_primary.h
@@ -53,6 +53,7 @@ class HWCDisplayPrimary : public HWCDisplay {
HWCDisplay **hwc_display);
static void Destroy(HWCDisplay *hwc_display);
virtual int Init();
+ virtual int Deinit();
virtual HWC2::Error Validate(uint32_t *out_num_types, uint32_t *out_num_requests);
virtual HWC2::Error Present(int32_t *out_retire_fence);
virtual HWC2::Error GetColorModes(uint32_t *out_num_modes, ColorMode *out_modes);
@@ -76,6 +77,8 @@ class HWCDisplayPrimary : public HWCDisplay {
virtual HWC2::Error SetReadbackBuffer(const native_handle_t *buffer, int32_t acquire_fence,
bool post_processed_output);
virtual HWC2::Error GetReadbackBufferFence(int32_t *release_fence);
+ virtual HWC2::Error PostCommitLayerStack(int32_t *out_retire_fence);
+ virtual HWC2::Error ControlIdlePowerCollapse(bool enable, bool synchronous);
private:
HWCDisplayPrimary(CoreInterface *core_intf, BufferAllocator *buffer_allocator,
@@ -92,6 +95,18 @@ class HWCDisplayPrimary : public HWCDisplay {
void HandleFrameDump();
DisplayError SetMixerResolution(uint32_t width, uint32_t height);
DisplayError GetMixerResolution(uint32_t *width, uint32_t *height);
+ class PMICInterface {
+ public:
+ PMICInterface() { }
+ ~PMICInterface() { }
+ DisplayError Init();
+ void Deinit();
+ DisplayError Notify(bool secure_display_start);
+
+ private:
+ int fd_lcd_bias_ = -1;
+ int fd_wled_ = -1;
+ };
BufferAllocator *buffer_allocator_ = nullptr;
CPUHint *cpu_hint_ = nullptr;
@@ -107,6 +122,9 @@ class HWCDisplayPrimary : public HWCDisplay {
BufferInfo output_buffer_info_ = {};
void *output_buffer_base_ = nullptr;
int default_mode_status_ = 0;
+ // PMIC interface to notify secure display start/end
+ PMICInterface *pmic_intf_ = nullptr;
+ bool pmic_notification_pending_ = false;
};
} // namespace sdm