提交图

28 次代码提交

作者 SHA1 备注 提交日期
GG Hou
a658fb17b7 disp: msm: sde: dma fence out of order handling in fence error case
Handle out of order dma fence signalling and propagation of fence
error. Out of order fence signaling is required only in Video mode.
For example, in case of N, N+1, N+2 frames where N, N+2 are good
frames and N+1 is frame with fence error. The release fence signal
sequence in video mode would be N+1, N, N+2.

Change-Id: I8b6f88cfeee945e28571b765f24ffea22fad23b8
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 20:15:49 -07:00
GG Hou
725c7a0f3d disp: msm: sde: add support for hw fence error handling
Register callback function to hw fence driver and implement the
callback funtion.

As part of fence error handling, address out of ordering of HW
fences, SW override for release fence signal and handle BW voting
in both cmd and video mode.

Change-Id: I22902762b4cc09a5f5a20cf0dd01fc336a0f0cb4
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 20:13:58 -07:00
Christina Oliveira
b5cbfa8358 disp: msm: sde: update hw-fence txq wr_ptr from hardware
This change adds hardware programming that will update the
txq wr_ptr upon output fence firing.

Change-Id: I79ff0ea5fb2b7f73a48bd70e3c8e71ea69fead95
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2023-03-15 12:53:37 -07:00
Grace An
3564a2c6f2 disp: msm: sde: update output_fence hw programming for pineapple
Starting pineapple, the output_fence trigger_sel register is updated to be
more controllable. Instead of hardware choosing the output fence timing
based on detecting if panel is in video/cmd mode, this is explicitly set
by software. Add support in display driver for to correctly write to
trigger_sel register for video mode.

Change-Id: I76d8cfb644cebfd2f34f3017fc779b87fc52db1a
Signed-off-by: Grace An <quic_gracan@quicinc.com>
2023-02-28 09:16:27 -08:00
Ingrid Gallardo
59ef056475 disp: msm: sde: add qtimer read after input hw-fence signal config
Add debug log to dump qtimer information after the input hw-fence
signal configuration.

Change-Id: I7617b1a6bae3db1e003c42bfe306dbe7f552ad83
Signed-off-by: Ingrid Gallardo <quic_ingridg@quicinc.com>
2023-01-30 08:46:01 -08:00
Ingrid Gallardo
73069640f8 disp: msm: sde: add display hw fence-array event log
Add display event log for the display input hw-fence.

Change-Id: Id0fc19565c7b83c8009ab518dae7323db534b66e
Signed-off-by: Ingrid Gallardo <quic_ingridg@quicinc.com>
2023-01-30 08:45:50 -08:00
Ingrid Gallardo
b8ae2f789b disp: msm: sde: move hw-fence init error messages to debug
Current driver prints error messages when it fails
registration for the display clients with the hw-fence
driver, however, this is not an error as currently
feature is disabled by default in hw-fence driver,
which as result will fail registration for clients.
Therefore, silent the error messages for a failed
registration.

Change-Id: I13b872db3452a57a885c73cc8f1cf512be986dd0
Signed-off-by: Ingrid Gallardo <quic_ingridg@quicinc.com>
2023-01-24 10:44:23 -08:00
Ingrid Gallardo
7427045102 disp: msm: sde: add events to input and output hw-fences
Add extra display driver debug events for input and output
hw-fences.

Change-Id: I32be1d25d98c510ebba5d39f8aff2a0c54144ba1
Signed-off-by: Ingrid Gallardo <quic_ingridg@quicinc.com>
2022-11-11 07:15:05 -08:00
Christina Oliveira
cbc6d4a0a0 disp: msm: sde: add support for wait on multiple hw fences
This change adds support to wait on multiple hardware fences by
creating a fence array so each dpu-client only gets signaled until all
the hw fences going to the same ctl-path are signaled. It also
accounts for if a fence is a fence array.

