Grafik Komit

1426 Melakukan

Penulis SHA1 Pesan Tanggal
Yojana Juadi
cc71f44453 disp: msm: sde: avoid error during fal10_veto override enablement
This change avoids sde error during fal10_veto override enablement
for targets with uidle disabled and early returns in such case.

Change-Id: I491952615d7b3cbd70d35b4a90ee8d27ab56c2ad
Signed-off-by: Yojana Juadi <quic_yjuadi@quicinc.com>
2022-02-03 15:16:03 +05:30
Yashwanth
107f473e54 disp: msm: update copyright description
This change updates copyright description with correct
license marking as per the guidelines.

Change-Id: Ia74b721e78afcc7f8e88bcbccfcf15430111ec37
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-02-01 11:29:21 +05:30
qctecmdr
e1ce0ed1ba Merge "disp: msm: sde: Reset backlight scale when HWC is stopped" 2022-01-28 02:51:53 -08:00
qctecmdr
5b1dce22c6 Merge "disp: msm: sde: add null pointer check for encoder current master" 2022-01-28 02:51:52 -08:00
qctecmdr
43965c0601 Merge "disp: msm: fail commit if drm_gem_obj was found attached to a sec CB" 2022-01-28 02:51:52 -08:00
qctecmdr
9dd362fc6b Merge "disp: msm: sde: dump user input_fence info on spec fence timeout" 2022-01-28 02:51:52 -08:00
Yuchao Ma
998bb11a2c disp: msm: sde: Reset backlight scale when HWC is stopped
Reset backlight scale when HWC is stopped.

Change-Id: Iafcb1560a901af3428a3eae19b01580a1c69eddf
Signed-off-by: Yuchao Ma <quic_yuchaom@quicinc.com>
2022-01-26 13:29:27 +08:00
Jayaprakash Madisetty
3fb9c29953 disp: msm: fail commit if drm_gem_obj was found attached to a sec CB
This change fails the drm_atomic_commit and avoids S2 translation
fault if drm_gem_object is found attached to a secure context bank
during non secure session. In the current codeflow, we are detaching
the gem object from secure CB and reattaching it to non secure CB,
but only S1 pagetables entries get modified and S2 pagetables entries
are not corrected since hyp_unassign is not called with CP_PIXEL
VMID which can only be done by client when buffer gets allocated.

Change-Id: I62302064f96276ef82044ee88fb89e295fb96b4b
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2022-01-21 16:20:14 +05:30
Nilaan Gunabalachandran
137938ab7e disp: msm: sde: update framedata event handling
This change updates framedata event and ubwc stats API to
align with userspace handling and expectations.

This change adds the empty irq event handler required to register
the frame data event.

This change also adds handling to the crtc event notify to provide
the payload pointer directly, required for the buffer object,
ensuring pointers are not mismatched while sending drm events.

This change also updates the ubwc roi plane property to process the
uapi defined roi.

Change-Id: I209f2b7418a0ec33aa0488119eb3fdb8ae94e8ba
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-01-20 09:46:22 -05:00
Prabhanjan Kandula
ecc2d6e0ba disp: msm: sde: software override for fal10 in cwb enable
When cwb is enabled enable software override for fal10 veto to
block fal10 entry as MDSS can keep asserting uidle if there
are no fetch clients like dim layer only usecase.

Change-Id: Ief51499d370c20fcbdda79576aee0179578650fd
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-01-19 12:16:17 -05:00
qctecmdr
b67e836b6e Merge "disp: msm: sde: always set CTL_x_UIDLE_ACTIVE register to "1"" 2022-01-17 09:07:27 -08: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
Yojana
58f9096045 disp: msm: sde: add null pointer check for encoder current master
During virt disable call, sde_enc master was used without checking
for null condition. It results in crash. This change adds required
null pointer check for sde encoder current master before dereferencing
to avoid crash.

Change-Id: I69ee17017712ea3549bfefce5975a564a5a8c2e9
Signed-off-by: Yojana <quic_yjuadi@quicinc.com>
2022-01-12 19:43:28 +05:30
qctecmdr
4cc5b3cabb Merge "disp: msm: sde: avoid alignment checks for linear formats" 2022-01-10 04:35:41 -08:00
qctecmdr
eb92fe97b4 Merge "disp: msm: sde: add tx wait during DMS for sim panel" 2022-01-10 04:35:40 -08:00
Jayaprakash Madisetty
4f88bcf232 disp: msm: sde: avoid alignment checks for linear formats
This change avoids alignment condition check if the format is
linear because HW can fetch without any restrictions only in linear
usecase.

