summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm/sde (follow)
Commit message (Collapse)AuthorAge
* drm/msm/sde: Fix clang compilation in SDE driverJayant Shekhar2020-06-08
| | | | | | | | Make change to ensure SDE driver compiles fine with clang enabled. Change-Id: I83cb2fef2b0ff8a4cdd1d77b180ebea4fef1b629 Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
* drm/msm/sde: fix null pointer dereferenceRahul Sharma2019-05-07
| | | | | | | | This change is done to fix null pointer dereference in sde_core_irq_preinstall(). Change-Id: I448e275e2ce5708738651d1cf7f66329bcf47451 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* Merge "drm: msm: sde: remove hdr property setting error message"Linux Build Service Account2019-04-16
|\
| * drm: msm: sde: remove hdr property setting error messageGuchun Chen2019-04-08
| | | | | | | | | | | | | | | | | | Add a check to ensure HDR property is valid before updating connector hdr. This can remove drm property setting error message during booting up. Change-Id: I7434f7f2cc5ca0007c87d3ba0e504758a0c879d1 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | drm: msm: sde: improve display interface timeout mechanismGuchun Chen2019-04-11
| | | | | | | | | | | | | | | | | | | | | | | | When enabling splash in LK, after kernel boots up, sometimes interface timeout issue may happen. This is caused by kernel's defect when decreasing pending frame kickoff count in vblank isr. As LK and kernel may concurrently flush pipes, so flush_bit may be set by LK, while kernel still treats a timeout issue if it's not 0. This change is to fix the defect. Change-Id: I928e444074617adf2dc86134dd3a96701c8f6aca Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | drm/msm/sde: add post_disable stage for phys encoderXiaowen Wu2019-03-27
|/ | | | | | | add post_disable stage for each phys encoder to clear ctl_top Change-Id: Ib34059546b6ddf7bbd2c60fd8321a7f820b97986 Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
* drm: msm: sde: add splash handoff support for shared displayGuchun Chen2019-03-12
| | | | | | | | | When shared display is both enabled in bootloader and kernel, the handoff mechanism needs to be updated to ensure the handoff can be finished. Change-Id: I8172b0878a4a322f87e0ad138cff1e27161a9f83 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* drm: msm: sde: reduce black screen duration from null commitGuchun Chen2019-02-26
| | | | | | | | | | | | User may send null commit without any plane attached to kernel. In kernel, these null commits will clear mixer blendstage for all pipes, and power on screen with black background color. However, when bootloader splash is on, this operation will override the splash, which brings long black screen duration between splash and user UI. So this patch is to fix this. Change-Id: I3a34ab2ad421f40bd315eb2874fea5dc33d3ccfb Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* drm/msm/sde: set correct timeline at fence createRahul Sharma2019-02-08
| | | | | | | | | | | | | This change adds the offset to the associated timeline when the retire and release fences are created. The DRM client queries the fences using the atomic commit instead of set_property ioctl. So the sync point should contain the updated timeline before sending the FDs to client. Change-Id: I1ac9507934223bd1091be6960805c63cb4aacfb1 Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm/sde: avoid fence creation if property resetRahul Sharma2019-02-08
| | | | | | | | | | Avoid creating fence on crtc and connector if property reset value set. This will avoid creating get_unsed_fd on dying process. Change-Id: Id4e898c55167b3568962384cade5e60b38c30468 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm/sde: remove fence support through get_propertyRahul Sharma2019-02-08
| | | | | | | | | Remove release and retire fence support through get property call. Change-Id: Ib5e3643a8cb10e6bb1ffa45dd78b7a31fbba8cc9 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm: support release/retire fence through set propRahul Sharma2019-02-08
| | | | | | | | | | | | | | | | | | Multiple drm clients are allowed to call the get_properties on drm device node. If sde driver creates the fence for each get_property call then it may leave fd leak in client process context because might not be expecting fences. Supporting get_property for only master device may not solve the issue because master client may still call the get_properties multiple times between two commit cycles. This patch supports release/retire fence through set property to avoid fence leak. Change-Id: I07fe63fe84901d7f96b522ca6309cfdd90a25c40 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm: Early DRM DriverCamus Wong2019-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Add new DRM node to handle early display service. The early DRM driver is to workaround Andriod display framework long boot time problem and DRM single master limitation. The early DRM node provides display function for early application that is outside Android framework. The early application can use early DRM to draw early UI and bootloader review camera menu function. Android framework will not use early DRM node. It will continue to use the main DRM node. Early DRM is another KMS driver that designed for bootup application. Early DRM is not based on SDE framework and it will not initialize display hardware. Early DRM rely on bootloader to initialize display hardware and interfaces. For power and SMMU, early DRM relies on main DRM to initialize them. Early DRM only provide limited display functionality such as RGB buffer display. Early DRM only expected to run during bootup time to work with bootloader/early RVC. When Android UI is ready, early DRM will handoff all display resource to main DRM. After that, no application can open early DRM node. Early DRM is enabled in device tree. User must specify which display to enable early DRM and which display pipes are assigned to eDRM. Change-Id: Ic9f68726677c5db26507caec79c7da1e6d745f44 Signed-off-by: Camus Wong <camusw@codeaurora.org>
* msm: drm: add hibernation supportRahul Sharma2019-01-15
| | | | | | | | | Enable device PM callbacks to support hibernation feature. Facilitates system restore from hibernation golden image when early display services are running concurrently. Change-Id: I380a7bf59d9af21468b56c121a7ac7293c32fca2 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm/sde: add panel stacking supportXiaowen Wu2019-01-10
| | | | | | | | | | To support transparent panel stacking, application will pass non-panel- stacking buffer roi to kernel and let kernel to extend to panel-stacking size. A special flag is defined on source config for this purpose. Change-Id: I59eb290f0f7b92744972391d7db743e2da12300b Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* drm/msm/sde: add shared display supportRahul Sharma2019-01-09
| | | | | | | | | | | | | | | | | | | Add support to shared display for panel stacking and split screen application. The current DRM framework only allows one atomic commit for each display, this change will create virtual display pipelines based on the physical display pipeline, and each virtual display can support independent async atomic commit. With the change user mode application can setup and update display on each virtual display and share the same physical port. No mode switch is allowed on virtual display. When all virtual displays are powered off, the physical display will also power off. Change-Id: Ibf9a7dd1a96c59b6db9891d826cb4f11b409696c Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* Merge "drm/msm/sde: support to control layer mixer usage"Linux Build Service Account2019-01-08
|\
| * drm/msm/sde: support to control layer mixer usageRahul Sharma2018-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | This change enables resource manager to select the number of layer mixers to be reserved for a particular usecase. Number of mixers used will be controlled by the request from user by setting a SDE_RM_TOPCTL_FORCE_MIXER_CFG property. if SDE_RM_TOPCTL_FORCE_MIXER_CFG is set then num_lm = 1 Change-Id: I94d37cfd1632e4b8d42235c2c155d9cf6cf25fc2 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | drm: msm: sde: kernel needs to monitor bootloader's flush doneRahul Sharma2018-12-19
| | | | | | | | | | | | | | | | | | | | | | Once kernel sends splash stop signal to bootloader, it needs to listen to bootloader's cocurrent flush to hardware is done, otherwise, one race condition issue for mixer clear and setup messed may happen. Change-Id: I7b603b9acc0dd0af07da3c5afee052007432b7fb Signed-off-by: Guchun Chen <guchunc@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | Merge "drm: msm: sde: reorder call sequence in splash release thread"Linux Build Service Account2018-12-18
|\ \
| * | drm: msm: sde: reorder call sequence in splash release threadGuchun Chen2018-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When splash releases resource, kernel blob property should be updated at first, and then uevent sending follows. This sequence can ensure user can always get the correct information after kernel blob property is updated in splash handoff thread. Change-Id: I7b6493943c6eb1624da75dff5252dd3a71dea657 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | | Merge "drm: msm: sde: Update splash handoff with new APIs"Linux Build Service Account2018-12-18
|\ \ \ | |_|/ |/| |
| * | drm: msm: sde: Update splash handoff with new APIsVivek Kumar2018-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Early domain core driver provides apis to communicate with LK. Deprecate the use of scratch registers, instead use the new apis. Early domain core driver now hot adds the cpu and frees lk text section by taking vote from all early serivces, So remove hot-adding cpu and freeing lk text section from display. Change-Id: Id083850872bca0803e029a85f946c70b2ec5298e Signed-off-by: Vivek Kumar <vivekuma@codeaurora.org>
* | | Merge "drm: msm: sde: update blob property after splash is done"Linux Build Service Account2018-12-13
|\ \ \ | | |/ | |/|
| * | drm: msm: sde: update blob property after splash is doneGuchun Chen2018-12-04
| |/ | | | | | | | | | | | | | | | | | | After early splash handoff is finished, kernel needs to update each crtc's and plane's impacted blob property by splash. This ensures framework can get correct resource in the second init process. Change-Id: Iddfa823d7ba786f3d81b96e86ad3b6e4b10a3375 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | Merge "drm/msm/sde: Reserve one more layer for early DRM"Linux Build Service Account2018-12-13
|\ \ | |/ |/|
| * drm/msm/sde: Reserve one more layer for early DRMCamus Wong2018-11-07
| | | | | | | | | | | | | | | | | | This change is preparing for early DRM feature. Change to reserve the top two layers for both early DRM and bootloader RVC. Change-Id: If02d947674e6ddd5f41243b93181951975acf81e Signed-off-by: Camus Wong <camusw@codeaurora.org>
* | drm: msm: sde: fix incorrect function pointer checkGuchun Chen2018-11-12
|/ | | | | | | | Original function pointer check is not correct, so use the correct one. Change-Id: I6e87eaef66339442b86e64ba0501eaca04b10d89 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* drm/msm/sde: ignore scaler v2 data if not enabledClarence Ip2018-10-23
| | | | | | | | | | | The incoming scaler v2 user data isn't guaranteed to be valid if the 'enable' field is set to zero, so ignore the entire structure unless the enable is explicitly set to a non-zero value. CRs-Fixed: 2052501 Change-Id: Ieeb24122a5caffcd7361007e52219cee94e33eee Signed-off-by: Clarence Ip <cip@codeaurora.org>
* drm: msm: update cpu1 hotplug by using cpu_device nodeVivek Kumar2018-09-27
| | | | | | | | | update cpu1 hotplug by using its device structure online callback. This is to ensure, sysfs entry for cpu1 reflects the online status correctly. Change-Id: Idc77a1074ca030ca826eb1a817b1ab7795e8548c Signed-off-by: Vivek Kumar <vivekuma@codeaurora.org>
* drm: msm: sde: Fix SMMU fault during DRM testSuprith Malligere Shankaregowda2018-08-17
| | | | | | | | | | This change is done to detach all pipes first before the first commit proceed, Kernel will have to do the pipe detach when kernel got the first valid frame and we want to detach all the splash pipes after the LK is being notified to stop. Change-Id: I3a599a102286596333a35273e27d8a363f2134b7 Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org>
* Merge "drm/sde: report MDP underrun error only if not stabilized"Linux Build Service Account2018-07-25
|\
| * drm/sde: report MDP underrun error only if not stabilizedRahul Sharma2018-07-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | MDP underrun error is being reported to recovery manager as and when they are detected by the interrupt handler. Since most of the times errors are recovered successfully and stabilizes and hence we do not need to report in those scenarios. This implementation uses a delayed work to figure out if the error is stabilized. In case if error is still persists then it would be reported to the recovery manager. Change-Id: I3509484867d86dc946dd4be856d85de444c0aa60 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | Merge "drm/sde: bridge chip error and smmu fault handling for recovery"Linux Build Service Account2018-07-25
|\ \
| * | drm/sde: bridge chip error and smmu fault handling for recoveryRahul Sharma2018-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implementation adds the following support: 1. handle bridge chip error reported by driver to DBA. error reported to DBA will be send to recovery manager to recover the faulty bridge chip by performing a power cycle. 2. smmu fault error notification. 3. detection on errors in bridge chip driver. Change-Id: I86cc491e3cd25fdcf9b998a0d687baba0a06d836 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | | Merge "drm: msm: Hot plug cpu1 once early domain is finished"Linux Build Service Account2018-07-25
|\ \ \
| * | | drm: msm: Hot plug cpu1 once early domain is finishedVivek Kumar2018-07-16
| | |/ | |/| | | | | | | | | | | | | | | | | | | Early domain services run on cpu1 in LK, so hotplug cpu1 once early domain services are finished. Change-Id: I23b57b8b7460c5740083b27af72251b2fad78ed4 Signed-off-by: Vivek Kumar <vivekuma@codeaurora.org>
* | | Merge "drm/msm: Fix the format prints in display driver"Linux Build Service Account2018-07-17
|\ \ \ | |/ / |/| |
| * | drm/msm: Fix the format prints in display driverLakshmi Narayana Kalavala2018-07-13
| | | | | | | | | | | | | | | | | | | | | | | | Fix the %p format prints with %pK. Change-Id: I1743bacb76c1db4bfa304146f7d391751b35273c Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org> Signed-off-by: Navid Bahrani <nbahrani@codeaurora.org>
* | | Merge "drm: msm: error notification and handling"Linux Build Service Account2018-07-13
|\ \ \ | |/ / |/| / | |/
| * drm: msm: error notification and handlingRahul Sharma2018-07-11
| | | | | | | | | | | | | | | | This implementation facilitates a framework to report and recover the errors in display hardware pipeline. Change-Id: Ie4059dd8bcdd83f73b5a5165ae5a8363ae4efb94 Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | Merge "Revert "drm/msm/sde: output black frame during resume operation""Linux Build Service Account2018-07-10
|\ \ | |/ |/|
| * Revert "drm/msm/sde: output black frame during resume operation"Clarence Ip2018-06-29
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 56902791977fa54fd0c34a7a6ea0c5da78b2334d. Display blanking or black frames should be requested explicitly by user space clients and shouldn't be triggered on system suspend/resume transitions. Change-Id: Ic0cf5b7b6d97dd118c0a43b81911eb9ee6ed8459 Signed-off-by: Clarence Ip <cip@codeaurora.org> Signed-off-by: Rahul Sharma <rahsha@codeaurora.org>
* | Merge "Revert "drm: msm: sde: remove user commit validity check""Linux Build Service Account2018-06-29
|\ \
| * | Revert "drm: msm: sde: remove user commit validity check"Guchun Chen2018-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b80fa288403b05992341f1fcca1a1195067b1dc0. This change can't guarante the sequence of smmu operation for early splash case, and more, the commit validity check is mandatory to avoid potential glitch during display handoff. So revert this change. Change-Id: Ic8327dedc1357ed5d8ef6ca490390ce66b7eb986 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | | Merge "drm: msm: sde: move S1 smmu enablement earlier"Linux Build Service Account2018-06-29
|\ \ \ | |_|/ |/| |
| * | drm: msm: sde: move S1 smmu enablement earlierGuchun Chen2018-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stage 1 translation enablement should be called after user has finished early mapping for splash buffer. Origianl sequence will bring potential race competition. This change can avoid race condition happens. CRs-Fixed: 2247983 Change-Id: I00ce034c5c54e06a2c1514faca22f9d65aca727f Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | | drm: sde: Select correct path for split displayCamus Wong2018-06-25
| |/ |/| | | | | | | | | | | | | | | When the split display has preferred control path, the preferred control path ID should be cleared before searching secondary control path. Otherwise the search would fail. Change-Id: Ie2cc1c4d0ec2d162cdcfedbbbef62400e5798bb6 Signed-off-by: Camus Wong <camusw@codeaurora.org>
* | Merge "drm: msm: sde: remove user commit validity check"Linux Build Service Account2018-06-23
|\ \
| * | drm: msm: sde: remove user commit validity checkGuchun Chen2018-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Such validity check will let Android FDR test failed. This is because kernel has enabled interrupts, and access registers, but with this validity check, LK also co-exists with kernel, while it has disabled interrupts. Hence conflict happens. CRs-Fixed: 2247983 2258043 Change-Id: I21be9ae2beeaa0bc187aee241572ce530b9bc93a Signed-off-by: Guchun Chen <guchunc@codeaurora.org>