Change-Id: Iba4b1d2b7322aea64dc197ca7655920b79dbb919
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-10-17 12:02:35 -07:00
Nilaan Gunabalachandran
a0f3537872 disp: msm: sde: include file.h
This change adds includes for <linux/file.h> required for the
display driver in kernel 5.19.

Change-Id: Ibe5401997b43844b692869ebb6d28faa7bcb7740
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-10-10 11:21:55 -07:00
Christina Oliveira
b4a071ae7f disp: msm: sde: disable hw-fencing for commit before vm transition
This change disables hw-fencing for the last commit before
vm transition. This avoids configuration issues if hw-fencing is
disabled in the incoming VM.

Change-Id: I573b7d1665f8cef442168bd0ab83a4b2b6cebbb6
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-07-28 13:18:23 -07:00
Grace An
69c0f721c5 disp: msm: sde: add ctx_id to debug message in sde_fence_signal
Print the fence's ctx_id in debug message for timeline reset attempt.

Change-Id: I920105e8e6a088b82fcfeec1be6ba60bac24b02f
Signed-off-by: Grace An <quic_gracan@quicinc.com>
2022-07-22 07:15:45 -07:00
Christina Oliveira
21ca2acab9 disp: msm: sde: add support for hwfence profiling
This change adds hwfence input and output fence profiling
registers and debugfs to enable them.
To enable input hw fences timestamps:
echo 0x1 > /d/dri/0/debug/hw_fence_status
To enable output hw fences timestamps:
echo 0x2 > /d/dri/0/debug/hw_fence_status
To enable both, input and output hw fences timestamps:
echo 0x3 > /d/dri/0/debug/hw_fence_status.

Change-Id: I269a38f3843a01ec8c0816890e50bb7d847a4ed9
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-05-18 09:38:40 -07:00
Christina Oliveira
d2d060cf80 disp: msm: sde: add hw fence support for prog line count
This change adds support for triggering output
hw fence upon programmable line count.

Change-Id: Ie4b8252e4f9a448a8c11d17696b9bb0ded81b04b
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-05-16 12:45:49 -07:00
Christina Oliveira
640c8111d3 disp: msm: sde: add support for hw-fence feature
Starting mdss 9.0, dpu supports triggering
the frame fetch through hw-fencing. This change
adds support for this hw-fence feature.

Change-Id: Icc7d0b69fc2a51103d14612f5ac89b44a47ed826
Signed-off-by: Ingrid Gallardo <quic_ingridg@quicinc.com>
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-05-16 12:41:28 -07:00
Jayaprakash Madisetty
f8180b0e86 disp: msm: sde: dump user input_fence info on spec fence timeout
This change dumps the userfds input_fence info in dma_fence_array
on speculative fence wait timeout. This will be helpful to isolate
the real fence timeouts when spec fence bind gets successful.

Change-Id: I6aa37a06025f5ea43aaed8733f0803bfadd260fd
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2022-01-13 14:35:44 +05:30
Jayaprakash Madisetty
cc6122b749 disp: msm: sde: allow spec fence signaled with PENDING_ERROR as non fatal
In concurrent display usecases, dma_fence_array signaled op
can be called early which sets SIGNALED_BIT on spec fence, but
irq_dma_fence_array_work is not scheduled yet which clears the
PENDING_ERROR in dma_fence. Add changes to treat pending_error
with signaled cases as non fatal.

Change-Id: I3a59032345b8c6d1488e947e74985ed929112d1c
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
2021-08-31 14:18:43 -07:00
Jayaprakash Madisetty
dad1b5f51e disp: msm: sde: handle spec fence bind failure case as non fatal
Add changes to handle speculative fence bind failure case with
invalid userfd as non fatal scenario and stage white frame in such
case.

Change-Id: I1386bfc5ecb5107ab100be220c24597f883d9bd6
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
2021-07-27 13:22:51 +05:30
Jayaprakash Madisetty
911ec46c9f disp: msm: sde: stage white frame when input fence has error set
Add changes to check for error status in dma_fence on task wakeup
and when error is set white frame gets staged to handle such input
fence failures.