Change-Id: Ib823a8d309f7ed579d701a4bf56772ce318fb1f5
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2022-01-10 16:13:55 +05:30
Nilaan Gunabalachandran
31eaf2f939 disp: msm: sde: send power on event for cont. splash
During the first commit, crtc state will be duplicated from the
crtc state populated with splash data. In this case, crtc will
already be set to active, but active_changed will remain cleared.
This will skip the power on event being set during complete commit
phase. This change checks for the cont. splash enabled before
sending the power on event.

Change-Id: I9964317d96468213e9abe9b029e64aa2981fb359
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-01-06 13:02:54 -05:00
qctecmdr
9a562d931b Merge "disp: msm: sde: Add support to limit DSC size to 10k" 2022-01-06 05:15:30 -08:00
Yashwanth
cf0f2627c4 disp: msm: sde: always set CTL_x_UIDLE_ACTIVE register to "1"
As per HW recommendation, FAL10_VETO_OVERRIDE register can
be programmed to disable FAL10 in alternate to disabling
uidle at the sspp level as disabling UIDLE controller will
only disable DPU traffic shaping and will not stop the
system from entering FAL10 state. This change programs
FAL10_VETO_OVERRIDE register during uidle disable and also
sets CTL_x_UIDLE_ACTIVE register to always one to avoid
race condition between different CTL paths.

Change-Id: I9c55f5da2037cb8c448cc978eac0a04608a93650
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-01-05 12:38:38 +05:30
Nilaan Gunabalachandran
e51018b92c disp: msm: use vzalloc for large allocations
Large allocations using kzalloc can lead to timeouts. This updates
the allocation calls accordingly to use vzalloc to remove
requirements on contiguous memory.

Change-Id: I86fa0ae13277d97477210a082703514df792d8a9
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-01-04 17:19:57 -05:00
Ritesh Kumar
e230290310 disp: msm: sde: Add support to limit DSC size to 10k
With full DSC size of 20k, RT performance issues are seen due to the
stress created during larger prefill needed to fill up the 20k DSC buffer.

Limiting DSC size to 10k helps to mitigate these RT performace issues.

This change adds support for this based on new flag has_reduced_ob_max
in sde_mdss_cfg data structure. Flag has_reduced_ob_max has be set
true only on targets where its recommended.

Change-Id: I649d213bcd378025bd0548fb982b55c98c99224f
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2022-01-04 13:47:46 +05:30
qctecmdr
669a9a3190 Merge "disp: msm: sde: avoid setting of max vblank count" 2022-01-03 10:38:19 -08:00
Yashwanth
0f940276c6 disp: msm: sde: add tx wait during DMS for sim panel
This change adds pp_tx during DMS switch for sim panel to
prevent WD timer getting updated in middle of the frame and
creating early vsync which might result in ppdone timeout.
For non-sim panels, this tx wait is not required and is
done similar to posted start.

Change-Id: Ifec68535efa19df27e651ce0a39c03627dff2089
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-01-03 15:33:46 +05:30
qctecmdr
0b905e08b1 Merge "disp: msm: sde: add cached lut flag in sde plane" 2021-12-28 20:58:15 -08:00
qctecmdr
38440e18c0 Merge "disp: msm: sde: correct pp block allocation during dcwb dither programming" 2021-12-28 20:58:15 -08:00
qctecmdr
0e229f995b Merge "disp: msm: sde: update idle_pc_enabled flag for all encoders" 2021-12-28 20:58:15 -08:00
Mahadevan
ede3f587f7 disp: msm: sde: correct pp block allocation during dcwb dither programming
In mid and low tier targets there is reduction in pingpong
blocks and static allocation of pingpong blocks with respect
to dedicated cwb ids causes mismatch failures and leads to
wb kickoff timeouts. This change corrects the pingpong block
id allocation for dedicated cwb in dither control register
programming path.

Change-Id: I98c06a2c3b49c7ea0556dcf1a921969c300fed16
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2021-12-28 10:52:55 +05:30
Mahadevan
9951d3c784 disp: msm: sde: avoid setting of max vblank count
This change avoids setting of max vblank count in crtc
enable if accurate vsync timestamp feature is disabled.

