Commit Graph

64 Commits

Author SHA1 Message Date
qctecmdr
0b1886cb06 Merge "disp: msm: sde: turn off/on vblank callbacks as per crtc" 2019-06-03 21:51:47 -07:00
qctecmdr
e162550a2c Merge "disp: msm: sde: avoid wb done wait for cwb in wait_for_commit" 2019-06-03 20:22:04 -07:00
qctecmdr
b4add676a4 Merge "disp: correct secure id to hold vaddr" 2019-06-03 16:52:32 -07:00
qctecmdr
04e4ba8741 Merge "disp: msm: sde: avoid multiple frame-done encoder events" 2019-06-03 14:35:11 -07:00
Dhaval Patel
df2fbca4b8 disp: msm: sde: avoid wb done wait for cwb in wait_for_commit
Existing cwb implementation waits for WB done interrupt in
wait_for_commit_done API call. This serializes the cwb commit
and causes frame trigger delay on primary display. MDSS hw allows
to trigger the cwb frame when previous frame is in-progress. This
change updates driver to allow parallel frame trigger for cwb
enabled display. It releases frame N cwb output buffer in frame
N+1 wait_for_commit done call.

Change-Id: Id4f2a0cc78a3f24a1b5ce96dc907780246768dbf
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2019-06-03 10:04:19 -07:00
qctecmdr
b84d2c5ad0 Merge "disp: msm: sde: dynamic lm reservation for secondary disp" 2019-05-31 16:20:33 -07:00
Lakshmi Narayana Kalavala
9e17babe6a disp: msm: sde: turn off/on vblank callbacks as per crtc
Current sde driver allows vblank enable and wait requests
even after crtc is disabled which would eventually lead to
enable of irq and timeouts in caller context. This change fixes
it by updating vblank callback status as 'on' during crtc enable
and shutdowns vblank callbacks before crtc disable is complete.

Change-Id: I52b74f685107f4dc8c83305c28f23cdcb4747730
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
2019-05-30 16:13:09 -07:00
Veera Sundaram Sankaran
b8b095b57d disp: msm: sde: avoid multiple frame-done encoder events
Currently there is a race condition in checking the
pending_kickoff_cnt in wr_ptr_irq wait from display-thread
and pp_done_irq from interrupt context. In both places,
pending_kickoff_cnt is read first and modified later. In
partial update cases where the frame-transfer is short,
such a race condition might happen and would lead to both
triggering the frame-done/release fence for the same frame.
Fix it by combining read/modify to one statement in both places.

Change-Id: I9162e7dc3f12af3590514f1ebfd68023aa920181
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-30 15:24:54 -07:00
Samantha Tran
d025293ae2 disp: correct secure id to hold vaddr
This change corrects the secure id to hold vaddr
instead of paddr.

Change-Id: I021f5c0c7708eb2a0b166fe3a6c13b11aaf33419
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-28 10:46:31 -07:00
qctecmdr
9c05197ef9 Merge "disp: msm: sde: use wr_ptr interrupt instead of ctl_start" 2019-05-24 09:38:19 -07:00
Nilaan Gunabalachandran
52855c704a disp: msm: sde: dynamic lm reservation for secondary disp
Primary and secondary displays should have first priority
when reserving lms. Static reservation can potentially block
higher resolutions for the required displays. This patch gets
the layer mixer requirement for primary or secondary display
if available. It reserves those layer mixers dynamically
for the respective display when connector is registered.

Change-Id: Id69dac4c72d6b20008049f4aeb71c0f97d0a426b
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-05-24 06:35:07 -07:00
qctecmdr
15959feb73 Merge "disp: msm: sde: fix logging in crtc and kms" 2019-05-23 18:17:37 -07:00
Veera Sundaram Sankaran
6daf1c58e7 disp: msm: sde: use wr_ptr interrupt instead of ctl_start
SDE driver triggers the frame and waits for the
ctl_start interrupt for command mode display. This interrupt
provides confirmation that hardware has picked up the
frame. Retire fence signaling is associated with
this interrupt and it is sent at the rd_ptr interrupt
after ctl_start. Due to lut dma delay, ctl_start interrupt
may be trigger before rd_ptr or after rd_ptr. SW manages
this complexity and handle retire fence for different cases
with 500us threshold logic.

This change replaces the ctl_start interrupt with wr_ptr
interrupt by programming it to trigger at 1st write line
count. This is guaranteed to come every time and it is close
to rd_ptr interrupt. That allows retire fence trigger at
wr_ptr interrupt and simplifies the SW logic. CRTC commit
thread would be held slightly longer with this change
as the wr_ptr is always close to rd_ptr and after
ctl_start.

