summaryrefslogtreecommitdiff
path: root/sdm/libs/hwc2/hwc_session.cpp
AgeCommit message (Collapse)Author
2019-03-27hwc2: Skip hotplug uevent handling if client is not connectedMathew Joseph Karimpanal
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
2019-03-22Merge "hwc2: Reset validate bit in proper sequence before Refresh trigger"qctecmdr Service
2019-03-22Merge "sdm: Trigger refresh after disconnect event."qctecmdr Service
2019-03-22Merge "sdm: Disable vsync on a display if events are not sourced from it."qctecmdr Service
2019-03-22Merge "sdm/hwc: add display indices property for client id init"qctecmdr Service
2019-03-19hwc2: Perform bandwidth-checked hotplugMathew Joseph Karimpanal
* 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
2019-03-13sdm/hwc: add display indices property for client id initXiaowen Wu
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
2019-03-13hwc2: Reset validate bit in proper sequence before Refresh triggerPadmanabhan Komanduru
Change SCOPE_LOCK on active builtin display to SEQUENCE_WAIT_SCOPE_LOCK before performing reset validation in HandleConnectedDisplays. Change-Id: Id0c153c008444b3668b41540e2c923026013f65d
2019-03-13sdm: Trigger refresh after disconnect event.Rajavenu Kyatham
- 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
2019-03-13sdm: Disable vsync on a display if events are not sourced from it.Pullakavi Srinivas
CRs-Fixed: 2351263 Change-Id: Iaa99a4afff4d95c774f00a8158e7d2f8d636512d
2019-02-22hwc2: Improve handling of multiple built-in displaysMathew Joseph Karimpanal
* 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
2019-02-07sdm: Implement getDisplayIdentificationDataVarun Arora
* 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
2019-02-07Merge remote-tracking branch 'quic/display.lnx.5.0' into tipVarun Arora
2/7/2019 FF Change-Id: I78cdd49ab0f4da7ec24e9009ee5dd2cf0cb94ada CRs-Fixed: 2395201
2019-02-01hwc2: Update secure display layer on active built in displayRamkumar Radhakrishnan
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
2019-01-30sdm: Add support for Fast Path CompositionSushil Chauhan
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
2019-01-24hwc2: Fix handling of no metadata case for externalMahesh Aia
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
2019-01-24Merge "hwc2: Teardown CWB in Create Virtual Display"qctecmdr Service
2019-01-22hwc2: Fix handling of no metadata case for externalMahesh Aia
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
2019-01-21sdm: Add dynamic logging for QoS ClientVarun Arora
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
2019-01-21Merge "display: Add binder API to set color mode"qctecmdr Service
2019-01-21sdm: Add dynamic logging for QoS ClientVarun Arora
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
2019-01-16Merge "hwc2: Derive dataspace on ClientTarget from ColorMode"qctecmdr Service
2019-01-16display: Add binder API to set color modeQing Huang
Add binder API to set color mode which will do blend space checking. This is only used for debugging. Change-Id: Iab06930c105e8180e42ebe091ba0e05bbee2052d
2019-01-15hwc2: Teardown CWB in Create Virtual DisplayGurpreet Singh Dhami
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
2019-01-10Merge "sdm: Support to set color mode by mode id"qctecmdr Service
2019-01-08sdm: Support to set color mode by mode idQing Huang
Move apply color mode from color_mgr to hwc_session when set mode through disp_api_set_active_display_mode(). Change-Id: I187969b63d9523b83ff937a531614db1db4cf5dc
2019-01-08hwc2: Control hw vsync only for primary displayRamakant Singh
HWC internally updates vsync source based on active display. Ignore vsync updates on non-primary displays. CRs-Fixed: 2371996 Change-Id: If967f002345905467ec2962d2d2c5dc57ed979e1
2019-01-02hwc2: Derive dataspace on ClientTarget from ColorModeArun Kumar K.R
- 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
2018-12-28sdm: Add support to get/set DSI clk.Pullakavi Srinivas
CRs-Fixed: 2314107 Change-Id: I213edcaa61b33731b920b500a170e5a265909e47
2018-12-19hwc2: Add check for null display in PresentDisplayGurpreet Singh Dhami
Add check for null display to fix potential null pointer dereference if unplug happens before lock is aquired by PresentDisplay. Change-Id: I440ddcce744c83fead614dd7d2b138121965f512
2018-12-17hwc2: Fix the single-buffer layer use caseSushil Chauhan
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
2018-12-13hwc2: Restore null display modeMathew Joseph Karimpanal
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
2018-12-05Merge "hwc2: Fix GetDozeSupport api to handle failure case"qctecmdr Service
2018-12-05Merge "hwc2: Improve multi-display creation and hotplugging"qctecmdr Service
2018-11-30hwc2: Improve multi-display creation and hotpluggingMathew Joseph Karimpanal
* Hotplug connected displays along with primary. * Remove dependency on display ids for instance tracking. CRs-Fixed: 2356380 Change-Id: Ia2740173079f33f2aa04bdcec5cbf3baac91375a
2018-11-28hwc2: Fix GetDozeSupport api to handle failure caseGurpreet Singh Dhami
Fix for GetDozeSupport api to return BAD_DISPLAY error, if that display doesn't exist. Change-Id: I53c61d0d0adc3850ef9e82da189c4d8141466c93
2018-11-23sdm: Continue hotplug handling on failureMathew Joseph Karimpanal
- 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
2018-11-23hwc2: Do not reset current validate while honoring refresh requestUday Kiran Pichika
Do not reset validate in case of invalidate action CRs-Fixed: 2246355 Change-Id: Ie6526afc4461714d56755d055301bee824689472
2018-11-21Merge "hwc2: Fix validation reset from QDCM CMD Handler"qctecmdr Service
2018-11-19Merge "hwc2: syncronize HWC & client(SF) state for DP"qctecmdr Service
2018-11-19hwc2: Fix validation reset from QDCM CMD HandlerSushil Chauhan
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
2018-11-18Merge "hwc2: Return error when idle pc is enabled/disabled during suspend"qctecmdr Service
2018-11-15hwc2: Return error when idle pc is enabled/disabled during suspendRamkumar Radhakrishnan
Change-Id: I240043880395c2f727674b951a1875ee9bf90284 CRs-Fixed: 2337831
2018-11-15sdm: Merge panel dead with HW Recovery reset handlingVarun Arora
* 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
2018-11-14hwc2: syncronize HWC & client(SF) state for DPRamakant Singh
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
2018-11-09HWC2: Modify multidisplay for null display modeVarun Arora
Rename CreateBuiltInDisplays to HandleBuiltInDisplays Return 0 supported virtual displays Bailout of BuiltIn and Pluggable handlers Change-Id: I16ee9ce07cf162a3b54dba0cacc38c4c37f87872 CRs-Fixed: 2333745
2018-11-05hwc2: Handle multiple displays concurrencyMathew Joseph Karimpanal
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
2018-10-29Merge "hwc2: Update Vsync source dynamically."qctecmdr Service
2018-10-29Merge "hwc2: Dump frames by display-type bitmask"qctecmdr Service
2018-10-29Merge "hwc2: Fix error handling for invalid ColorMode and RenderIntent"qctecmdr Service