提交图

602 次代码提交

作者 SHA1 备注 提交日期
Dhaval Patel
8278fa6b3e disp: msm: sde: avoid cpu wakeup with vsync event timer
Vsync event timer wakeup was designed to reduced the
interrupt latency and trigger retire fence without delay.
This is fixed by avoiding CPU power collapse where MDSS
interrupt is scheduled. This change avoids extra CPU
wakeup.

Change-Id: Iadaf0e2b84fb079bbc64d9201230df54f8dbe8c1
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2020-05-27 17:46:18 -07:00
Dhaval Patel
d46cae019e disp: msm: sde: trigger pm_qos vote with irq enable
Video mode display keeps the MDP clocks in ON state but
disables irq during static screen to avoid cpu wakeup.
In such case, CPU pm_qos vote should also be removed
to allow LPM transition. This change triggers the
pm_qos vote based on mdp interrupt enable counts
instead of runtime_pm callback. It works for
multi-display concurrency also.

Change-Id: I7a60f3f593e409269e00abd7499c4a5756035615
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2020-05-27 17:46:07 -07:00
qctecmdr
281e18b317 Merge "disp: msm: sde: create a dummy smmu device for scm transactions" 2020-05-26 05:33:13 -07:00
qctecmdr
f2b1cba0d5 Merge "disp: msm: dsi: add api to control dsi active status" 2020-05-25 13:47:05 -07:00
qctecmdr
a8f62850f1 Merge "disp: msm: sde: avoid disabling dsc encoder in PP block" 2020-05-25 10:52:49 -07:00
qctecmdr
fc44cf529b Merge "disp: msm: sde: add ubwc entries to crtc only if supported" 2020-05-25 10:52:48 -07:00
qctecmdr
a6c09b6f84 Merge "disp: msm: sde: fix null check for encoder dsc disable" 2020-05-23 01:38:01 -07:00
qctecmdr
db766d7c86 Merge "disp: msm: sde: modify check for active datapaths" 2020-05-21 13:41:41 -07:00
qctecmdr
8a434e9feb Merge "disp: msm: sde: Remove duplicate destination scaler checks" 2020-05-21 10:56:08 -07:00
qctecmdr
476184ffa1 Merge "disp: msm: sde: check and program DS only on CRTCs that support it" 2020-05-21 10:56:08 -07:00
obrody
0fbdc8458e disp: msm: sde: Remove duplicate destination scaler checks
Delete destination scaler dirty bit clearing when crtc
is disabled as well as during duplicate state.

Change-Id: I4b2201c792a6750c060b2d9291d52547d8a81c15
Signed-off-by: Manoj Kumar AVM <manojavm@codeaurora.org>
Signed-off-by: obrody <obrody@codeaurora.org>
2020-05-21 09:41:45 -07:00
qctecmdr
897da30d8f Merge "disp: msm: sde: switch esd detection to panel read" 2020-05-20 02:36:54 -07:00
Veera Sundaram Sankaran
b382719077 disp: msm: sde: avoid disabling dsc encoder in PP block
DSC encoder block disables the right DSC block on
pingpong for right-only or left-only partial update
frame trigger after a full frame update. This would
cause issue with posted-start feature as the register
is not double buffered. Avoid disabling in PingPong
block as the DSC encoder being used can be controlled
by the DSC common_mode setting.

Change-Id: I20791b925c1a6f8694673e2f8d43e5283305c131
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-15 11:17:10 -07:00
Veera Sundaram Sankaran
6575366a16 disp: msm: sde: fix possible null pointer dereference
Fix a possible uninitialized variable usage in sde
catalog and a null pointer dereference in sde crtc.

Change-Id: I4299ade65fa7cf5bfc3d60d6d7a368d523286626
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-15 10:18:23 -07:00
Alisha Thapaliya
e2f98dc79b Revert "disp: msm: sde: adjust DSC encoders to support all 4LM topologies"
This  reverts commit 6a50aedbfa.

