コミットグラフ

58 コミット

作成者 SHA1 メッセージ 日付
Krishna Manikandan
55099ebe9a disp: msm: sde: ignore sspp check in rm splash init during vm handoff
The last commit in primary-vm before transitioning to
trusted-vm during trusted-ui usecase will be NULL
commit for video mode. In the current splash path,
rm reserve during cont splash res init will succeed
only if there are sspps staged on the mixer. Avoid
this check for vm handoff usecase.

Change-Id: I9829c66f8eb856cc009edc35e489bc9adad1c5d7
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
2020-09-23 23:54:37 -07:00
Narendra Muppalla
6e8693a6ef disp: msm: sde: return latest rsvp_next pointer on poll timeouts
To avoid use after free issues this change gets latest rsvp_next pointer
in poll timeout scenario.

Change-Id: I4bd4ce1ce9d4f5f2df0e814ceb8babe544578fc6
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-09-15 17:57:06 -07:00
qctecmdr
52610a646b Merge "disp: msm: sde: update ctl v1 topology table" 2020-09-10 18:45:36 -07:00
Jayaprakash
940830690a disp: msm: sde: modify dsc blocks reservation check in RM
Add changes to reserve dsc blocks by routing even numbered
dsc encoders to even pingpong blks and odd numbered dsc encoders
to odd numbered pingpong blks.

Change-Id: I9242b3f7a2784194f9e4a7d30eff6ae3ec16b196
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 00:21:55 -04:00
Amine Najahi
e7cf04beae disp: msm: sde: use proper API to retrieve connector state in check phase
Use sde_connector_state_get_topology API instead of
drm_atomic_get_connector_state since the latter can
return a blank connector state if not found in
global atomic state.

Change-Id: Ib5b58c6cab438a367a885308341d6bccc624f777
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-10 13:57:14 -04:00
Yashwanth
5c4635d434 disp: msm: sde: update ctl v1 topology table
This change updates split display flag for ctl v1 topology
table since it is not required for CTL_ACTIVE targets.

Change-Id: Ic669cb6f2c1ca60b2299ebb59a8132a5177ad133
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-07-31 12:19:14 -04:00
Linux Build Service Account
026b9de2e2 Merge "disp: msm: sde: fix kw issues in sde driver" into display-kernel.lnx.5.4 2020-07-10 12:35:48 -07:00
Narendra Muppalla
47638eae8c disp: msm: sde: fix kw issues in sde driver
This change to address use after free and null checks in
sde driver.

Change-Id: Iade91596748b1b867ae959e61fca0f7072eda8f3
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-07-09 11:13:01 -07:00
Amine Najahi
2d624f6ab8 disp: msm: sde: refactor topology group check helpers
Refactor topology group check helpers into a single
function to remove duplicate code. This change also
uses atomic state to extract topology information
since those functions can be called during atomic
check phase.

Change-Id: Ia262009e0b8fe9fcdeff05e544d2e59be35c9c54
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-07-09 09:40:08 -04:00
Prabhanjan Kandula
690139ccd1 disp: msm: sde: serialize rm reserve for check only commit
During back to back mode set, current driver logic fails
atomic check during resource allocation with test only if
previous commit also with modeset, has tagged resources for
allocation but did not commit the resources yet. Since client
invoking atomic check before previous mode set commit complete
is an expected scenario now, instead of failing atomic check,
this change allows resource allocation for next commit also go
through by pollong till the first mode set is complete.

Change-Id: I1261b7d205bb0d886085664fab3664162a419c99
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2020-06-26 10:38:43 -07:00
qctecmdr
d9b4204aad Merge "disp: msm: sde: add vig formats before qseed and csc initializations" 2020-06-12 00:11:19 -07:00
Jayaprakash
11aab5f9c3 disp: msm: sde: Fix null dereference errors
Add changes to avoid NULL dereference access and
uninitalized access in sde driver.

Change-Id: Ic9c06f54d1ccd820973fc0ba4aa75d2848f2ce03
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-06-08 11:39:25 -07:00
Jayaprakash
bada02f317 disp: msm: sde: add changes to fix get connector failure in rm_release
Currently during rm_release, drm_conn is available only if connector
and encoder are bound together. If a test_only commit occurs
before a non-blocking modeset commit, this bound is uncertain.
The resources allocated by test_only commit will not be released
and leads to resource allocation failures for the consequent
commits. Add changes to modify this by checking for the encoder
attached to sde_connector which happens during bootup.