Change-Id: Ic47a8f82c854b4aded0d70c95af853b28a68ffd6
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-23 10:29:30 -07:00
Samantha Tran
3be27eafcc disp: msm: snapshot of msm and sde driver
This snapshot ports changes from 4.14 to 4.19 into
the msm and sde layer. Snapshot was taken as of
commit 0f8fb25421ff ("cnss2: Add device version to
SOC info structure").

Change-Id: I59b799a78319c2db6930a2a10bc38976f8c09898
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-22 13:08:31 -07:00
qctecmdr
80aed77020 Merge "disp: msm: sde: avoid rc lock deadlock during esd failure" 2019-05-22 12:20:00 -07:00
Manoj Kumar AVM
6af277472c Revert "disp: msm: sde: turn off/on vblank callbacks as per crtc"
This reverts commit 16bfab7ddf.

Change-Id: I5c5ef6a2fcb83607acd2c737f574199c010c89fa
Signed-off-by: Manoj Kumar AVM <manojavm@codeaurora.org>
2019-05-21 18:33:54 -07:00
Manoj Kumar AVM
7fc5e5d45f Revert "disp: msm: sde: remove vblank cache logic"
This reverts commit e6754ef40a.

Change-Id: If5921c6428b2b79ae5979d782138f10e4673d1fb
Signed-off-by: Manoj Kumar AVM <manojavm@codeaurora.org>
2019-05-21 18:33:28 -07:00
qctecmdr
51e46a53a0 Merge "disp: msm: sde: add per_pipe_bw_high option" 2019-05-21 11:20:01 -07:00
qctecmdr
3f35432626 Merge "disp: msm: avoid vbif and wb register dumps in secure mode" 2019-05-21 01:20:03 -07:00
qctecmdr
b08df2e6a6 Merge "disp: msm: sde: add rev check for LITO target" 2019-05-20 16:35:06 -07:00
Samantha Tran
c423e14b22 disp: msm: sde: add per_pipe_bw_high option
This change populates values for per_pipe_bw_high
from the device tree. This value is exposed to userspace
as the bandwidth per pipe available in the no VFE
scenario.

Change-Id: I61346ee55dfd4b6b0736ecf0b96e061f4f3934c3
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-20 15:42:06 -07:00
qctecmdr
a8d58b7c0d Merge "disp: msm: sde: update min prefill lines to 35 for kona" 2019-05-20 13:06:00 -07:00
qctecmdr
3638af7654 Merge "disp: msm: sde: log pp-line count in event logs" 2019-05-20 11:33:55 -07:00
qctecmdr
118d196a8d Merge "disp: msm: sde: reduce log level for invalid encoder master" 2019-05-19 20:49:35 -07:00
qctecmdr
89a6e5d512 Merge "disp: msm: fix out-of-bound access and NULL dereference" 2019-05-19 16:45:53 -07:00
Dhaval Patel
56e88a7fdc disp: msm: sde: avoid rc lock deadlock during esd failure
Each mode_set call makes sure that previous frame is triggered
and triggers the esd check if there is pp_timeout. This may
lead to deadlock between crtc commit and event threads. Crtc
commit thread acquires the rc_lock and triggers the flush_thread
API on event_thread. Event thread again tries to acquire the
rc_lock to wait for frame. This can be prevented by avoiding the
pre_kickoff call from esd_failure notification if it is generated
through pp_timeout.

Change-Id: I561fef0345976ab0cae61aab6718214c47fa1393
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2019-05-17 15:39:16 -07:00
Samantha Tran
0cbfaf1a4b disp: msm: fix out-of-bound access and NULL dereference
Fix possible out-of-bound access and NULL pointer
dereference in SDE and PLL driver.

Change-Id: Ic5c34b3b4c3e983413a0351c38206cf3f3ab3b1f
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-17 11:30:48 -07:00
Dhaval Patel
627f4335aa disp: msm: sde: update min prefill lines to 35 for kona
Update minimum prefill ines to 35 lines for kona
target.

Change-Id: Ib37304024947c581a2a29f820eef881d6db984f9
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2019-05-16 20:44:13 -07:00
Veera Sundaram Sankaran
1e3d105dc0 disp: msm: sde: log pp-line count in event logs
Log ping-pong current line count during ctl-start
and rd-ptr interrupt. This will help in debugging
ping-pong timeout issues.

Change-Id: I58185330fe9e8a64f48d6da60c974b23a9e68b44
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-15 15:36:06 -07:00
Veera Sundaram Sankaran
ef68f9d670 disp: msm: sde: reduce log level for invalid encoder master
Reduce the log level from error to debug for invalid
master encoder in encoder restore path during idle
power-collapse. This would avoid unnecessary logging
when concurrent writeback gets enabled after a
power-collapse event, the restore happens based on
encoder_mask attached in the crtc before the actual
enable call for the cwb encoder.

Change-Id: I54cd7de62f1a9030f68a963c8ed27ff098302e04
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-15 14:34:19 -07:00
Jayaprakash
f0bc6e4683 disp: msm: sde: add rev check for LITO target
Add required revision checks for lito target.

Change-Id: I53b4bace46b0e8c99b7765e0f2a7b625ee08b38c
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2019-05-14 13:15:16 +05:30
Veera Sundaram Sankaran
bbd12dee59 disp: msm: avoid vbif and wb register dumps in secure mode
VBIF and WB register HLOS access is revoked during
secure-display session. Dumping those registers at
ping pong done timeout causes access violation.
Hence avoid vbif and wb register space dumping in secure mode.

Change-Id: I5d327178e9f6232257b3d2fbfef8ca7ef78db2e1
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-13 15:22:41 -07:00
Veera Sundaram Sankaran
5fb59a73b2 disp: msm: sde: fix logging in crtc and kms
Fix the crtc status to print the formatted src
rect for all the planes and log the true inline
rotation flag. Move the event log in splash cleanup,
so that it is not logged for every frame.

Change-Id: Id2a323254f632a649c335455f5ef53b7d805c3a5
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-13 15:20:54 -07:00
qctecmdr
21e71b998a Merge "drm/msm/sde: Add global dither memory dump range" 2019-05-10 20:50:24 -07:00
qctecmdr
3cc8b0cd16 Merge "disp: snapshot of offline rotator" 2019-05-10 18:52:56 -07:00
qctecmdr
d54b69e258 Merge "disp: msm: Add support for seamless panel operating mode switch" 2019-05-07 21:32:43 -07:00
qctecmdr
8b3b1d3f4d Merge "disp: msm: fix dsc parameters related to 10 bpc 10 bpp" 2019-05-06 22:50:17 -07:00
Lei Chen
21edecd3b1 disp: msm: Add support for seamless panel operating mode switch
DSI display may support video mode and command mode both and it may
support transition between these two modes.
This change adds seamless transition between these two modes for DSI
display by avoiding crtc enable/disable and panel power on/off
during modeset.

Change-Id: Id7ddaef7d1f0f7cc7d52283755bad53a246adec6
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2019-05-06 18:45:44 -07:00
qctecmdr
e6933ff2dc Merge "disp: msm: sde: remove vblank cache logic" 2019-05-05 21:21:19 -07:00
qctecmdr
8205140d9c Merge "disp: msm: sde: turn off/on vblank callbacks as per crtc" 2019-05-05 19:42:43 -07:00
Veera Sundaram Sankaran
476f37c2bb disp: msm: fix dsc parameters related to 10 bpc 10 bpp
Fix few DSC parameters related to 10 bits-per-component
10 bits-per-pixel configuration according to HW programming
guide.

Change-Id: I3ceb1eb9b1247440ef68800e9b62e9ffb7ec5b57
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-05-01 17:13:58 -07:00
Yuchao Ma
734a80305a drm/msm/sde: Add global dither memory dump range
The global dither memory range can not be accessed from outside.
So the patch fixs this issue through add global dither memory range
to valid range.

Change-Id: I3ab5b87ff1e62f7b19b48a137922d4e98a64040c
Signed-off-by: Yuchao Ma <yuchaom@codeaurora.org>
[cohens@codeaurora.org: resolved trivial merge conflict]
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-04-30 17:34:38 -04:00
Nilaan Gunabalachandran
ce0fef975e disp: msm: sde: handle cont-splash & check only rm reserve
On the first commit, cont splash flag is still enabled on
encoder, but connector is not yet attached. When a check-only
rm reservation is made, it does not get released due to
cont-splash check. If cont-splash is enabled, rm should
not check for connector, but directly release rsvp_nxt.

Change-Id: I79be3c1bb20b74ce4a95786c90f3accfb587d7f2
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-04-29 09:33:25 -07:00
qctecmdr
e90235e1b3 Merge "disp: msm: sde: get ctl scheduler status at each vsync" 2019-04-29 01:37:12 -07:00
qctecmdr
c4ae73b9b8 Merge "disp: msm: sde: update ds atomic check for pu and cwb" 2019-04-29 01:10:01 -07:00
qctecmdr
35df34f800 Merge "disp: msm: add runtime_pm ops support in drm driver" 2019-04-28 16:22:16 -07:00
qctecmdr
ea8e0c2284 Merge "disp: msm: sde: set bounds on debugfs core perf input" 2019-04-28 10:23:19 -07:00
qctecmdr
857ba6ee21 Merge "disp: add shmbridge support in sde and rotator" 2019-04-28 09:56:08 -07:00
Lakshmi Narayana Kalavala
e6754ef40a disp: msm: sde: remove vblank cache logic
Userspace is not supposed to request vblank until crtc is enabled,
because drm framework rejects the request if crtc is not enabled.
Any vblank request prior to that need to be cached in the userspace.
Hence removing the cache logic from the downstream driver.

Change-Id: I5383e39075377e3e49b8d335598ddfa48ab54666
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
2019-04-26 17:29:59 -07:00
Lakshmi Narayana Kalavala
16bfab7ddf disp: msm: sde: turn off/on vblank callbacks as per crtc
Current sde driver allows vblank enable and wait requests
even after crtc is disabled which would eventually lead to
enable of irq and timeouts in caller context. This change fixes
it by updating vblank callback status as 'on' during crtc enable
and shutdowns vblank callbacks before crtc disable is complete.

Change-Id: I9085103ced06e5fad51219f26bd8dd655fa36fea
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
2019-04-26 17:03:21 -07:00