Change-Id: I3570b18728cfad2843ca7f3a7d0276cda32c9492
2020-05-14 11:51:15 -07:00
Narendra Muppalla
43f4c3c9ce disp: msm: sde: create a dummy smmu device for scm transactions
Since drm smmu device is configured to support only 32 bit addressing,
but IOMMU expects 64 bit addressing configured device. This change
creates a dummy device with 64 bit mask for addressing to map and unmap the
shared memory for any scm call.

Change-Id: If4de87e3402e5ad914563961967f2390adda5cd5
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-05-14 11:31:25 -07:00
Amine Najahi
bf1c81232c disp: msm: sde: check and program DS only on CRTCs that support it
Currently, when runtime_pm_suspend occurs DS property is marked
as dirty invariably if the CRTC allocated the blocks or not.
This causes atomic check failure on CRTCs without DS allocation.

Change-Id: I90287e8e283d2e80aa47627d4aa045040d76b472
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-13 23:53:38 -04:00
Krishna Manikandan
8dd8a0f1bb disp: msm: sde: fix null check for encoder dsc disable
There are some scenarios where connectors can be
null during encoder dsc disable. Update the null
check to avoid error message during these scenarios.

Change-Id: I598a644f19aecf0b7d8c989a75575329903678dd
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-05-13 16:49:20 -07:00
Veera Sundaram Sankaran
88acaa31b8 disp: msm: sde: reuse cont-splash path for LE VM resource allocation
Add necessary checks during the splash init to check
& execute the splash/ramdump buffer mapping/unmapping
only for the cont-splash use-case. This would help in
reusing the same path for LE VM setup during device assign,
which does not have any splash buffer.

Change-Id: I3ce168c530c7db4b14465efa3fd87889b5f99f5b
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-11 12:11:48 -07:00
Veera Sundaram Sankaran
68b75aac24 disp: msm: use FB_NON_SEC_DIR_TRANS plane hint for TUI VM buffers
Add plane buffer flag to get the correct aspace during
TUI VM usecase. FB_NON_SEC_DIR_TRANS plane flag is set
by user-mode to indicate S2-only non-secure buffer in
TUI VM. Return the default drm device when SMMU is not
available during get_aspace_device to make the working
seamless with/without SMMU.

Change-Id: I158dc17ba51ff4b2f302d3e7017db8ab3cfe2b84
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-11 12:11:39 -07:00
Veera Sundaram Sankaran
bfec52ae7b disp: msm: sde: add SID setup function for pipes and lutdma
Add SID setup function to help programming
the SIDs for all the pipes and lutdma xin clients
based on the VM.

Change-Id: Iea598303b480b33de8750e0988129dd5cdfe7572
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-11 12:11:31 -07:00
Veera Sundaram Sankaran
7245366343 disp: msm: sde: parse MDSS HW from device tree
Get the MDSS HW version from the device tree instead
of reading directly from the hardware register.

Change-Id: Icfb7a80c8f19312001b070a454741421fd67aae5
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-11 12:11:18 -07:00
Krishna Manikandan
5541a20748 disp: msm: sde: modify check for active datapaths
In some cases like suspend and cwb concurrencies,
the number of mixers in the sde_crtc structure
can become zero. Add support to get the number
of mixers from topology in those cases to
avoid incorrect resource allocation request.

Change-Id: Id9b82e805ff50a107ad06514b4e41c0917abdf33
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
2020-05-08 13:48:49 -04:00
qctecmdr
774b8376e3 Merge "msm: sde: update histogram buffer submission for ltm" 2020-05-07 08:13:49 -07:00
Gopikrishnaiah Anandan
8033050f92 msm: sde: update histogram buffer submission for ltm
When histogram buffer is queued by driver client, during the display
commit buffer has to be submitted to hardware. Currently driver is
waiting for previous histogram to finish before submitting the new
buffer. This can cause the histogram to be invalid, change updates the
submission logic of buffer.

Change-Id: I76b595fa96d1c2dd01c841de3cf228d4fa7fd75d
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2020-05-07 01:25:52 -07:00
qctecmdr
2e3e5cb274 Merge "disp: msm: sde: avoid resource reservations clean up leak" 2020-05-06 23:27:07 -07:00
Abhijit Kulkarni
89151186f3 disp: msm: sde: switch esd detection to panel read
This changes the method of esd detection at tx timeout
from TE to panel status read for panels having status
read as default method.
When ESD is triggered, even if spurious TE interrupt fires
after resetting the panel gpio, driver correctly follows
the recovery after esd failure.

