summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
AgeCommit message (Collapse)Author
2022-05-24Merge "libhwc2.1: add lock for callback functions" into tm-dev am: 358e71d278Midas Chien
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18344646 Change-Id: I6086beceeaa42910d48a04de64050deb4a48325d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-23libhwc2.1: add lock for callback functionsMidas Chien
When handling callback functions, the callback function pointer may be assigned to null by RegisterCallback function. It will cause crash. Add locks for callback functions to avoid it. Also don't request global display lock when handling vsync callback to avoid it be blocked by display main thread. Bug: 223857925 Test: prefetto, restart framework, restart composer, boot Change-Id: I00351031de9984bdd788bd7a1712c5240a294e4b
2022-05-19libhwc2.1: update LP mode when setting boot configMidas Chien
The boot config may different to default config. Update LP mode to make sure it is correct when doing setting boot config. Bug: 232736694 Test: Boot with and without user selected config Test: AoD, RRS Change-Id: I0c4cbec8a3b6703ce46c16313fc6e7e12d3e7d03
2022-05-18Merge "libhwc2.1: don't pass expected present time during transition" into ↵Midas Chien
tm-dev am: 407cbb7329 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18321590 Change-Id: I76e650213b20a4665ad02e9b3f42f24a036c7ae0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-12libhwc2.1: don't pass expected present time during transitionMidas Chien
SF may pass incorrect expected present time during refresh rate transition. It is because SF get refresh rate apply time late 1 frame. Don't pass it to avoid frame drop during refresh rate transition. Also give 20% margin when comparing vsync period to avoid late to report new vsync period to SF. Bug: 232193906 Test: refresh rate switch Change-Id: Iedb991a05d45e61d2165b01d1e14d2859b3b6cb8
2022-05-10Merge "libhwc2.1: support solid color layer dimming in HWC" into tm-d1-devLong Ling
2022-05-04hwc: handle seamless resolution switchjoenchen
1. The mode change of resolution is committed to the display driver to avoid the black flickers in deliverWinConfig() like refresh rate requests. 2. HWC updates the lp mode for AOD after transition. Bug: 223115232 Test: 1. run abundant "adb shell service call SurfaceFlinger 1035 i32 mode" 2. enable AOD and power on/off Change-Id: I6ce63a7031c888e8771fa8ce96e8447f07e46cdd
2022-05-02libhwc2.1: support solid color layer dimming in HWCLong Ling
Bug: 230570414 Change-Id: I6ced84b99542959d32e414bc847c6a9981109fdb
2022-04-14hwc: clean up the RCD handling in FBManagerYichi Chen
RCD should be considered as a kind of WIN_STATE_BUFFER. The patch simplifies the buffer handling in FBManager to remove the redundant code. It also fixes the memory leakage from the buffers of RCD layers. Bug: 221520084 Test: Check dmabuf usage during resolution switches Change-Id: I8d7a6f8e7714291d4c5b497d3e482f15334a2415
2022-04-08Merge "HWC supports boot config API" into tm-devJoen Chen
2022-04-08HWC supports boot config APIjoenchen
Test: to change resolution and check logcat log Bug: 223463247 Change-Id: I96953ec23ddf85974c82191914e6a1e4a0b9c69a
2022-04-07Merge "libhwc2.1: implement boot time resolution API" into tm-devAdrian Salido
2022-04-06libhwc2.1: implement boot time resolution APIAdrian Salido
Implement boot time to get notified about resolution to be used at boot. Test: reboot device and check dumpsys display for boot mode Bug: 217399988 Change-Id: I6034fa0dfee8a0d21bba316bb0dc11c300ad88fe
2022-04-06libhwc2.1: get PlaneId by display for RCDWeizhung Ding
Get PlaneId by display for crtc1. Bug: 227281916 Test: verify decon1 work on CR Change-Id: I432de6648f1cfdb2fb38807d78e5d7902aaf0b45
2022-03-04libhwc2.1: perform resolution switch synchronouslyAdrian Salido
Switching asynchronously causes commit errors on the following commits. Switch to make mode update blocking. Bug: 194407553 Test: switch resolution Change-Id: Ic94694c2959d396fef4dcd2fbe70265e57c02976
2022-03-03libhwc2.1: Add Histogram handling codesYongWook Shin
It creates Histogram related functions and adds related handling codes. Bug: 197519352 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: Ia0d3af1b278d6e984b4dbb7fcdc5dbba6acda2b0 Merged-In: Ia0d3af1b278d6e984b4dbb7fcdc5dbba6acda2b0 (cherry picked from commit d350b14c64ee443bd0c9e5d89b10df03ed1e5fbc)
2022-02-25hwc: set blocking region for RCD layersYichi Chen
The patch creates the blob support of the blocking region for RCD layers. The blocking region is encapsulated as a blob in the form of decon_win_rect and passed to the display driver directly. Bug: 214560831 Test: Enable blocking region on RCD layer Change-Id: Ic387bf4fb8ae3d6fadb2f9b31afbb4589e31c84b
2022-02-17Revert "Revert "libhwc2.1: support setIdleTimerEnabled""Midas Chien
This reverts commit 13c602ef2fa6ec36e9ec02633ec7727fd4427d3c. Reason for revert: avc denied is addressed in another patch Bug: 219857957 Bug: 198808492 Test: composer access panel_idle withou avc denied Change-Id: If1753cde988d8e2c755168bbc174da9faf138b91
2022-02-16Revert "libhwc2.1: support setIdleTimerEnabled"Shubham Dubey
This reverts commit 91700d7c6e6cea728e3d8525745ddbf8a0517c98. Reason for revert: Introduced untracked linux denials BUG: 219857957 Change-Id: I924352333ff3c36e971c11a8f48831ab5cac75b3
2022-02-15libhwc2.1: support setIdleTimerEnabledMidas Chien
Implement setIdleTimerEnabled to control kernel idle timer via HWC API. Bug: 198808492 Test: VTS (--gtest_filter=*SetIdleTimerEnabled_*) Test: check idle_delay_ms from sysnode match what HWC set Change-Id: Ia222101a4f0e440db3daf03cd798bf2e748259a5
2022-02-08libhwc2.1: update doze mode when mode group changesAdrian Salido
When resolution is changed, the LP mode in driver may change with a compatible mode such that we can seamlessly transition into Doze. Update the LP mode when there's a resolution change in order to know what mode to use to transition into Doze. Test: switch resolution, enter/exit AOD Bug: 204995855 Change-Id: Ib40e743438346c54dfe0957119a33a5e2960ed64
2022-02-08Merge "libhwc2.1: add support for resolution switch via setActiveConfig"Adrian Salido
2022-02-08hwc: support RCD layer in hwc2.4 and hwc3Yichi Chen
To support the RCD layer, the patch checks the composition type in DISPLAY_DECORATION and assigns the layer to the special plane on the display. Bug: 193171134 Test: Trigger RCD layer by sending a R8 layer Change-Id: I5e6489d22cd79a154d9b7ef4cd0391629e529299
2022-02-05libhwc2.1: add support for resolution switch via setActiveConfigAdrian Salido
Current setActiveConfigWithConstraints implementation only supports changing refresh rate. Add support when switching between different config groups by clearing layer list while the switch is taking place. Test: adb shell cmd display set-user-preferred-display-mode Bug: 204470707 Change-Id: I1f0fbfa0a77e7c3fbd92e5a9bd7929b343000b08
2022-01-25hwc3: get display mount orientationLong Ling
Bug: 214461751 Change-Id: I32ae0d09d3555be28d152b02719e76f1bcf42350
2022-01-04libhwc2.1: add expected_present_time propertyMidas Chien
Use expected_present_time drm property propagate expected present time to display driver. Bug: 198186194 Test: data can propagate to driver correctly Change-Id: I7d59be49ea2f6892d27546006c4bb01910afc7a3
2021-12-06libhwc2.1: postpone the burst 120hz->60hz changejoenchen
HWC would postpone the burst 120hz->60hz change for the one second. Bug: 202567084 Test: 0. set the idle delay ms as 3000ms 1. stay in camera app (60Hz) 2. go back to home (120Hz) 3. enter camera The 60Hz refresh rate happened until 3 secs Change-Id: I1c7bf447aacec0ffb71274fd816fad8b939366b4
2021-11-24libhwc2.1 refactor brightness related codeLong Ling
Move brightness related code into BrightnessController and avoid conflict between brightness change in sysfs path and drm commit. Bug: 200332096 Change-Id: I706b29aa197a9e4bb20495e1d44bce655d52a9f2
2021-10-21libhwc2.1: block brightness change if LHBM is in action am: 4745dffda5 am: ↵Long Ling
f51872ae1b am: 2b1b944b16 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/16041455 Change-Id: I75672e74cd366c20cca5273871fc11b632ba6858
2021-10-21libhwc2.1: block brightness change if LHBM is in action am: 4745dffda5 am: ↵Long Ling
f51872ae1b Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/16041455 Change-Id: I055d3fda4b8f658d83dca8bff527dd520ad8858e
2021-10-15libhwc2.1: block brightness change if LHBM is in actionLong Ling
setDisplayBrightness and setLhbm both causes display brightness changed and each go different path: sysfs or drm/kms. The drm/kms path is slower and causes wrong brightness change order. Block setDisplayBrightness when there is an LHBM action (turning on or off). Bug: 202350377 Change-Id: I4d0cd9a051e80cdb60194df7be03e681c83638d2
2021-09-27libhwc2.1: Separate plane type to support new purpose planeYongWook Shin
In case of GS101, the number of planes is same as the number of windows. But, new purpose planes are added for RCD (Round Corner Display) function from GS201 and it occurs some problems. This patch separates planes to normal planes which are used for window composition and special purpose planes. The number of windows will be calcurated from the number of normal planes. Bug: 186553202 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I1a3048c86f2479da974c6be7f63ade1342751a09
2021-09-22libhwc2.1: update panel brightness when brightness level dirty set am: ↵William Tai
e3770ba8cf am: 00bbf8af7e am: a77baa577f am: 068ff850e7 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15729947 Change-Id: I084ba45a364ed651f64971d78628baa4061e0e53
2021-09-22libhwc2.1: update panel brightness when brightness level dirty set am: ↵William Tai
e3770ba8cf am: 00bbf8af7e am: a77baa577f Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15729947 Change-Id: I65397ed1531f7c5fffab6990bb8f0d81842eb673
2021-09-22libhwc2.1: update panel brightness when brightness level dirty set am: ↵William Tai
e3770ba8cf am: 00bbf8af7e Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15729947 Change-Id: Ie7cc5e90341f7eed6e2a84497a09afd4d082d8a2
2021-09-22libhwc2.1: update panel brightness when brightness level dirty set am: ↵William Tai
e3770ba8cf Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15729947 Change-Id: Idcf2701a1a928ccf8129f7f9f4fb79adb30b48c7
2021-09-22libhwc2.1: update panel brightness when brightness level dirty setWilliam Tai
Update brightness level 0 in power off mode and clear dirty. Update panel brightness when dirty is set and clear dirty after brightness updated. Allow HBM and brightness update via drm prop only when GHBM UDFPS compensation occurs. Bug: 197479033 Change-Id: I9f3e7cde16ea3c5395881d2e69d65dc035b34087
2021-09-10FBManager: check secure flag before freeing secure framebuffers am: ↵Yichi Chen
b715d98f8f am: f2d51fd11f am: eb9b2354cb Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15767851 Change-Id: Ib346f6fd3f97ccd67f2539500b2d52a1502bf073
2021-09-10FBManager: check secure flag before freeing secure framebuffers am: ↵Yichi Chen
b715d98f8f am: f2d51fd11f Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15767851 Change-Id: I464d411e3487acb2f0425db296eaa24e9ee9d576
2021-09-06FBManager: check secure flag before freeing secure framebuffersYichi Chen
The non-secure framebuffers were destroyed together once there was no secure client target on the screen. The patch creates the check on the secure flag to prevent the newly created non-secure framebuffers from being destroyed. Bug: 195915603 Test: No black screen flickering while exiting secure playback Test: No leakage in secure buffers during the switch Change-Id: Icfbfa22a115a24074a7f8534da84dc460f9b18d5
2021-08-31Merge "libhwc2.1: Add the name of sysfs for hbm/dimming" into sc-v2-dev am: ↵TreeHugger Robot
b8b5607cb1 am: cb7837b58c Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15674416 Change-Id: I6ecc8a9e3f6274518abbbf8e427c403d1a3723a1
2021-08-31Merge "libhwc2.1: Add the name of sysfs for hbm/dimming" into sc-v2-devTreeHugger Robot
2021-08-28libhwc2.1: add hdr10plus capability am: 0614e6dec7 am: 11e5b794cdLong Ling
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15675783 Change-Id: I3becbff88ae36122a633ef8ba48699205e3bbd84
2021-08-27libhwc2.1: add hdr10plus capabilityLong Ling
Bug: 194444865 Change-Id: Id25be63b71c72545697d8f66fd9386b23594e101
2021-08-25libhwc2.1: Add the name of sysfs for hbm/dimminglinpeter
Bug: 186525213 test: can open hbm/dimming sysfs Change-Id: Iee956d784691695c2ceb1cecb39ed5097268e3f2
2021-08-23libhwc2.1: fix group id assignmentAdrian Salido
When a new group based on resolution is found, the group id is not really assigned to the mode. This causes old group id to be set for the first mode in the group. Bug: 194409470 Change-Id: I6f309029bab302f05b69ec49de2f34f0877b8748
2021-08-17libhwc2.1: constrain adjusted brightness of LHBM compensation am: a798d53371 ↵William Tai
am: c5e38598d9 am: c2d54fe454 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15582644 Change-Id: Ic5264b8d3da9f1d0e375476b9e7664921afc7c03
2021-08-17libhwc2.1: constrain adjusted brightness of LHBM compensation am: a798d53371 ↵William Tai
am: e8d4f7c081 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15582644 Change-Id: I1e00520e48d6ea6d32317c2fcfacfda3b34d94c5
2021-08-17libhwc2.1: constrain adjusted brightness of LHBM compensationWilliam Tai
Set adjusted brightness in min or max of normal brightness if out of the range. Bug: 195914325 Test: Test LHBM in min and max level of normal brightness mode. Change-Id: If32bed0b0905420738a6a87a5cafe332b6bd218c
2021-08-11Merge "libhwc2.1: add HBM IRC OFF control" into sc-dev am: 5e0e2ca238 am: ↵TreeHugger Robot
d7cdfd6b28 am: 30c5971c9d Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/14060222 Change-Id: I4cdaaefc13b98e0e07d92e53cb35751d8c05a9a2