Change-Id: Icb1d9595efda8a104ba527175b2dbc6a2c856d44
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-06-08 11:39:03 -07:00
Amine Najahi
b121756b5d 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: I5358d60634070bdb26059056db884ad4161c073e
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-05-28 19:25:09 -07:00
qctecmdr
db766d7c86 Merge "disp: msm: sde: modify check for active datapaths" 2020-05-21 13:41:41 -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
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
2e3e5cb274 Merge "disp: msm: sde: avoid resource reservations clean up leak" 2020-05-06 23:27:07 -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
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
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
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
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
Thomas Dedinsky
b4d4eae01c drm: msm: sde: Allow reservation of odd number of DSCs
Add a check to escape the DSC allocation once the requested
number of DSCs has been reached and a pair is not required
for the last DSC allocated. This issue was introduced when
trying to allow for quad DSC, which broke single DSC use.

Change-Id: I4bc368004f92570d588e76ceb832d63fd3bb15d7
Signed-off-by: Thomas Dedinsky <tdedinsk@codeaurora.org>
2020-04-13 16:02:09 -04:00
qctecmdr
3fd4d644db Merge "drm: msm: sde: reserve DSC in pairs for 4DSC topologies" 2020-04-03 19:23:57 -07:00
Thomas Dedinsky
80acdaa9f8 drm: msm: sde: reserve DSC in pairs for 4DSC topologies
Reserve DSC in the sequence of primary-peer and then
primary-peer again until all required DSC are reserved.

Searching sequence will not change for single/dual DSC
reservation. For single DSC reservation it will return
right after the first primary DSC is found. For dual DSC
reservation it will return after the first primary-peer
pair is found.

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

Change-Id: I5b90d54822ce16ef829e7c657c1b14e7a484c65a
Signed-off-by: Thomas Dedinsky <tdedinsk@codeaurora.org>
2020-03-31 11:32:46 -04:00
Narendra Muppalla
d6141f8472 disp: msm: fix kw issues in sde driver
This change addresses out of range and null checks in
sde driver.

Change-Id: I905d795edf6715aa990dd7bbaf061734e95ddea6
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-03-30 15:22:34 -07:00
Jayaprakash
e7f3931297 disp: msm: sde: Avoid releasing the committed RM reservations
RM allocated reservations for the ongoing commit are cleared when
there is a delay in ongoing commit scheduling and back to back
prepare comes. This clearing occurs in the subsequent checkonly
commit with modechange property set.

Timeline of the issue:
   --> C1 commit check_only + modeset, RM allocated resources
   --> C2 commit check_only scheduled before C1 commit with
       check_only + modeset, overridden C1 reservations with
       its own into rsvp_nxt
   --> C1 commit scheduled and RM committed reservations
       allocated by C2.

Change-Id: I46cc924fd6515590e32c8e97a82847d2bde97270
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-03-29 16:49:52 -07:00
Jayaprakash
f7d08feb38 disp: msm: sde: add enc_id check before decrement avail HW resources
Add changes to commit and decrement only those
hardware resources which are required for the modeset.

Timeline of Commit C1 with CWB modeset:
---> Atomic_check
	Primary encoder has allocated required HW resources.
 	CWB encoder has allocated required HW resources.
---> Atomic_commit
	On primary encoder, connector is seamless hence
	there is no virt_modeset call.
	On CWB encoder, there is virt_mode_set call
	and during commit HW blocks there is unconditional
	decrement for all the HW blocks with rsvp_nxt.

This change ensures hardware blocks are available during
dp display mode validations.

Change-Id: Ifd9439cfc96e727c3093af5f47802c8367775cd7
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-02-12 13:34:41 -08:00
Abhijit Kulkarni
06ca9dd1e5 disp: msm: sde: fix dsc hw resource reservation
In atomic test phase DSC Hw block should be allowed to be reserved
without checking the mode information. Mode information is not
available before bridge enable is called and this results into dsc
not programmed very first mode set.

Change-Id: Ia9ec9a3c9387e34a8bb1d98ee6932aef8725bc8c
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-02-06 10:56:56 -08:00
qctecmdr
c89633ed36 Merge "disp: msm: add support for variable compression ratios" 2020-02-03 00:11:10 -08:00
qctecmdr
da7839e18e Merge "disp: msm: use iterator APIs to walk the connector list" 2020-01-30 17:35:51 -08:00
Abhinav Kumar
c4f5050e13 disp: msm: add VDC topology related changes
Add support to configure the DPU pipeline to support VDC-m
topologies.

