summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
AgeCommit message (Collapse)Author
2021-08-11Merge "libhwc2.1: add HBM IRC OFF control" into sc-dev am: 5e0e2ca238 am: ↵TreeHugger Robot
d7cdfd6b28 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/14060222 Change-Id: I68f56771a7ec819ad58fde65d9b2a5d3e1b06b1e
2021-08-10libhwc2.1: add HBM IRC OFF controllinpeter
Added a IR compensation(IRC) control into the hbm mode property. "0" stands for hbm off, "1" stands for hbm on and irc on, "2" stands for hbm on and irc off. Bug: 177144573 test: check IRC OFF Change-Id: I28b6d472355007404e1c90b74c4b315186e42f8a
2021-08-06libhwc2.1: skip HBM dimming when full-screen HDR switch am: 8c5c227401linpeter
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15443818 Change-Id: I14e267fbf67c79d94a371a65a79f1395f207512f
2021-08-06libhwc2.1: skip HBM dimming when full-screen HDR switchlinpeter
Skip the HBM dimming when full-screen HDR switch. Bug: 194655895 test: check dimming when full-screen HDR switch Change-Id: I036f1764f5edcc009ea856510dfb579998c87abd
2021-07-29Merge "libhwc2.1: set hbm on by atomic commit if dim SDR transition" into ↵TreeHugger Robot
sc-dev am: ebcda1828a Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15395844 Change-Id: Id1571025e216b426d419a03874391afe6462772c
2021-07-29Merge "libhwc2.1: set hbm on by atomic commit if dim SDR transition" into sc-devTreeHugger Robot
2021-07-29libhwc2.1: set hbm on by atomic commit if dim SDR transitionlinpeter
The hbm on by atomic commit is only for synchronization with dim sdr layer transition. Otherwise, hbm on goes to sysfs patch. Bug: 194538187 test: lhbm on/off after hbm on/off Change-Id: I56ee971de54ca521e755a27a0dcb97887935671b
2021-07-29Merge "FBManager: check color format for buffer cache" into sc-dev am: ↵TreeHugger Robot
fa798da1d0 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15391110 Change-Id: I271a98dbd9e953fa30e94fbfc75969afeb309a06
2021-07-29Merge "FBManager: check color format for buffer cache" into sc-devTreeHugger Robot
2021-07-29Merge "Revert "libhwc2.1: LHBM On Constraint"" into sc-dev am: cf3f80275bTreeHugger Robot
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15389252 Change-Id: I9b987d49691c41b172ebf86a0333e2f4066b73a4
2021-07-29Merge "Revert "libhwc2.1: LHBM On Constraint"" into sc-devTreeHugger Robot
2021-07-29Revert "libhwc2.1: LHBM On Constraint"Nancy Wu
This reverts commit 46ed0bcd8cdc7f31b1016ccc8f5861d0f660e07e. Bug: 191426007 Reason for revert: regression issue LHBM not work Change-Id: I5225b3db371fb551ad060b1a4dde30af429925bc
2021-07-26FBManager: check color format for buffer cacheYichi Chen
M2M MPP tends to reuse destination buffers when conditions allow. To avoid the wrong configurations in FBID cache, FBManager checks the color format for buffer cache. Bug: 194369138 Test: G2D can work correctly when intermediate color format is changed. Change-Id: Ib78e714265368aca2255ce211c11102b27a66685
2021-07-23Merge "libhwc2.1: LHBM On Constraint" into sc-dev am: 2cf4b4e975TreeHugger Robot
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15093523 Change-Id: Ie0aad2ef525c8009c299392cd22dff6607156a79
2021-07-23Merge "libhwc2.1: LHBM On Constraint" into sc-devTreeHugger Robot
2021-07-23libhwc2.1: LHBM On Constraintlinpeter
Only allow to set LHBM on when state ON and max refresh rate. And force to turn off when Doze mode. Bug: 191426007 Test: check lhbm/refresh rate Change-Id: Ibf884294272abc1af947a322b9694061e06d9834
2021-07-23Merge "libhwc2.1: the dimming usage feature" into sc-dev am: 67e193f79eTreeHugger Robot
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15259413 Change-Id: Ia8afb9ac1534a59343d848da46d74a36da64910f
2021-07-23libhwc2.1: the dimming usage featurelinpeter
Use hw dimming for smooth brightness transtion. nomral: enable dimming hbm: enable dimming only for hbm transition none: disable dimming Bug: 190806064 Test: dimming on/off Change-Id: I5d8c167c2e46c0ea740d104cfc3bcefe20717918
2021-07-19Merge changes from topic "b/192989878" into sc-dev am: fe07addb8eWilliam Tai
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/15273538 Change-Id: I98626ecac8bf0d82ebf7201c565ebf8612ba8384
2021-07-14libhwc2.1: Add color mode codesYongWook Shin
Some color mode related codes are added. It handles color mode configuration which device is supported. Bug: 192989878 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I697c5dcd329cbecf79640ea7762eee44f1cfd4bb
2021-07-14libhwc2.1: Add dataspace check codesYongWook Shin
Dataspace check codes are added. It checks dataspace configuration which device is supported. Bug: 192989878 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I6cf1bdf9d0786457edb57ced7e5c33989ed2ae56
2021-07-13libhwc2.1: Allow report vsync according display IDMidas Chien
Bug: 188811178 Test: refresh rate switch Change-Id: Ib8dc5efc25ebb0f29e3a7fcecb4fec7e27ff6a3c
2021-07-12Merge changes from topic "187763532" into sc-devLong Ling
* changes: libhwc2.1: enable refresh rate mipi sync via drm prop libhwc2.1: pass HDR full screen status to displaycolor libhwc2.1: enable smooth display compensation
2021-07-12libhwc2.1: Release FBIds of secure framebuffer once they are finishedYichi Chen
The secure buffers should be released since there is a size limitation on secure buffer allocation. However, FBManager cached the secure buffers from the client target longer since there was no signal to destroy client buffers. The patch creates the new signal to destroy FBIDs of secure frame buffers once there is no secure client target on the screen. Bug: 193041969 Test: atest GtsMediaTestCases Test: secure buffers is freed once secure video playback is terminated Change-Id: Ic28b7a540215cc8efffffa3bdf44bebcdb80e7ba
2021-07-09libhwc2.1: enable refresh rate mipi sync via drm propLong Ling
Enable refresh rate mipi sync via drm prop only when RR compensation regamma exists. Bug: 187763532 Change-Id: Ia368f656640bad32d33844a5ce3e32a8f70fe5e7
2021-07-01libhwc2.1: Handle TUI eventsHyunKyung Kim
This patch refreshes frame or skipes frame update when tui event is generated. Bug: 157272869 Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com> Change-Id: I92affee60d02d8570378e2f2275ccd0a46b063ec
2021-06-21libhwc2.1: Modify readback buffer sizeYongWook Shin
It sets full size of readback buffer as strides instead of display resolution because buffer can have padding bytes. Bug: 175422660 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: Ie21810c5529a635f3e7c63f1b08d65f86c03e9e8
2021-06-21libhwc2.1: Force ModeSet when it is requiredYongWook Shin
clearDisplay with needModeClear parameter clears ModeSet. It forces to do Atomic Commit for ModeSet when next display is working. Bug: 175422660 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I148b7e3cf1712b4a3b446d39d2da8049f09d30db
2021-06-21libhwc2.1: Disable readback when it is not requiredYongWook Shin
When readback buffer is required, readback properties should be set when Atomic Commit for frame update is processing. When this readback buffer is not required, readback properies also should be reset. Bug: 175422660 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I8bcef3d844ac09a05ebe6e9fec1dee9416fcd6a4
2021-06-21libhwc2.1: Fix bug in overwriting error informationYongWook Shin
Error information of DrmModeAtomicReq could be overwritten when drmModeAtomicCommit() returns error in the previous code. This patch doesn't call destroyOldBlobs() in DrmModeAtomicReq::commit() to fix this bug. DrmModeAtomicReq destructor always calls destroyOldBlobs() so we can remove it from DrmModeAtomicReq::commit(). Bug: 175422660 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Change-Id: I1a1ee3e33231c3ce2d9da8ea9803954fd4a2d78f
2021-06-21libhwc2.1: Disable DQE if readback is requestedHyunKyung Kim
This patch disables DQE if readback is requested except readback is requested by HWCService. setDisplayColorSetting() call is skipped as well in this case. Bug: 175422660 Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com> Change-Id: I9332ae351834f9c7241163214cbd4f5d148827a3
2021-06-21Merge "libhwc2.1: Don't reset config state while desired config is pending" ↵TreeHugger Robot
into sc-dev
2021-06-21libhwc2.1: Don't reset config state while desired config is pendingKen Huang
VsyncWorker may reset config state when a desird config is still pending in main thread. So we should reset the config state only when the state is REQUESTED. Bug: 187151493 Test: swich refresh rate quickly, suspend/resume, AoD Change-Id: I2c3186432e4aa93e59007de7700d360f5eecddd6
2021-06-16libhwc2.1: clean up unused layers when caching too many layersYichi Chen
FBManager can cache too many fbIds with the exhaust of iommu space for drmdecon. To avoid the system being unstable, FBManager will clean up unused layers when the layer count exceeds the limitation. Bug: 190541937 Test: Use test binary to simulate layer leakage Change-Id: If3e99a4398cf64406f378cea35f266eadf20832b
2021-06-08Merge "libhwc2.1: pixel-display V2 interface implement" into sc-devTreeHugger Robot
2021-06-03libhwc2.1: pixel-display V2 interface implementlinpeter
Bug: 184768835 Bug: 185087460 test: test lhbm function call Change-Id: I924d162713d95954855c706287f10f8cb696f763
2021-06-02libhwc2.1: clean up fbId cache when size exceeds the limitation.Yichi Chen
SurfaceFlinger cache is allocating one new buffer everytime to cache layers. Before the problem is fixed in the SurfaceFlinger side, the patch cleans up the newly created fbIds when the cached size exceeds the limitation. Bug: 189203448 Test: Trigger SF cache in YouTube and Camera Change-Id: If4f8c0920abeb3f5c6c8331ba8cb433ef75e0bf8
2021-06-02libhwc2.1: support fbId cache for solid color layerYichi Chen
fbIds for solid color layers should be cached and freed properly to avoid leaking. The patch supports fbId cache for solid color layer. Bug: 189203448 Test: Stress test on YouTube Change-Id: Ic910de7e5519ccb6c5cf4685f9d477e450303e22
2021-06-02libhwc2.1: bind FBId with the life cycle of a layer and its bufferYichi Chen
The previous method to bind FBIds with handles was unstable because the imported buffers were deleted without any awareness of underlying HWC implementation. To make a robust mechanism, we bind FBIds with unique buffer ids to avoid the collision in FBIds or handles. Bug: 185958099 Test: Stress test on livewallpaper Change-Id: I48c8f6cf044ef48fe2c0886ac9430e2313e4765f
2021-05-19Merge changes from topic "hbm_smooth" into sc-devTreeHugger Robot
* changes: libhwc2.1: change the hbm mode and brightness update sequence libhwc2.1: reset DimmingOn/HbmOn when power off
2021-05-12libhwc2.1: Remove HBM for HDR handlinglinpeter
Since DisplayManager handles HBM for HDR, remove the HDR case from HBM control in HWC. Bug: 187673576 test: check HBM HDR use case Change-Id: I6f346c5420e092513318f01244660e897f375635
2021-05-12libhwc2.1: change the hbm mode and brightness update sequencelinpeter
Followed the hw panel sequence which updates the hbm mode before brightness level. Bug: 184120990 test: check the brightness change Change-Id: I13724b805aa9a3d32e6e8b33be050067ddbc8129
2021-05-12libhwc2.1: reset DimmingOn/HbmOn when power offlinpeter
The dimming/hbm of panel will be reset to off after power off. It has to configure DimmingOn/HbmOn again when power on. Set DimmingOn/HbmOn to false when power off. Bug: 184120990 test: check the value of panel reg Change-Id: Id8ce7a3aae8a91a6585eb36de22afefe9a17db69
2021-05-11libhwc2.1: enable LHBM compensationLong Ling
Enable LHBM mipi/frame sync to compensate the luminance difference Bug: 184096624 Change-Id: Ic84ca018933f042692e656a73632db56bc2968a6
2021-05-04libhwc2.1: add lhbm drm property pathlinpeter
LHBM has the frame sync synchronization requirement. Added the drm property path for LHBM. Bug: 185086850 test: check lhbm on/off Change-Id: I9acda2e99ebf60a42bdc92da1b61047552bcd6d0
2021-04-29libhwc2.1: GHBM synchronization updateLong Ling
The way to trigger next frame (HWC2_CALLBACK_REFRESH) can not guarantee the next frame arrvies timely. But the synchronization between mipi command and frame content depends on each frame arrives on time. HWC now handles the process in a synchronous way. Bug: 184857029 Test: Unlock device with UDFPS global hbm solution. Change-Id: Ie3c063fa81fba7cf88b2a5aae9ca6332772afb5c
2021-04-29libhwc2.1: refactor update color settings logicLong Ling
Move color data update logic in one function. Bug: 184857029 Test: Verify display color is correct in Natural mode. Change-Id: I70ccd71cec562cab093e69375e72d2851684e81a
2021-04-29libhwc2.1: setActiveConfig during device initLong Ling
Driver is in fully ready status after this call. Bug: 186446401 Test: Reboot and no failed reading panel serial in displaycolor log. Test: Device could switch to 60/90/AOD mode. Change-Id: I4edd4b263c0beacf33171773d90be71b30a16eee
2021-04-21libhwc2.1: Cleanup framebuffer outside of the lockYichi Chen
FramebufferManager::cleanup sometimes took 100ms and more. Deferring the action of drmModeRmFB from the critical session can improve the performance in HWComposer. Bug: 184845481 Test: stress test on FramebufferManager::cleanup Test: Reboot test overnight Test: Simulate the long latency in ~Framebuffer() Change-Id: I506d77335768f0c2b97735440425cbe88789374b
2021-04-06libhwc2.1: Fix the memory corruption in list from race conditionYichi Chen
A race condition is detected between getBuffer and cleanup where the same element in mCachedBuffers will be deleted twice. Bug: 170327170 Bug: 183912416 Test: stress test on FramebufferManager::cleanup Change-Id: I4e1af64373982356ce4c4335be73dd06a4f88bae