Commit Graph

306 次程式碼提交

作者 SHA1 備註 提交日期
qctecmdr
e5aaaf8785 Merge "disp: msm: dsi: fix the DMS mode flag setting" 2019-07-06 14:05:03 -07:00
qctecmdr
21af73b82c Merge "drm/msm/dsi-staging: update frame transfer time calculations" 2019-07-06 04:53:51 -07:00
qctecmdr
e2944aac08 Merge "drm/msm/dsi-staging: register panel with global registry" 2019-07-05 23:21:13 -07:00
qctecmdr
751cbf5570 Merge "disp: msm: sde: avoid connector state mode update" 2019-07-05 21:36:26 -07:00
qctecmdr
c32ed35783 Merge "disp: msm: sde: dump lm rsvps when reservation fails" 2019-07-05 19:49:10 -07:00
qctecmdr
970ae8ce7b Merge "disp:msm: fix return type from runtime api" 2019-07-05 16:05:14 -07:00
Ray Zhang
dc36ec057b disp: msm: dsi: fix the DMS mode flag setting
DFPS validation doesn't update DSI_MODE_FLAG_DMS when there is
only refresh rate change but not resolution change. This is not
expected. DMS should be able to support this use case if DFPS
is not enabled.

Change-Id: I738bce68b1dc098338281ac95156a483769608c4
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2019-07-05 11:02:02 +08:00
qctecmdr
9bca267510 Merge "disp: msm: sde: avoid false error for encoder restore" 2019-07-04 13:04:57 -07:00
qctecmdr
56c84a97d2 Merge "disp: msm: sde: fix error return in plane atomic_check" 2019-07-04 11:19:34 -07:00
Dhaval Patel
10d925633a disp: msm: sde: avoid false error for encoder restore
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.
2019-07-03 11:02:44 -07:00
Nilaan Gunabalachandran
98434934c6 disp: msm: dp: filter modes based on sde resource availability
Not considering the currently available sde resources and
caps while filtering/validating a mode will report unavailable
modes and result in an atomic commit failure.
DP should calculate the number of required lms and verify
if lms/3dmux are available before a validating a mode.

Change-Id: Idadcc655c30f5a831c47cf22b60085052b5b9fcd
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-02 17:34:55 -04:00
Nilaan Gunabalachandran
c7bf5c0293 disp: msm: sde: track available hw resources
Track available hw resources using a common data structure in
the sde_rm object and pass available hw resource info to
interface drivers to make informed decisions in preparing
or filtering display modes.

Change-Id: I05649623233b0f531582e8c90d1ef92c7fceded4
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-02 17:34:54 -04:00
Nilaan Gunabalachandran
d92000cdd4 disp: msm: add resource caps structure and api changes
Create a data structure to maintain available hardware resources
and track capabilities. This data structure is used to send
the current available resources and caps information to
connector ops get_mode_info, get_modes and validate_mode to
process the display mode.

Change-Id: If38fc628ee5ab4729821f88c0050ab45375187b8
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-02 17:34:49 -04:00
Lakshmi Narayana Kalavala
6f3081e24d disp: msm: sde: dump lm rsvps when reservation fails
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>
2019-07-02 14:06:02 -07:00
Abhijit Kulkarni
dcea657cce disp: msm: sde: avoid connector state mode update
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>
2019-07-02 12:57:31 -07:00
Vara Reddy
98ac941a1b drm/msm/dsi-staging: update frame transfer time calculations
Change updates frame transfer time calculations. Frame threshold
is provided as input to decide on the final transfer time.
Panel dsi clock node followed by mdp transfer time node
will take priority in selecting final transfer time than frame
threshold time.

Change-Id: I40c3abfc635cd9b338b705535612ac32e047ce6e
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2019-07-02 12:48:34 -07:00
qctecmdr
40e4d191d3 Merge "disp: msm: sde: log intf framecount in event logs" 2019-07-02 02:26:16 -07:00
qctecmdr
3a81fc3744 Merge "disp: msm: sde: use high bandwidth threshold for crtc check" 2019-07-02 01:24:17 -07:00
Veera Sundaram Sankaran
c102669c98 disp: msm: sde: fix error return in plane atomic_check
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>
2019-07-01 17:45:55 -07:00
Harpreet Eli Sangha
4999d92e48 drm/msm/dsi-staging: register panel with global registry
allow other device drivers to find this drm panel in global registry