Change-Id: I6d8299359f581a162a7412da8c9b673e3aeae041
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2021-12-28 09:17:02 +05:30
qctecmdr
9b27e02a2a Merge "disp: msm: sde: update TEAR_SYNC_WRCOUNT register before vsync counter" 2021-12-23 23:10:22 -08:00
Yashwanth
039d83144f disp: msm: sde: add cached lut flag in sde plane
Below is the sequence during which issue is observed
while using stale lut values:
1) Scaler block is enabled in the VIG pipe along with the
valid lut configuration.
2) Idle work gets scheduled and GDSC is turned off erasing
the saved lut values.
3) At the same time, userspace sends a commit assuming lut
values are still valid resulting in artifacts on the
screen.
In the plane state scaler config, only lut flag will be
reset for subsequent commits and remaining properties such
as filter cfgs, lut_idx etc. remains same. This change
caches the lut flag in sde plane whenever the lut is being
set and reuses this flag to handle above issue.

Change-Id: I7d83d5e7a22a73a2d94b100dffe60316f92ec309
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2021-12-22 14:57:11 +05:30
qctecmdr
cb3c6ffeb4 Merge "disp: msm: sde: flush esd work before disabling the encoder" 2021-12-21 07:42:53 -08:00
Yashwanth
374c86e91b disp: msm: sde: update TEAR_SYNC_WRCOUNT register before vsync counter
During DMS, when tear check registers are updated near
rd_ptr line count, it was resulting in a spurious
rd_ptr_irq to which frame is getting latched and causing
tearing on the screen. This change updates
TEAR_SYNC_WRCOUNT register before disabling the vsync
counter and adds a spinlock to avoid pre-emption.

Change-Id: I986dc3ce6fb3da5fed758c2f50562df44f2ab557
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2021-12-20 16:30:19 +05:30
qctecmdr
55288db46f Merge "disp: msm: sde: consider max of actual and default prefill lines" 2021-12-16 23:08:55 -08:00
Yashwanth
73b252c722 disp: msm: sde: update idle_pc_enabled flag for all encoders
At present, idle_pc_enabled flag will be set for encoders
containing only these capabilities MSM_DISPLAY_CAP_CMD_MODE
and MSM_DISPLAY_CAP_VID_MODE. When cwb is triggered,extra
power vote will be taken during kickoff and vote remains
till cwb is disabled. In between, if primary goes into idle
power collapse, vote taken by cwb will not be removed since
idle_pc_enabled flag is not set. This change updates
idle_pc_enabled flag for all encoders based on catalog
property.

Change-Id: If4f147edbd610d0302e4d6c0a3e6b7de2c729db1
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2021-12-16 11:25:43 +05:30
Kalyan Thota
13e728953c disp: msm: sde: flush esd work before disabling the encoder
Flush ESD status work before resetting the encoder state during
virt_disable sequence to avoid stale pointers being used in
the ESD work.

Change-Id: I4bb08a7a7ae33ad6386169667692736e554141c4
Signed-off-by: Kalyan Thota <quic_kalyant@quicinc.com>
2021-12-14 06:52:04 -08:00
qctecmdr
ae2854f289 Merge "disp: msm: sde: allow qsync update along with modeset" 2021-12-13 08:45:25 -08:00
Yashwanth
31d274ebb7 disp: msm: sde: allow qsync update along with modeset
This change allows concurrent qsync updates along with
DMS modeset condition. With this change, qsync can be
enabled or disabled in the same atomic commit along with
MSM_MODE_FLAG_SEAMLESS_DMS condition.

Change-Id: I1b51a68f947126b25a578645e92d95c9a8ae26f5
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2021-12-13 13:22:23 +05:30
Prabhanjan Kandula
9ab14dedc2 disp: msm: sde: update cached encoder mask if required
When a new connector is added or removed an a crtc because
of clone mode enable and disable update cached encoder mask.
Currently since cached encoder mask is not updated properly
vblank frame counter is returning wb encoder frame counter
right after clone mode disable on wb encoder.