Change-Id: Ib33537319f128c038f5774829dfd09bab9664fea
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-05-06 13:23:04 -07:00
Prabhanjan Kandula
441dc79ab0 disp: msm: sde: avoid resource reservations clean up leak
Resource reservation of an atomic state should be cleared
irrespective of the state of a display. This change relaxes
the encoder - connector chain up check as this may not be
available during a modeset disable outputs scenario.

Change-Id: I8a51973b7c77787ff19d894458a1b73580b93de2
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2020-05-06 13:16:29 -07:00
Amine Najahi
6a50aedbfa disp: msm: sde: adjust DSC encoders to support all 4LM topologies
Add support for all 4LM topologies in new DCE encoder framework.
This change also aligns with the new way of checking topology
information.

Change-Id: I20785c96569fd07cbd8016d244a7e4c929bfa071
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-06 14:16:40 -04:00
Amine Najahi
4fef803aff disp: msm: sde: increase max number of mixers to 4
Increase the maximum number of mixers per crtc to 4 to
support 4LM use case. This change also increases the number
of data path to 4 to support 4LM in continuous splash handoff.

Change-Id: I4655017dcb405fad69513bebb8fd7f848fc5873d
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-06 14:16:31 -04:00
Amine Najahi
80a1238f16 disp: msm: sde: reduce complexity in _dce_dsc_setup_helper
Lower the cyclomatic complexity for this function by splitting
the work into helper functions.

Change-Id: Ib69f542701009f5b8f5d4f7462ba84a5ab116c1b
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-06 11:33:30 -04:00
Amine Najahi
c9eb6c1102 disp: msm: sde: fix mixer count calculation for 4LM topologies
Currently mixer calculation does not take the number of LMs into
consideration when it is greater than 2. This changes adjusts mixer
count for 4LM use cases based on maximum clock and pipe width.

Change-Id: I05631dee3beadaa0d50548282a539835bcb548c0
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-06 11:33:08 -04:00
Amine Najahi
8dd5deed11 drm: msm: sde: reserve LM in pairs for 4LM topologies
Reserve LM in the sequence of primary-peer and then
primary-peer again until all required LM are reserved.
Searching sequence will not change for single/dual LM
reservation. For single LM reservation it will return
right after the first primary LM is found. For dual LM
reservation it will return after the first primary-peer
pair is found.

The logic can also work for triple/quad or any number
of LM reservetion and make sure that all the reserved
LMs are in pairs except the last one if total LM number
is odd.

Change-Id: Ia28bb64fedeb43430039775051943d751259a3d2
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
Signed-off-by: satbir singh <satbsing@codeaurora.org>
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
2020-05-06 11:32:53 -04:00
qctecmdr
4d124f3e10 Merge "disp: msm: sde: add plane staging management for 4LM topologies" 2020-05-06 01:21:56 -07:00
qctecmdr
6ced01af10 Merge "disp: msm: sde: cancel delayed work when in auto-refresh" 2020-05-06 01:21:55 -07:00
qctecmdr
e9b326e3f2 Merge "disp: msm: sde: move HW recovery outside ppdone wait" 2020-05-05 20:30:53 -07:00
qctecmdr
411411725f Merge "drm/msm/sde: add sui blendstage support for lahaina" 2020-05-05 20:30:53 -07:00
Amine Najahi
89c7e1dadf disp: msm: sde: add plane staging management for 4LM topologies
When a 4LM topology is used each plane attached to a CRTC
is tagged with a L/R layout value and an offset value
depending on where destination X coordinate lands on the display.
The layout information is used to determine SSPP to LM
pair mapping and local coordinate space.

This change also handles source-split and Z-order
validation checks for planes staged on different mixer
pairs.

Change-Id: I1b20223388e65fc36a8b379ad9df23a277fcd1a5
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-05 23:06:39 -04:00
Amine Najahi
e7a890df11 disp: msm: sde: add 4LM topology variants in resource manager
Add 4LM topology variants in resource manager and in drm
connector topology name property.