Change-Id: I8f3c9f746334c6d03a272ab4e33f51afb84057ea
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
2021-06-29 20:39:04 +05:30
qctecmdr
cf799d8de0 Merge "disp: msm: sde: add changes to fix the sde fence signaled logic" 2021-06-23 00:02:16 -07:00
Jayaprakash Madisetty
08278cb8cb disp: msm: sde: add changes to fix the sde fence signaled logic
This change allows signalling of sde fences when sequence number is
less than done_count. In current scenario, fence is not signaled as
the subtraction result is not typecasted to int before updating
the status causing the UI thread to block on sde fence.

Change-Id: I3ca62222e0c67223b9eaf299474a2c282d761d3a
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-06-15 14:55:49 -07:00
Veera Sundaram Sankaran
52ba19edb4 disp: msm: sde: use dma_fence_signal_timestamp api for fence signal
Use the upstream function dma_fence_signal_timestamp_locked to signal
the sde fences with timestamp parameter instead of the downstream version.

Change-Id: I9e0dcc3bafa16e78fe80268f560bf003ac1a2bc1
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2021-06-13 21:17:55 -07:00
Tatenda Chipeperekwa
c6257272d4 disp: msm: fix compilation errors for dlkm compilation
Fix dlkm compilation errors that are due to the use of -Werror
flags used by the build system.

Change-Id: I5e1e9bc63c1361d73e4930aab123212717872ecb
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2021-03-22 15:25:36 -07:00
Veera Sundaram Sankaran
835f8513dc disp: msm: sde: signal dma-fence and handle callbacks from sde driver
Signal the retire/release fences from within the sde driver instead of
calling the dma-fence api. This allows the driver to set the desired
timestamp for the fences. Replicate the dma-fence api functionality to
set the signaled and timestamp flags and handle the registered callbacks.

Change-Id: I951b599fc92d6d054847f24f0acb04aee27bdefb
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2021-02-26 13:48:58 -08:00
Steve Cohen
7fc26f91b2 disp: msm: sde: let dma-fence driver set timestamp on signal
Avoid corrupting the cb_list by setting timestamp before signal.
The fence driver changed in msm-5.4 by creating a union for the
fence cb_list, timestamp, and rcu. Therefore only one of these
fields can be used at a time. Fence driver will take care of
setting the timestamp during dma_fence_signal after it has
cached the cb_list. Also, use fence framework API to set fence
error instead of modifying the dma_fence struct directly.

Change-Id: I58dbaa495027cb575f4f0b03275ca4aa551ecacb
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-02-11 16:57:09 -08:00
Veera Sundaram Sankaran
76262482ed disp: msm: sde: allow fence signalling during crtc disable
With the new ASYNC power-mode changes, user-mode can
request for retire/release fences during power-mode
changes. This is used as a signal for power-mode
completion by user-mode. Allow preparing/signalling
these fences during crtc enable/disable to support it.

Change-Id: I7709cd4762c8d77776ba6ba2d07aa6b76b5262d0
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2019-07-26 14:54:34 -07:00
Dhaval Patel
d710ac7f11 disp: msm: sde: avoid duplicate fence create from client
SDE fence driver avoids duplicate fence creation if
fence timeline is not increased. This may lead to issue
if client closes the fence with failure ATOMIC_COMMIT.
SDE fence driver provides the closed fd node to subsequent
valid commit and leads to invalid state. This patch avoids
duplicate fence creation from crtc and connector object
instead of sde_fence.

Change-Id: Ic7b43762f0ad251fb20e42edb5f4d5f401790e14
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2019-07-10 11:15:23 -07:00
Narendra Muppalla
3709853456 Display drivers kernel project initial snapshot
This change brings msm display driver including sde,
dp, dsi, rotator, dsi pll and dp pll from base 4.19 kernel
project. It is first source code snapshot from base kernel project.

Change-Id: Iec864c064ce5ea04e170f24414c728684002f284
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2019-04-14 22:20:59 -07:00