Change-Id: Ieff9dfbf0c7df3688fb1b6f9d3f3614345b494c2
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
2021-12-09 16:08:34 -08:00
Prabhanjan Kandula
92cbd6d654 disp: msm: sde: while timing engine enabling poll for active region
DCS commands triggered right after timing engine enable can conflict
with blanking period causing command transfer failures. Right after
timing engine enable poll for frame start and line count reaching
active region of display before any DCS commands.

Change-Id: Ia3967e01c3bb5bc82aa3549c300fa8335e00210c
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
2021-12-09 16:08:34 -08:00
Nilaan Gunabalachandran
00468713c6 disp: msm: sde: disable ot limit for cwb
Currently ot limits are being set for concurrent writeback,
which is not supported. This change adds a check to correctly
set wfd parameter while applying ot limit settings.

Change-Id: I87c1ca756c1714fec4466cd5a5a820ddf2519975
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2021-12-09 14:30:16 -05:00
qctecmdr
bc9f90b65c Merge "disp: msm: sde: reset mixers in crtc when ctl datapath switches" 2021-12-09 05:06:37 -08:00
qctecmdr
d58ff8053f Merge "disp: msm: sde: update vm state atomic check for non-primary usecases" 2021-12-08 23:57:49 -08:00
qctecmdr
f9eb7a143c Merge "disp: msm: sde: reset CTL_UIDLE_ACTIVE register only if uidle is disabled" 2021-12-08 23:57:48 -08:00
Abhijit Kulkarni
fb15930280 disp: msm: sde: avoid race condition at vm release
This change acquires the vm lock before pre-releasing the
dependent drivers. This avoids any race condition on any
parallel async commands transfers scheduled on connector
drivers. Additionally the main irq line is only disabled
after the pre-release to allow any ongoing transfers
to complete.

Change-Id: Ic0bffc93ebb1b69fbd8d1f096b320a86ad84c857
Signed-off-by: Abhijit Kulkarni <quic_kabhijit@quicinc.com>
2021-12-08 12:52:26 -08:00
Jayaprakash Madisetty
8b01e6124e disp: msm: sde: reset mixers in crtc when ctl datapath switches
This change reinitializes the sde_crtc->mixers when CTL
datapath switch occurs during mode set and RM allocation
of CTL hw block is changed. This initialization is required
for CTL_LAYER programming to trigger on the new CTL allocated
from RM.

Issue case:
1. Primary Display is using CTL_0 and it is reserved.
2. Secondary Display is using CTL_1. On suspend, RM adds
   CTL_1 into the free list.
3. External Display is powered on, RM allocates CTL_1 hw blk.
4. Secondary Display is powered on, RM allocated CTL_2 hw blk.
5. External Display is suspended/unplugged, RM adds CTL_1 into
   the free list.
6. When any mode_set(say fps switch) occurs on secondary, RM
   allocates new resources and CTL_1 is allocated.

sde_crtc->num_mixers is non zero, so all the layer programming
happens on CTL_2, but CTL_1_FLUSH bits are programmed causing
hw timeout issue.

Change-Id: I5f1f52b7673740c48b249ab4d36e80b7a1d3db96
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2021-12-08 11:28:43 +05:30
Yashwanth
093d93ed58 disp: msm: sde: update vm state atomic check for non-primary usecases
If vm has already transitioned from primary to trusted,
triggering a wb/secondary display commit will result in
crash since hw is not owned by the vm. This change adds
necessary changes to fail atomic check in such usecases.

Change-Id: Ic9886d479726c27d1072d12304a87f3bf5deeb76
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2021-12-08 08:44:39 +05:30
Yashwanth
b9b744a123 disp: msm: sde: reset CTL_UIDLE_ACTIVE register only if uidle is disabled
This change sets CTL_UIDLE_ACTIVE register whenever uidle
is enabled and resets it only when uidle is disabled.

Change-Id: I0393d1585df4fdb79a844d04df62ac9eda949232
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-12-07 14:20:33 +05:30
qctecmdr
79cf605ddc Merge "disp: msm: increase size of sde_kms_info" 2021-11-25 20:20:39 -08:00
qctecmdr
ae1d2e9c54 Merge "disp: msm: sde: deprecate idle notify work scheduling" 2021-11-20 00:19:10 -08:00
qctecmdr
80a394d31a Merge "disp: msm: sde: update uidle_db_updates in both enable/disable cases" 2021-11-17 01:00:40 -08:00