summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
AgeCommit message (Collapse)Author
2023-05-16Merge "FBManager: use dedicated map for caching M2M secure layers" into udc-devMidas Chien
2023-05-15FBManager: use dedicated map for caching M2M secure layersMidas Chien
The quota of secure memory is rare and limited. HWC should release it once it is inused quickly. Itʼs easier to use a dedicated map to control the life cycle of cached M2M secure buffers. Bug: 278836996 Test: play secure video with various resolutions and rotate screen Test: play video with various resolutions and rotate screen Test: camera, record, chrome, AOD Change-Id: Ic7a83773b43fcd27737ff514cf67754fdb1750d0
2023-05-12libhwc2.1: disconnect link between plane and crtc after power onjoenchen
HWC cannot just assign a plane’s crtc from crtc-0 to crtc-1 directly, and it must turn off the plane first Bug: 277874775 Test: enable/disable DDC in translation app Change-Id: I7771821fc618528f63610449c506ed93ec8a8ddc
2023-05-10libhwc2.1: skip to disable unsupported planeYongWook Shin
When disable unused planes, the planes which are unsupported by CRTC should be skipped to avoid abnormal configurations. Bug: 238373481 Bug: 263989425 Test: power on/off display Change-Id: Ib14f03446b855d87c5f660775c6e803abb596339 Signed-off-by: YongWook Shin <yongwook.shin@samsung.com> Signed-off-by: Petri Gynther <pgynther@google.com> Merged-In: I627afe439e0a744532ff3aa4cf094dc4fd9d4b1d
2023-05-10Merge "libhwc2.1: skip async_off if multiple displays are enabled" into udc-devWeizhung Ding
2023-05-10libhwc2.1: skip async_off if multiple displays are enabledWeizhung Ding
Bug: 271818029 Test: display on/off Change-Id: Id1de11148e988fc3c6a831c40c6fc0de42aa04b8
2023-04-25libhwc2.1: actively set lhbm desired refresh rate during lhbm periodShiyong Li
- set lhbm desired refresh rate at enabling lhbm and restore SF desired one at disabling if needed. - always notify SF with it's desired Vsync if SF's refresh rate != lhbm's Bug: 250979028 Test: udfps auth with SmoothDisplay=on/off, check perfetto trace Signed-off-by: Shiyong Li <shiyongli@google.com> Change-Id: If011dbf12c1f979a50988cc375e74c7f53617d68
2023-03-10Merge "libhwc2.1: allow EDID descriptor to be modified" into udc-devJeremy DeHaan
2023-03-06libhwc2.1: allow EDID descriptor to be modifiedJeremy DeHaan
Allow the EDID monitor descriptor to be modified so that different panel revisions can have unique display ID's calculated. Bug: 217472351 Change-Id: I162778e6e30b2aac872d8070ce94b90c44e0619b Signed-off-by: Jeremy DeHaan <jdehaan@google.com>
2023-03-02hwc3: add support for refresh rate indicator callbackWiwit Rifa'i
This will add support in HWC to expose the refresh rate in panel to SF using HWC3 callback API so that SF can update the refresh rate overlay indicator to the actual refresh rate in the panel. HWC will monitor the panel refresh rate based on some sysfs nodes. Bug: 267825022 Test: enable refresh rate indicator, wait for idle, AOD Change-Id: Ibc80d66eae6b21c3cf84d35fa819e97ccc509ede
2023-03-01libhwc2.1: keep refresh rate unchangeable if LHBM is enabledShiyong Li
- block refresh rate switching before enabling LHBM and unblock after disabling. - set 1 second timeout to unblock in case disabling action is not called on time somehow. Bug: 268991972 Test: lock/unlock screen by fingerprint Change-Id: I5703d89ca8482a3ff7b70795705ac01fd3c2b8d2 Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-28Revert "Revert "libhwc2.1: wait for peak refresh rate via sysfs node""Shiyong Li
This reverts commit 334e1fee2f8204c8b30714291d60c19077e6df9f. Bug: 268991972 Change-Id: Ie0d344821b407ca0c3896dc5dc2a4f6afdf68eaf Signed-off-by: Shiyong Li <shiyongli@google.com>
2023-02-08Merge "Revert "libhwc2.1: wait for peak refresh rate via sysfs node""TreeHugger Robot
2023-02-06FBManager: limit max cached buffer size for g2d handle secure bufferMidas Chien
Secure buffer size is limited, we should release FBIds of secure buffer once ther are finished. Limit max cached buffer size for g2d to handle secure buffer temporarily to avoid OOM. In future we should release it once G2D has release secure buffer. Bug: 261675967 Test: play secure video and switch composited between G2D and DEVICE Change-Id: I303f908599cb274228bc43516945b2a712f5d093
2023-02-03Revert "libhwc2.1: wait for peak refresh rate via sysfs node"Long Ling
Revert submission 21117545-rr_sysfs Reason for revert: b/267569180 Reverted changes: /q/submissionid:21117545-rr_sysfs Change-Id: Ifaaee60913ffc32e8ae9ab7acec327a968468ac7
2023-01-27libhwc2.1: wait for peak refresh rate via sysfs nodeLong Ling
Refresh_rate sysfs node will signal after the mipi commands for refresh rate have been sent out, which means the next frame scanned out by next TE will be displayed at the new refresh rate. Note there are cases panel needs more time to reach the new refresh rate. Not a concern at this time (neither lhbm nor compensation). Bug: 263821118 Change-Id: I706fce33ce0eb9412b196cb63089cbc03044be30
2023-01-13Merge "libhwc2.1: close unused RCD plane based on the respective display"TreeHugger Robot
2023-01-10libhwc2.1: close unused RCD plane based on the respective displayWeizhung Ding
HWC should close unused RCD plane based on the respective display Bug: 227584297 Test: check log Change-Id: Idf4a6744a8a75977abbc48fd45ae34405483ab3d
2022-12-27libhwc2.1: support display panel operation rate featureShiyong Li
Bug: 202181466 Signed-off-by: Shiyong Li <shiyongli@google.com> Change-Id: I3362c868bdee34369513b2a6ccbc9abe5b8beb59
2022-12-16Merge "libhwc2.1: do not send change resolution commit before 1st frame ↵Joen Chen
update" into tm-qpr-dev am: 584bce05da am: beca899491 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/20641143 Change-Id: Id560be0b1489c6526bc112b983d1fb7c02b606cd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-12-13libhwc2.1: do not send change resolution commit before 1st frame updatejoenchen
Some panels requires the resolution change(pps) commit and the frame commit are in the same VSync, so HWC skips changing resolution commits before 1st frame update. Test: boot to home screen Bug: 261354714 Change-Id: Ic7eac3eca480c11337f1a2bd4aaa0d830ee24d25
2022-12-12libhwc2.1: update some traces to include display name and IDWiwit Rifa'i
All counter traces in HWC will be updated to include display name and ID with format "<old_trace_name> for <display_name>(<display_id>)". Some function traces will also updated to include display name and ID with the same format, e.g. for validateDisplay and presentDisplay. Bug: 245533789 Test: Perfetto trace Change-Id: Id8f7d74241431ebdc2ca5578e150df7b210d47be
2022-11-24Merge "HWC boots in FHD resolution" into tm-qpr-dev am: 25e1343581 am: ↵Joen Chen
8b1e213b80 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/20337006 Change-Id: I6aa488214f538cd8ac36f373bb31cc876d3699fe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-22HWC boots in FHD resolutionjoenchen
It can avoid resolution switching during bootanimation in the most cases when the default resolution is FHD. Test: boot to home screen Bug: 256745308 Change-Id: Iec6b30c671666471eae21174224bf6094c77bf35
2022-10-31libhwc2.1: only replace desired mode if it has changed am: 2d9696248e am: ↵Midas Chien
cda5609834 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/20206687 Change-Id: I608c9d86060dc083705674f80a94a3c8fe898ee9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-25libhwc2.1: only replace desired mode if it has changedMidas Chien
There is an issue to set crtc MODE_ID property to 0 when desired mode doesn't change. Add check to only replace desired mode if it has changed. Bug: 251697081 Test: fps switch, AOD in/out, screen on/off, rrs Change-Id: I8a062e5d4396bbeb33ba0f2ff4b97d49627a4936
2022-07-29libhwc2.1: support display-off asynchronously am: 0ec923a4f6 am: 45f7cd7c78Weizhung Ding
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/19442449 Change-Id: I36aaee82669a2ae64aec7c1f13dd4ae91c928c42 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-27libhwc2.1: support display-off asynchronouslyWeizhung Ding
Support display-off asynchronously to improve the latency. Bug: 204324493 Test: fold/unfold and perfetto-traces Change-Id: I0b078cfd686ca1c4f966f2251fbaa89f0730e9ad
2022-07-26Use namespace to identify the predefined array per SOCShiyong Li
Bug: 228647959 Signed-off-by: Shiyong Li <shiyongli@google.com> Change-Id: I2442cbf1ae2e589795630ce9f5279f0dc640c29c
2022-07-06libhwc2.1: get vrr switch transition duration from driverMidas Chien
Get refresh rate switch transition duration from driver to calculate refresh time and config applied time. Bug: 237631661 Test: VtsHalGraphicsComposer3_TargetTest Change-Id: I7fedf86701c660189c269b29ad6862afa317e2b5
2022-06-22Merge "libhwc2.1: skip mipi sync in DOZE mode" into tm-d1-devLong Ling
2022-06-22hwc2.1: check sysfs node after request lhbm on or off am: feb967d0a7Long Ling
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18906146 Change-Id: I871c9f18ebda6d3a1e559195336bdd8ae0825fb7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-21hwc2.1: check sysfs node after request lhbm on or offLong Ling
To ensure lhbm have enough time to reach peak brightness. Bug: 233976672 Test: check function call sequences in trace file Change-Id: I702f2c684d8625d8d23488d13b217be08c1bb61b
2022-06-21libhwc2.1: skip mipi sync in DOZE modeLong Ling
panel driver does not support mipi sync in DOZE mode. mipi sync requires to batch all mipi commands to send to panel. But for DOZE to ON transition, we need to insert sleep between mipi commands. Bug: 236388323 Change-Id: I628cff0f877ba22dc10734d9f9da202849401071
2022-06-09libhwc2.1: sync ghbm/dbv and buffer for brightness jumpLong Ling
For mixed composition, if brightness mipi commands and frame are not synchronized, there will be a dark or white flash when there is a brightness jump. It happens when HDR become visible or gone and the brightness animation is disabled. Bug: 220962789 Change-Id: I2993562a2c69351f561f932305f88bfb4a2b3cf1
2022-06-09Merge "libhwc2.1: correct config state and vsync period" into tm-dev am: ↵TreeHugger Robot
7324e6459d Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18753590 Change-Id: Icceb462c818166158f27e36a342aaccc67aa2783 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09Merge "Revert "Revert "libhwc2.1: wait for peak refresh rate before enabling ↵TreeHugger Robot
LHBM""" into tm-dev am: 89d435a5f5 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18756416 Change-Id: I60396e098fb5df0c6121684ee4268fcd1556177c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09Merge "libhwc2.1: correct config state and vsync period" into tm-devTreeHugger Robot
2022-06-08Merge "libhwc2.1: add roi calculation for display RRS" into tm-d1-devSusi Su
2022-06-08Merge "libhwc2.1: histogram screen refresh control" into tm-d1-devSusi Su
2022-06-08Revert "Revert "libhwc2.1: wait for peak refresh rate before enabling LHBM""Chris Lu
This reverts commit 558f1a38e3a97629761fe013bf87151f66b356f4. Reason for revert: reduce the FR by ag/18753590 Change-Id: I0865940dc2a1284669c2f1d82a0d5c6bd5fad6cc
2022-06-08libhwc2.1: add roi calculation for display RRSsusi_su
This patch calculates roi for histogram sampling accoring to display RRS mode setups Bug: 233136164 Test: local test with a hist_client code by setting different display resolution switch Change-Id: I35aab6b776b1687c8ae1d37ca439a9409205932c
2022-06-07libhwc2.1: histogram screen refresh controlsusi_su
Use simple frame counter, and record the histogram sampled frame counter value to control screen When the 2 values differ, issue invalidate() Bug: 229578705 Test: local test with a histogram aidl client, sampling histogram continuously every 50ms, select Setting , clicking power on/off, also keep the screen on for a while Change-Id: Ie23387d8f2d3271867f2f5dd6b44cee359c1282d
2022-06-07libhwc2.1: correct config state and vsync periodKen Huang
If there is a pending config in AOD mode or change to same config rapidly, the config state will be REQUESTED. It should reset to NONE in those cases. Besides, vsync callback may get incorrect mVsyncPeriod if it refers to mActiveConfig while quickly switching fps. To avoid it, refer to mActiveModeState to update mVsyncPeriod. Bug: 232044740 Test: Suspend/resume, AoD, quickly fps switch Change-Id: Ifc8989256a9b6f6633abc2d4d74124874493c6c0
2022-06-02Merge "Revert "libhwc2.1: wait for peak refresh rate before enabling LHBM"" ↵NT Tsai
into tm-dev am: 0876d4aae6 Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18715146 Change-Id: I216275595bfa65173b901447d3e0df1cc4952301 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-02Revert "libhwc2.1: wait for peak refresh rate before enabling LHBM"Chris Lu
This reverts commit b9f0ab612686bb322f978da70486f6f3ce1d62f2. Reason for revert: sometimes fail to check the peak Change-Id: I37c7760c68bf1da8c5e13a4fd07c8bebf4729571
2022-06-01libhwc2.1: wait for peak refresh rate before enabling LHBM am: b9f0ab6126Chris Lu
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18655759 Change-Id: Ied0bda8f0f8969878e30036e83043b60cc726fcc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-01libhwc2.1: wait for peak refresh rate before enabling LHBMChris Lu
We have to switch to the peak refersh rate (e.g. 90/120Hz) before enabling LHBM due to panel constraints. The peak refresh rate is set by the fingerprint but it doesn't make sure we are running at the peak. Wait for the peak according to mConfigRequestState and mVsyncPeriod to guarantee we can enable LHBM. Bug: 233145265 Test: use fingerprint to unlock the device, auto test by QMC team Change-Id: I794ca743101f3463596a25bde0127ec9920a3658
2022-05-24Merge "RRS: use default boot mode from driver during the boot time" into ↵Midas Chien
tm-d1-dev
2022-05-24RRS: use default boot mode from driver during the boot timeMidas Chien
Composer starts before persistent property ready. Therefore composer doesn't know user selected boot mode during composer initialization. If default boot mode and user selected boot mode is different, resolution will be switched twice at composer booting and DMS starts. To avoid this problem, get boot mode from driver for the first composer booting. Also remove vendor prop to only use persist prop to control config. Bug: 232721840 Test: boot w/ and w/o user selected configs and check the resolution Test: boot w/ and w/o default mode and check the resolution Change-Id: I6940a49354d2851d23656d2ee67bce802e7b9bd8