Change-Id: Ib8ce9a0eaeaa838759fb09cb2ee164d4765e4989
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2020-01-29 13:45:35 -08:00
Abhinav Kumar
d88b5b5c67 disp: msm: add hardware register ops for VDC-m block
Add hardware register set and programming for VDC-m block.

Change-Id: I60ef27b507284521abdd10bb679a85303475ddc3
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2020-01-29 13:45:05 -08:00
Abhijit Kulkarni
1ef5cee6ca disp: msm: add api to get active status of hw blocks
This change introduces new ctl path api read_active_status to check
if a particular hw block is active or not in the current control path.
This is specially required in continuous splash use case when bootloader
has programmed certain blocks and the kernel driver tries to find
out the same configuration. This is used to ascertain which DSC block
is active in continuous splash case since DSC blocks are not tied to
mixer blocks.

Change-Id: I8dd590aa2dc764bd340727c166e1133ef9ce7af5
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 13:57:55 -08:00
Abhijit Kulkarni
e2726c7b1a disp: msm: sde: allocate dsc block based on capability
Certain DSC hw blocks only support 444 mode, while others
support both 444 and 422 modes. This change adds support in
resource manager to check the hw resource requirement with
the capability of the block and then reserve the correct
hw resource.

Change-Id: If85beb2f2f25e9eb7f8a8321c94b57878d048369
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Steve Cohen
8469b7be9e disp: msm: use iterator APIs to walk the connector list
Use the DRM APIs for walking the list of connectors. This ensures
the proper locks are taken to prevent possible corruption by other
threads.

Change-Id: Iacdd1c6ad8eab224ceac550e0229489851a09706
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-17 18:21:38 -05:00
Narendra Muppalla
d1d9ae8b19 Disp: Snapshot change for lahaina display driver
This snapshot change adds downstream support
for drm 5.x+(msm_lahaina branch) linux kernel.

Change-Id: Ia691c95da155a00e449c91a2f1a5b20a8e71aed4
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2019-11-24 12:30:51 -08:00
Nilaan Gunabalachandran
1195a394b1 Revert "disp: msm: sde: update splash resource allocation for dual display"
This reverts commit dbb1a3eee9.
This change causes regression in populating cont splash data for RM.

Change-Id: If239eb921e022fcad54033ae3c7e9e4c3dc54736
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-10-30 10:47:47 -04:00
Nilaan Gunabalachandran
dd84cf72f4 disp: msm: sde: remove dspp blocking
RM blocks an lm path with dspp from being allocated if a dspp is
not required by topology. This can restrict using all lms to full
availability. LM preference already ensures dspp
assignment is completed to required built in displays.
This change removes blocking conditions.

Change-Id: Ifec6f27d4d10a9ea061780ed5f9e9601b893d5a0
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-10-20 17:39:05 -07:00
Jayaprakash
c2c470efa9 disp: msm: sde: reserve primary CTL and LM for primary connector
In dual display cases when secondary display is resumed first,
primary CTL and LM is selected for secondary path which leads to
invalid configuration. Changes are made to correct the reservation
to select primary CTL and LM for primary connector and secondary
LM to secondary connector.

Change-Id: I6b2a8bedaf46f18bdb28b45ac765f32b26207304
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2019-09-19 11:24:57 +05:30
qctecmdr
61d32e7925 Merge "disp: msm: sde: update splash resource allocation for dual display" 2019-08-10 07:51:01 -07:00
Prashant Singh
dbb1a3eee9 disp: msm: sde: update splash resource allocation for dual display
Correct the splash resource allocation counter for getting ctl
ids as passed from uefi for dual-display usecase for successful
splash-handoff.

Change-Id: Iffb6649073443e3c319077318e009b910ea53416
Signed-off-by: Prashant Singh <prasin@codeaurora.org>
2019-08-08 15:11:52 +05:30
Nilaan Gunabalachandran
962d240b95 disp: msm: sde: reserve dscs considering hw pairs
RM does not currently check dsc pairs while reserving, but
this could lead to an incompatible pair being allocated. The
hw restrictions are populated from dtsi and checked during
rm reservation.

Change-Id: If561e2bd64c7643ed9ee71a255242eab84576673
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-23 15:55:15 -04:00
qctecmdr
a30c33a6eb Merge "disp: msm: sde: track available hw resources" 2019-07-12 14:51:17 -07: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
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
qctecmdr
32548d1507 Merge "disp: msm: sde: fix rm/kms for handling all cont-splash cases" 2019-06-08 19:19:55 -07:00