Change-Id: I13e6eaafe60037b48d2c9d356f668b69720cbf48
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-05 23:04:15 -04:00
qctecmdr
c587442d57 Merge "disp: msm: sde: decouple FETCH_PIPE_ACTIVE logic from setup_blendstages" 2020-05-05 18:29:34 -07:00
qctecmdr
154ee80381 Merge "disp: msm: update rm topology mapping tables" 2020-05-05 18:29:34 -07:00
Steve Cohen
504b10377f disp: msm: sde: cancel delayed work when in auto-refresh
Display is entering into mode2 since no new frames are queued,
but auto-refresh requires HW to remain active. Make sure to
cancel the timer for entering idle power collapse whenever
there's a kickoff with auto-refresh feature enabled.

Change-Id: I0ac74e514c9893c31506edc3f2d7e069ab9a3ef8
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-05-05 15:02:03 -07:00
Narendra Muppalla
fffb767bc0 drm/msm/sde: add sui blendstage support for lahaina
This change adds secure-ui blendstage support for
lahaina target.

Change-Id: If6e0f9df469e39f53329b264416ef9214ec01be9
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-05-05 11:00:44 -07:00
qctecmdr
a2a04712a9 Merge "disp: msm: update VDC-m hardware version in display driver" 2020-05-04 23:32:46 -07:00
Narendra Muppalla
218244e58b disp: msm: update rm topology mapping tables
This change updates resource topology mapping tables and includes
logic to compare compression types for dsc vs vdc.

Change-Id: I1735edeb07aec8ed0065f84ac0824c58158412f3
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-05-04 22:47:11 -07:00
Steve Cohen
d26bf3c6fd disp: msm: sde: move HW recovery outside ppdone wait
With posted start enabled SW no longer waits for ppdone events
unless more than one frame is in queue. HW recovery logic relied
on these waits to know when we recover from a timeout. This
change moves the HW recovery SUCCESS event signalling outside of
the wait to ensure this event is sent to user-space regardless
of the status of posted start.

Change-Id: I8896e8126284b415513499723ccf0155ee8bc6a7
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-05-04 19:48:51 -07:00
Steve Cohen
b9e3d4aebb disp: msm: sde: decouple FETCH_PIPE_ACTIVE logic from setup_blendstages
Setup blendstages is done per LM but FETCH_PIPE_ACTIVE is per CTL.
Overloading mixer blendstage setup with fetch pipe logic can lead
to HW programming errors. Refactor the logic for setting
FETCH_PIPE_ACTIVE by adding a new op that allows caller to provide
a bitmask of all pipes required to be active on this CTL. This new
logic includes support for:
 - 4LM use-cases, staging pipes for all LMs within a CRTC
 - Demura fetch-pipe without need for tracking via active_cfg (removed)

Also, lower the cyclomatic complexity in setup_blendstages by moving
the logic for obtaining the mixer config settings in to a helper
function.

Change-Id: I2907b359ffad5734be5b06f44919b5ddb1ef3f7c
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-05-04 19:47:00 -07:00
Prabhanjan Kandula
62cb53cc59 disp: msm: sde: fix compression info usage in resource alloc
Currently, compression info passed to resource manager is not
valid in atomic check phase. Also in current design allocation
of msm mode info object is from stack which is huge and causing
stack overflow in continuous splash use case. This change fixes
these issues by moving mode info object to heap allocation.

Change-Id: Ifaf39b3ae59c942da5c00b82c73cb97cdaf500d3
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2020-05-04 19:42:04 -07:00
qctecmdr
20d23de207 Merge "disp: msm: sde: set predownscale x_0 if value not provided" 2020-05-04 18:12:45 -07:00
Yashwanth
c9b3e866bb disp: msm: sde: add ubwc entries to crtc only if supported
In few targets, ubwc might not be supported. In those
cases, ubwc properties should not be added to crtc.

Change-Id: I57d295fca018239ae3695657963d8162d6a50df5
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-05-04 15:00:15 -07:00