Change-Id: I945bdbe9d8ed85dbb20f876e72687d6363c27492
(cherry picked from commit 9fd9ee68951d477aa9be580b047adcb72eff55c3)
Signed-off-by: Harpreet "Eli" Sangha <eliptus@google.com>
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2019-07-01 14:03:52 -07:00
qctecmdr
84f87add48 Merge "disp: msm: dp: skip audio notify wait for completion" 2019-06-30 01:14:19 -07:00
qctecmdr
2df7ab2694 Merge "disp: msm: dsi: update DSI PHY sequence for Kona" 2019-06-29 19:44:03 -07:00
qctecmdr
274a5a6fda Merge "disp: msm: sde: clean up LTM driver states when lastclose is called" 2019-06-28 23:39:13 -07:00
qctecmdr
ea1ed2c7fc Merge "msm/sde/rotator: Initialise rotator module after MDP module init" 2019-06-28 22:04:04 -07:00
qctecmdr
1e0adcd9e7 Merge "disp: msm: dsi: increase mode max allowed" 2019-06-28 21:20:03 -07:00
qctecmdr
57fca09868 Merge "msm/sde/rotator: Remove deprecated SMMU api's in rotator driver." 2019-06-28 17:17:16 -07:00
qctecmdr
e183a358bb Merge "disp: msm: sde: remove checks in LTM hist disable function" 2019-06-28 16:31:16 -07:00
qctecmdr
9d4d930487 Merge "disp: msm: sde: update max supported display height" 2019-06-28 12:37:53 -07:00
qctecmdr
385a424905 Merge "disp: msm: sde: Add DSPP NULL pointer check in reg dma" 2019-06-28 10:17:49 -07:00
qctecmdr
63d4a3cecd Merge "drm: msm: Do not check for 0 mixer count" 2019-06-28 08:46:11 -07:00
qctecmdr
d2ffb846ba Merge "disp: msm: sde: reset ctl during wr_ptr_irq timeout" 2019-06-28 04:27:31 -07:00
qctecmdr
5b2917a3c8 Merge "disp: pll: remove unsupported dividers for DSI pixel clock" 2019-06-28 02:53:01 -07:00
qctecmdr
fc92a6d9f6 Merge "disp: msm: dp: Implement dsc slice selection logic based on sink caps" 2019-06-27 09:50:51 -07:00
qctecmdr
62777b5cf4 Merge "disp: msm: add array out of bounds index check" 2019-06-27 08:06:53 -07:00
qctecmdr
8d38e0fb46 Merge "disp: msm: fix vsync wait for poms and dms" 2019-06-27 05:57:07 -07:00
qctecmdr
c096b1d1dc Merge "disp: msm: dsi: Fix incorrect DSI PHY timing of version 4" 2019-06-27 03:34:31 -07:00
qctecmdr
acf755573d Merge "disp: msm: dsi: DSI PHY V4 support of dynamic clock switch" 2019-06-27 03:34:31 -07:00
Shubhashree Dhar
2179aedbdc msm/sde/rotator: Remove deprecated SMMU api's in rotator driver.
Remove deprecated smmu api's and add support for new api's
in rotator driver.

Change-Id: Ib7a3f48fe22867725e1224caf3489bf47044e37b
Signed-off-by: Shubhashree Dhar <dhar@codeaurora.org>
2019-06-27 14:21:21 +05:30
Yuchao Ma
683585ad7a disp: msm: sde: remove checks in LTM hist disable function
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>
2019-06-26 19:45:52 -07:00
Fuad Hossain
1fb461e35e disp: msm: sde: Ensure that dirty dsc blocks are flushed properly
When a dsc block gets disabled, it is not being
flushed properly because the kms_commit clears
the flush bits before the next vsync.

In a two commit scenario where the first commit
disables both dsc blocks within the same dsc
block pair, and where the second commit enables
only one of the dsc blocks in the pair, only the
second commit's dsc block gets flushed properly
because checks for dirty dsc blocks are currently
only happening if dsc is disabled for the
encoder. Since the first commit's disabled dsc
block was not flushed to hardware, there will be
errors such as pingpong timeouts and fifo
underruns, which can lead to distorted images on
the panel.

This problem manifests itself in suspend/resume
scenarios involving dp dsc connections which only
use one dsc block. During a suspend, the two dsc
blocks that were used by dsi are released due to
a null commit coming from userspace. While
resuming, depending on the mode, one of these
released dsc blocks will be alloted to dp,
leading to the problem described above.

CRs-Fixed: 2471336
Change-Id: Ifd71c980a04d63a87923eb0bece96646d4804533
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-06-26 16:49:15 -04:00
Nilaan Gunabalachandran
c6092f3e66 disp: msm: sde: log intf framecount in event logs
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>
2019-06-26 11:54:51 -04:00
Zube Molokwu
e23e3e27bf disp: msm: dp: skip audio notify wait for completion
Skip the wait on audio subsystem response in case of external display
connect event.

Change-Id: Id7a0ac48f540f025293717e60c28967b83ad46ee
Signed-off-by: Zube Molokwu <zmolokwu@codeaurora.org>
2019-06-25 18:26:22 -07:00
qctecmdr
6a9e397c73 Merge "disp: msm: dp: add session check for audio register programming" 2019-06-25 18:13:35 -07:00
Samantha Tran
e9548a791b disp: msm: dsi: increase mode max allowed
This change updates the DSI_MODE_MAX macro from
5 to 32.

Change-Id: Ic5ef1005bec525248315daab71bae9ac591ee149
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-06-25 10:46:18 -07:00
Veera Sundaram Sankaran
6da6eb6774 disp: msm: sde: reset ctl during wr_ptr_irq timeout
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>
2019-06-24 15:33:56 -07:00
Xu Yang
9b14f40e90 disp: msm: sde: Add DSPP NULL pointer check in reg dma
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
2019-06-24 16:01:29 +08:00
Ping Li
c4b9783866 disp: msm: sde: clean up LTM driver states when lastclose is called
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>
2019-06-21 11:29:12 -07:00
Nilaan Gunabalachandran
14d6b4a342 disp: msm: sde: use high bandwidth threshold for crtc check
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>
2019-06-21 09:48:16 -04:00
Jayaprakash
25c23149d7 disp: msm: sde: update max supported display height
Update maximum supported display height.
This fix allows videoplaybacks of src height upto 5760.

Change-Id: I31ccf40a0b1b7a12e64b026235b6b39c970fc8fe
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2019-06-21 14:56:46 +05:30
Dhaval Patel
7b5c2fff43 disp: msm: fix vsync wait for poms and dms
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>
2019-06-20 22:12:01 -07:00