Age | Commit message (Collapse) | Author |
|
Adds null display support at HWC level. HWCDisplay will internally use
DisplayNull object as display_intf_ when in null display mode via sdm
debug property
Change-Id: I160caff9c354e23e6c5849b661dc3c3bf6c41d20
CRs-Fixed: 2186932
|
|
Calibration tool issues binder call to display solid fill color onto
screen for calibration. Acquire scope lock to ensure that there is no
race condition between binder thread and display thread w.r.t solid fill
color. Block the solid fill binder call with a delay to ensure that
solid fill color is displayed.
Change-Id: Ic0ee320e24dc662213531362b124ff7bbfdf4309
|
|
Fix cancel_lock condition while coming out of validate. HWCDisplay
can return Error::HasChanges code which is not an actual error
Change-Id: Id5886b27baaba0e34fa3a0e8d919da7ac8a9e495
CRs-fixed: 2175020
|
|
|
|
ComposerClient calls RegisterCallbacks() with nullptr to deregister
callbacks when SF dies. Allow this operation to avoid crashes since
HWC is still active.
Change-Id: I431d232130ec8cfb06cc40e81ef4e733496aa442
CRs-fixed: 2165931
|
|
Remove unused code surrounding fps calculations from qdutils and hwc
Change-Id: I1d78a26fdd582ae184fd7367cf692e472283fee1
CRs-fixed: 2157422
|
|
Currently calls forwarded to CallDisplayFunction and CallLayerFunction
are not protected via a lock, causing races. Add scope lock.
Relax sequence locks in SetPowerMode, Dumpsys and Create/Destroy layer
to scope locks to avoid locks ups in cases where these get called from
the same binder thread that called Validate.
Change-Id: I22bfc13b61dc308208cb20e8b2f3c2f76dbcafd4
CRs-fixed: 2156131
|
|
|
|
color inversion effect is cleared when QDCM display mode is set.
restore color transform matrix when QDCM mode is set.
Change-Id: I033422f4c6e97f28536498a03d55c79f5340019a
CRs-Fixed: 2120150
|
|
1) Enable dynamic debugging in DRM
2) Add more Qservice debug categories, add corresponding kTags
3) Use ALOG for messages before core creation and after it is destroyed
4) Categorize existing logs correctly
5) Add more logs
Change-Id: I3a9907900c6546adca907ecf720a78649fdc800b
Crs-fixed: 2146757
|
|
|
|
|
|
Composer keeps on calling refresh if this flag is set to true
and SurfaceFlinger can not reconnect to it after restart. So
clear this flag in case it is left set when sf goes down.
Change-Id: I65119d567c0a3b65df22f10067993e39d8426523
|
|
SDM Dump() follows a DumpImpl based design that prevent it from
being called via a lock held from HWC. This leads to synchronization
issues since SDM's Dump() method accesses original layer stack
members. This change removes the unnecessary DumpImpl based design
and routes the flow to SDM's Dump() method with HWC's Dump() method.
Change-Id: I9f255c061a2509a4e9d8c6bd446389df3e8f6549
CRs-fixed: 2139697
|
|
Need to handle pending external display connection when HDMI
is connected during wfd session.
CRs-Fixed: 2082617
Change-Id: I07a10127409b3f24e8d38b624d9e1b222a51b0a3
|
|
CRs-Fixed: 2077191
Change-Id: I23066befa5034523788a78edac9b335494d43019
|
|
|
|
|
|
|
|
|
|
Change-Id: If7c888656cddd5b7f62e138b50e6f2bb69550376
Crs-fixed: 2114346
|
|
Since hotplug displays are bottom up, send HPD
in right order based on type of hotplug event.
In connect, create display->refresh->send hotplug
In disconnect, send hotplug->refresh->destroy display
Change-Id: I8a87964555e17609687934d8fa7d4ad8bf2e530a
CRs-fixed: 2129671
|
|
|
|
- Reset need_invalidate_ after refresh to avoid multiple refresh calls.
Change-Id: I8ce7ef4c6a75527d4085962bc3242939fc73b6cb
CRs-Fixed: 2133630
|
|
- Validate the input parameters to hwc2 and check if they
are with in the allowed bounds.
- On the getter functions check the out counts before populating
with output parameters
Change-Id: Ifd41aa4d4a0b08e521fabfe54f308a59622d109c
Crs-fixed: 2114346
|
|
|
|
|
|
Add input sanity checks and return appropriate error codes.
CRs-Fixed: 2114346
Change-Id: I09cd043e3bc8289e15a922e4c967dc5c66e49c17
|
|
- Introduce use of GetDozeSupport
Change-Id: Ic7edcd14b0c390fbd58f6be05b983a40b75c90eb
CRs-Fixed: 2114346
|
|
|
|
|
|
|
|
Validate values read from input parcel as part of handling of
few qclient methods
Change-Id: Icf928f409a5c2ac76a73e95de58cb0ebc59d24d5
CRs-Fixed: 2114346
|
|
Change-Id: Ib7a2ce818b1e6f5203f03138a95b2754ff446127
CRs-Fixed: 2114346
|
|
1. Add functionality in qdutils to get the DP test config from the
sysfs node.
2. Add support to generate ColorRamp, ColorSquare and Black and White
vertical line test pattern for 18/24/30 bpp DP display
3. Create layer stack with test layer and ignore all layers from
the SF framework.
4. Generate the pattern with 18/24/30 bpp based on pattern type
and bpp read from sysfs node and send it to DP interface.
5. Add support to calculate CRC to validate the color
pattern.
CRs-Fixed: 1107663
Change-Id: I49469d94a96ada729d24d7cc03a7e79f2af6edc0
|
|
Fix a small gap in locking on event handling where validation
state was reset after lock scope was over. Also validation state
was being reset for all displays even if event was for primary.
This is incorrect since lock was only held for primary. Move
validation state reset to be per display
Change-Id: I24a8930d536a906d2b8adba35833774c03b59933
CRs-fixed: 1114808
|
|
Dpps should wait opening driver before composer comes up.
Add a wservice binder call to query composer init status.
Add util function to block dpps until composer is up.
Change-Id: I82c025011e23a0b159ef2449b00b868a365d681a
CRs-fixed: 2102579
|
|
Revert "hwc2: Allow non-atomic execution of validate and present apis"
This reverts commit 6c26ba95607418a39f0b82ec1212df0e6e226852.
Add per display granular locking in HWC to align with the Validate,
Present call sequence from SF, that happens independently for each
display and possibly on different threads.
Change-Id: Ia092d7f6e6dc26ad22286a93de7b663e8bdf23d0
CRs-fixed: 2095334
|
|
- On boot if HDMI is connected, we are dropping
the hotplug event which leads to SF crash
CRs-Fixed: 2085392
Change-Id: I6a3025bc50db5a302079614c49bd850a3f71ce10
|
|
- Register for UEvents before core creation to support bootup
with external connected. Drm driver resends hpd on device open.
- Break on first match config for user selected video format.
- In HPD event, explicitly check for DP string for now.
Change-Id: I18917097c3077fbfcb30cec3ce345487eec03318
CRs-fixed: 2017766
|
|
1. Set HWC2_CAPABILITY_SKIP_VALIDATE cap in GetCapabilities api.
2. If HWC2_CAPABILITY_SKIP_VALIDATE cap is exposed by HWC HAL, then
SF just calls PresentDisplay api. It is the responsibility of HWC
HAL to request for ValidateDisplay, if it is required. If the cap
is not exposed by HWC HAL, then there will be ValidateDisplay call
followed by PresentDisplay.
3. In case of Surface Damage update on a layer, SDM needs a Validate
call to program SDE driver for Partial Update feature.
4. SDM needs Validate call to enter in safe Mode for use cases like
Idle / Thermal fallback, HDMI and Virtual Connect/Disconnet, etc.
5. In case of layer buffer geometry, metadata or secure attributes
change, SDM needs Validate call to program the SDE driver.
6. SDM needs Validate call if GPU tonemapping is required on a layer
during HDR Video playback.
7. Read user defined underscan width and height, when the External
display gets created and initialized.
8. SDM needs Validate call for few APIs which are exposed by the Binder
Interface or by HWComposer APIs, since they need re-configuration of
SDE driver or they modify Panel / LayerMixer / Display configuration.
9. The feature is enabled by default. "sdm.debug.disable_skip_validate"
system property can be set to '1' to disable the feature.
CRs-Fixed: 2071632
Change-Id: I68f0db3af16afa4ad4eb789cd1f6b12caf6381e4
|
|
- Make changes as per the hwc2 header to return correct
error codes.
- Check for comp types in SetLayerColor and
SetCursorPosition and error out if they are not
as the expected.
- As per the HWC2 header, SetCursorPosition cannot be
called after validateDisplay, hence return error when
its called after validate and before present.
- Handle Create and Destroy Virtual Displays accordingly.
- Includes 017ba1f and 5e5da2(partially) from lnx.3.9-rel.
Change-Id: I02814a266cf9d03017cdbb454233540cd01b1fed
Crs-fixed: 2068942
|
|
Change-Id: I239670334560b9db4ef781aac2612a86ea4363a9
|
|
Surfaceflinger registers callback functions to be called from
hwcomposer on specific events like hotplug, vsync and screen refresh.
since surfaceflinger and hwcomposer are two different processes that
can run asynchronously. This causes hwcomposer to send an event to
surfaceflinger before surfaceflinger registers callback and results
in undefined behavior. So wait for callbacks to get registered by
surfaceflinger and send an event to surfacelinger.
Change-Id: I288e4d7dde8179cb4a119cdedad2877344c06dae
CRs-Fixed: 2085392
|
|
|
|
|
|
|
|
Handle the error returned by gralloc open and gralloc close in Init()
and Deinit() functions of HWCBufferAllocator to avoid NULL pointer
dereferencing.
Change-Id: I56dcb0d35747d98eabb1ce9408b98e5b55aa3417
CRs-Fixed: 2066748
|
|
Fixes regression from 6c26ba95
Change-Id: Iedaa2cb253bfcc286c9b2764ef510047edd5dcec
|
|
Bug: 64020849
CRs-Fixed: 2082171
Change-Id: I2e9386e953ed764eb7f5924ed599a79fb5b3d911
|