This change is a snapshot of dsi files taken of 4.14
as of commit 764f7c2 (Merge remote-tracking branch
'quic/dev/msm-4.14-display' into msm-4.14)
Change-Id: I8361a844c35a4450f7800964a8da2741676fd6c7
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
Currently the display driver does not consider the write back
client while deriving client type for QOS settings.
Add new API to consider the write back and other non
real time clients also for picking up the proper QOS settings.
This patch also fixes the QOS setting mismatch with QSEEDLITE
hardware.
Change-Id: I5db3d21921b8930bb6399ea355d3ce2b60e51430
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
In the case of concurrent writeback, display thread
does not wait for writeback done and the fences are released
immediately if the pending frame count is one or zero.
Also during this skip wait process, the output frame buffers are also
cleaned up. If there are couple of bad writeback frames, there could
be a race condition between frame buffer cleanup in the display driver
and DRM_IOCTL_MODE_RMFB ioctl from userspace. Hence add appropriate
ref count logic with output frame buffers while the driver is using them.
Change-Id: I1cf919b93424011c75c39bcddd296a03a9d5c4ee
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Below sequence can trigger encoder restore failure due
to cur_master unavailability.
-> Primary encoder is attached to crtc-0
-> Primary encoder enters in power collapse state
-> CWB encoder attached to crtc-0
-> Atomic_check updates the crtc encoder_mask with
two encoders.
-> Prepare_commit triggers power restore
-> crtc triggers encoder_restore based on encoder_mask
CWB encoder is not enabled at this stage and it will fail
to restore. This patch avoids the error message in this
valid condition.
SDE driver currently does not dump the resource information
when there is a failure with reservation. This change
adds the logic to dump the layer mixer rsvps with
reservation failures.
Change-Id: Idcfb36b25bf8da18a9f6f803ba5de51aaa812334
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
There is a race condition between sdm thread and display thread, when
sdm thread may be accessing the mode_info field while duplicating the
connector state, display thread may be updating the current mode info.
This would lead to the next commit using invalid mode and could cause
wrong hw configuration.
This change removes copying the mode_info in encoder struct while
atomic check phase and also removes accessing the connector mode_info
during mode_set. The encoder struct is now updated at the mode_set
with the cached connector mode.
Change-Id: I069ed592ec017ce4aa5c9c94b340bf94c5e1ebff
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
In plane atomic_check function, the error code
from one of the checks is overwritten by the
return-value of subsequent check. This leads to
wrong return-value propagation resulting in
undefined behavior. Fix it to return the appropriate
error code on any failure.
Change-Id: I53b427d1b69c3ebfaa6709814bd9095676ff942d
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
The right_mixer and hist_en checks in LTM hist disable function are
not valid for dual display use cases, since in dual display use cases,
right_mixer will always be NULL.
When device enters suspend state, hist_en will be set to false in
sde_cp_crtc_suspend(), and together with the right_mixer check,
it will block the ltm buffer lists from resetting and cause LTM has
no buffers to use after resume.
Change-Id: I51b1b00f4af59e42105322de68019479c65f2fbb
Signed-off-by: Yuchao Ma <yuchaom@codeaurora.org>
Log hardware interface framecount during te and vblank irqs for
command and video mode panels, respectively. This will help in
debugging any missed frames.
Change-Id: Ie86f686c4cc12de6a1f31aa47d4c7a5b8a68ea55
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
wr_ptr_irq timeout signifies that the MDP is stuck
on either the current or previous frame. Handle
ctl reset and fence signalling as part of this
timeout handling. This logic would help to recover
the HW faster in case of posted-start.
Change-Id: I09b3d21772df431f9fc4a58b2fd9b4fcac4a7de7
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Add DSPP NULL pointer check in reg dma when get dspp block.
Change fixes the possibility of kernel NULL pointer dereference
issue in stress test.
Change-Id: I9aa5514f7508cd7e316daf9e73fef313e6d1c9d4
Clean up LTM buffers and reset LTM related lists when lastclose is
call to make sure LTM will be in clean state when hwc restarts or
when user runs LTM driver lua tests.
Change-Id: Ib2af68e70f2e5ff246aca890487085bc46dca7da
Signed-off-by: Ping Li <pingli@codeaurora.org>
SDE curently uses two different bw thresholds, depending on
video and command mode panels. The lower threshold that was
being used with video mode caused perf check to fail, even
though it was still a valid functional use case. The driver
should always use the higher max bandwidth when checking
core crtc performance.
CRs-Fixed: 2470842
Change-Id: I59b85dd320ce5fcb94848d4cd4ce6d1eaf7abeaa
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
SDE RSC does not need to wait for vsync during
dms. It was removed unintentionally with commit
a74d2cf7fa ("disp: msm: add runtime_pm ops
support in drm driver"). However, Panel mode
switch still needs vsync wait based on
recommendation. This change fixes vsync wait
for both cases.
Change-Id: Ic9119132eb15a8c33f3841ba5df2624189d93395
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Writeback modes are passed from DRM driver client and it may provide
invalid configuration. Add null checks for sde_wb_config provided by
client to avoid null access in subsequent calls.
Change-Id: I0924f8907d98e2ecb891cfc0c09191823d9033e8
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Initialize LTM phase init_h values with single pipe configuration
value for both LTM blocks, so in dual panel use case, the correct
init_h values will be programed for LTM_0 and LTM_1.
As for dual pipe merge configuration, init_h value for LTM_1 will
be overwrite with the correct configuration if merge_en is set.
Change-Id: I8719b217cf7e5677e23c17b3c3f62f4ee23f43e9
Signed-off-by: Yuchao Ma <yuchaom@codeaurora.org>
Add null check for plane state pointer before
dereferencing it.
Change-Id: Ic66efd11a70162ffe65c2137a5f19688314c45a5
Signed-off-by: Prashant Singh <prasin@codeaurora.org>
As per hardware recommendation, DMA pipe
width is reduced to 2880, while vig
pipewidth is 4096.
Change-Id: I70dbd44b4883f49879686003ba1fe9694434daab
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
New version of the gamut block has been introduced with changes to
the scale/offset programming. Change updates the minor version for
the feature.
Change-Id: I62597a9d229e13e10e0ac0f1183b2db2b0b2a575
This change adds proper null checks after using
kcalloc and returns early to avoid accessing null ptr.
Change-Id: I948ad37eb120e00c5f6e3ae2e3b967819cbd233b
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
This change takes a snapshot from 4.14 to 4.19 as of
commit 47d149c31967 ("drm/msm/sde: Add null pointer
sanity checks").
Change-Id: Ib40428c562c3561c8a20d9849f16d13151496005
Signed-off-by: Samantha Tran <samtran@codeaurora.org>