Age | Commit message (Collapse) | Author |
|
Skip hotplug uevent handling if the client (SurfaceFlinger) is not
connected. The equivalent of hotplug uevent handling will be done once
when SurfaceFlinger connects, at RegisterCallback(), where the latest
connection states of all displays are read, so no uevent is lost.
CRs-Fixed: 2421144
Change-Id: I5ec9f90d9f44dc752a5edf8525868853ae4d7ad4
|
|
|
|
|
|
|
|
|
|
* Create and hotplug pluggable (e.g., DisplayPort) displays after a
commit has succeeded on previous pluggable displays. This allows the
driver to recalculate and return updated modes on remaining displays
based on available link bandwidth.
* Perform deferred hotplug handling in a new thread invoked at
PresentDisplay(). Skip deferred hotplug handling from PresentDisplay()
if a handling thread is in progress.
CRs-Fixed: 2363982
Change-Id: I463fcbaa198d96a2f42283c8e6f0aa1f8b9e1b48
|
|
Add display indices property for aosp build without ExSurfaceFlinger,
to allow special display hwcId generated by vendor HWC for each type
of displays.
Change-Id: I389c98c3e54c6280597b2a6b7a63d624a799310f
|
|
Change SCOPE_LOCK on active builtin display to SEQUENCE_WAIT_SCOPE_LOCK
before performing reset validation in HandleConnectedDisplays.
Change-Id: Id0c153c008444b3668b41540e2c923026013f65d
|
|
- Trigger refresh to make sure disconnect event
received/updated properly by SurfaceFlinger.
- Refresh will make sure that SF main thread
updated properly.
Change-Id: Ie6dedf48d61e8092dfb14618e237c189cef8b402
CRs-Fixed: 2404501
|
|
CRs-Fixed: 2351263
Change-Id: Iaa99a4afff4d95c774f00a8158e7d2f8d636512d
|
|
* Remove use of custom macros when finding the active built-in display.
* Handle display power reset with non-active primary display.
CRs-Fixed: 2375587
Change-Id: I7f7aea412640dd3017ef2d4d3014d24dd31cf2fe
|
|
* Implement call flow from client to display interface.
* Use display interface to query EDID blob from Connector information
and return to client alongside pre-established port information from
sde-drm during display creation.
* Create EDID blob for Null Display (QMAA) to represent a 1920x1080
60fps display with panel name "Null Display" and port corresponding to
either builtin or external, depending on DisplayNull class instantiated.
* Introduce kErrorDriverData as a display interface error to represent
situations in which expected data from the driver is missing.
Currently this applied to EDID blob for all physical panels.
* Update UnregisterDisplay API to allow cleanup of token via sde-drm.
Change-Id: I5661f7bc0a5a68cdffa0cad3fe2351baa647012c
CRs-Fixed: 2380873
|
|
2/7/2019 FF
Change-Id: I78cdd49ab0f4da7ec24e9009ee5dd2cf0cb94ada
CRs-Fixed: 2395201
|
|
1. Add support to handle secure display layer on secondary display
2. Update secure display layer on active builtin display.
3. Add display config API to get the display attributes of the active
builtin display.
Change-Id: Ia70dff316265c9364b060fe4fae591a9599e16e9
CRs-Fixed: 2375587
|
|
During Fast Path optimization, the driver validation happens in
the COMMIT IOCTL only. In Validate phase, SDM doesn't set the DRM
properties and it doesn't call the VALIDATE IOCTL, which avoids
redundant CPU cycles. To disable this feature, set the value of
vendor prop "vendor.display.disable_fast_path" as 1.
CRs-Fixed: 2354405
Change-Id: I06380108ddc1d78543981a99cb90acb4be45997f
|
|
In the case where video does not set refresh rate metadata, default to
lower of all currently active (powered on) displays aka "throttling
refresh rate"
Change-Id: I696140d6b72199c113065ed032d2bb87bff90974
CRs-Fixed: 2365041
|
|
|
|
In the case where video does not set refresh rate metadata, default to
lower of all currently active (powered on) displays aka "throttling
refresh rate"
Change-Id: I696140d6b72199c113065ed032d2bb87bff90974
CRs-Fixed: 2365041
|
|
Enable dynamic logging support for kTagQOSClient via binder. Introduces
function to turn on kTagQOSClient from source code as well. Should
commonly be used with kTagResources so enablement is left under
DEBUG_PIPE_LIFECYCLE and DEBUG_ROTATOR.
Change-Id: Iac3de32bd7980c57e77e7029638683ed024b8dcf
CRs-Fixed: 2366761
|
|
|
|
Enable dynamic logging support for kTagQOSClient via binder. Introduces
function to turn on kTagQOSClient from source code as well. Should
commonly be used with kTagResources so enablement is left under
DEBUG_PIPE_LIFECYCLE and DEBUG_ROTATOR.
Change-Id: Iac3de32bd7980c57e77e7029638683ed024b8dcf
CRs-Fixed: 2366761
|
|
|
|
Add binder API to set color mode which will do blend
space checking. This is only used for debugging.
Change-Id: Iab06930c105e8180e42ebe091ba0e05bbee2052d
|
|
Teardown CWB in Create Virtual Display. This is required to free up WB
resources if they are already reserved by readback api calls.
Change-Id: I094c3b2396efa0a4b31996252fd675ed1733e6c8
|
|
|
|
Move apply color mode from color_mgr to hwc_session
when set mode through disp_api_set_active_display_mode().
Change-Id: I187969b63d9523b83ff937a531614db1db4cf5dc
|
|
HWC internally updates vsync source based on active display.
Ignore vsync updates on non-primary displays.
CRs-Fixed: 2371996
Change-Id: If967f002345905467ec2962d2d2c5dc57ed979e1
|
|
- The dataspace of the client target depends on the current color mode.
Clients calls SetClientTarget after prepare, SDM needs dataspace
information in the Validate phase to set up its pipeline. Hence
derive the client target dataspace based on the current color mode.
- Return error if dataspace doesn't match in SetClientTarget
Change-Id: I6edccf44e73c57a16e97b3c7e6d121dbc8775627
Crs-fixed: 2364498
|
|
CRs-Fixed: 2314107
Change-Id: I213edcaa61b33731b920b500a170e5a265909e47
|
|
Add check for null display to fix potential null pointer dereference
if unplug happens before lock is aquired by PresentDisplay.
Change-Id: I440ddcce744c83fead614dd7d2b138121965f512
|
|
In single-buffer layer use-case, SF needs to process the Refresh
callback between Validate and Commit Phase. Hence, HWC HAL cannot
skip the Validate Phase of SF with Skip/Internal Validate feature.
CRs-Fixed: 2367832
Change-Id: I044c4ffbfded60c1d807c6dd0202c199e757c065
|
|
Skip SDM Core API calls in null display mode. Fix null-pointer
dereference while booting up in null display mode. This is a
follow-up change to Change-Id Ia274017...
CRs-Fixed: 2356380
Change-Id: I5b8c63cf0f13df6763f1fa078a61109f784e0270
|
|
|
|
|
|
* Hotplug connected displays along with primary.
* Remove dependency on display ids for instance tracking.
CRs-Fixed: 2356380
Change-Id: Ia2740173079f33f2aa04bdcec5cbf3baac91375a
|
|
Fix for GetDozeSupport api to return BAD_DISPLAY error, if
that display doesn't exist.
Change-Id: I53c61d0d0adc3850ef9e82da189c4d8141466c93
|
|
- Continue hotplug handling and attempt display creation on remaining
displays even if creating one of the displays failed.
- Treat zero modes on displays as a non-critical error.
CRs-Fixed: 2332093
Change-Id: I1c5e83666281b00aeb0014a46e9647dc7789809d
|
|
Do not reset validate in case of invalidate action
CRs-Fixed: 2246355
Change-Id: Ie6526afc4461714d56755d055301bee824689472
|
|
|
|
|
|
QDCM Command Handler doesn't run in same thread as HWC main thread.
The validation reset from this thread needs to wait on the Sequence
Scope lock, so that the validate state of display doesn't get reset
between the Validate and Present phase of the current draw cycle.
CRs-Fixed: 2342280
Change-Id: I1c311ab40d4f7886129782ab15c05a8051dfd80a
|
|
|
|
Change-Id: I240043880395c2f727674b951a1875ee9bf90284
CRs-Fixed: 2337831
|
|
* ESD event will power reset all displays, like hw recovery
* Hw recovery will set current color mode on all displays,
like ESD event did for builtin
* LUT reset is handled on PowerOff
* Rename GetLastPowerMode to GetCurrentPowerMode to match it's actual
functionality
* Rename last_power_mode_ to current_power_mode_ to match it's actual
functionality
* Remove GetLastPowerMode / last_power_mode_ from DisplayBase, it is the
same as GetDisplayState / state_
Change-Id: Ifa259eda1875ff04c6d3c48b8231370a5f3a678f
CRs-Fixed: 2348547
|
|
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: Ifd350ade05e23d9078f441c86c317420588251ca
|
|
Rename CreateBuiltInDisplays to HandleBuiltInDisplays
Return 0 supported virtual displays
Bailout of BuiltIn and Pluggable handlers
Change-Id: I16ee9ce07cf162a3b54dba0cacc38c4c37f87872
CRs-Fixed: 2333745
|
|
Allow and limit concurrent displays to below combinations:
- BuiltIn + BuiltIn + External
- BuiltIn + BuiltIn + Virtual
- BuiltIn + External + External
- BuiltIn + External
- BuiltIn + Virtual
CRs-Fixed: 2324149
Change-Id: I87471585f73c411fb93fbe4fcc51e4191d636dc8
|
|
|
|
|
|
|