diff options
Diffstat (limited to 'sdm/libs/hwc2/hwc_display_primary.h')
-rw-r--r-- | sdm/libs/hwc2/hwc_display_primary.h | 18 |
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 |