Commit Graph

2719 次程式碼提交

作者 SHA1 備註 提交日期
qctecmdr
6882ec9a9f Merge "Revert "disp: msm: sde: consider max of actual and default prefill lines"" 2022-01-28 02:51:53 -08:00
qctecmdr
e1ce0ed1ba Merge "disp: msm: sde: Reset backlight scale when HWC is stopped" 2022-01-28 02:51:53 -08:00
qctecmdr
21ff035e90 Merge "disp: msm: dp: avoid duplicate read of link status" 2022-01-28 02:51:53 -08:00
qctecmdr
87f80767f8 Merge "disp: msm: dsi: update vreg_ctrl settings for cape" 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
Soutrik Mukhopadhyay
5e75a0bfc7 disp: msm: dp: updated copyright set for 4nm target
Changes include support to update necessary copyright
information to dp file for 4nm target.

Change-Id: Iebb2cc542f7b9262073936f12d55eb1be788e757
Signed-off-by: Soutrik Mukhopadhyay <quic_mukhopad@quicinc.com>
2022-01-28 13:41:52 +05:30
Rajeev Nandan
7db99e30d5 Revert "disp: msm: sde: consider max of actual and default prefill lines"
This reverts commit 6547137f7b.

This change can cause negative mdp_transfer_time_us for the panels with
VFP as big as panel active height.

Change-Id: Ibebfcacd9c4eddf80749fa55509821b332fba4cf
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
2022-01-25 22:02:53 -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
Rajkumar Subbiah
812a36347b disp: msm: dp: avoid duplicate read of link status
During link training, after the swing/preemphasis is updated, the driver
is supposed to poll the link status on the sink and quit once the
LINK_STATUS_UPDATED bit is set and also latch the next set of
swing/preemphasis requested by the sink. But currently, the driver is
exiting the loop only when the LINK_STATUS_UPDATED bit is cleared. So,
it also latches the swing/emphasis request from the second read.

Typically, the SW read is slow enough that the bit is set on the first
read. The driver then reads the second time and exits the loop, since
the bit would be cleared then. In most cases, this doesn't affect
the training sequence, since the swing/preemphasis request for next
attempt is retained on the second read. But, atleast in one
specific case, it was observed that the swing/emphasis request
gets reset along with LINK_STATUS_UPDATED and so the driver ends
up missing the actual request and latches incorrect values instead.
This causes link training to fail as it keep retrying with the
same values that it starts with.

This change fixes the exit condition check so the driver quits the loop
as soon as the LINK_STATUS_UPDATED bit is set.

Change-Id: I7f5d9c6b30d48e113aef628d2ab2c1bd972fe743
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2022-01-25 11:03:14 +05:30
Ritesh Kumar
41f7749026 disp: msm: dsi: update vreg_ctrl settings for cape
This change updates vreg_ctrl_0 and vreg_ctrl_1 settings for
cape DPHY as per the HW recommendation.

Change-Id: Ide66c62d980b57de1f826ed24d1c0747d8fb6c77
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2022-01-24 16:30:26 +05:30
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
qctecmdr
60c129a954 Merge "disp: msm: dp: updated register values for 4nm target" 2022-01-20 21:06:37 -08:00
qctecmdr
4e43eebed5 Merge "disp: msm: sde: update framedata event handling" 2022-01-20 21:06:36 -08:00
Soutrik Mukhopadhyay
03b3d8d746 disp: msm: dp: updated register values for 4nm target
Changes include updated register writes for DP PLL
as per 4nm target.

Change-Id: I2d8ddbf4af5c2c6d885c73b7c888f31ce45f4cbf
Signed-off-by: Soutrik Mukhopadhyay <quic_mukhopad@quicinc.com>
2022-01-21 09:11:06 +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
Srihitha Tangudu
25beb2fccc disp: msm: dsi: Add new phy comaptible string for cape
Cape uses phy version 4.3 but requires programming of
different values for vreg_ctrl_0 and vreg_ctrl_1 to
configure LDO setting. Add new phy compatible string
to distinguish cape from other chipsets and program
the registers accordingly.

Change-Id: I68b266cc6e179d211ee0fd05584a605f39b4d31d
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2022-01-20 02:27:53 -08:00
qctecmdr
46849f2f19 Merge "disp: msm: sde: software override for fal10 in cwb enable" 2022-01-19 23:05:13 -08:00
qctecmdr
a02746e4d2 Merge "disp: msm: update cleanup during bind failure in msm_drm_component_init" 2022-01-19 23:05:13 -08: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
Mahadevan
64ae0c58f0 disp: msm: update cleanup during bind failure in msm_drm_component_init
During msm_drm_bind if one of the sub components fails
to bind and defers the probe, it used to clear the device
platform device private structures which are created as
part of msm_pdev_probe. When sub devices try to bind as
part of probe sequence it will try to bringup master
msm_drm and accesses invalid address leading to crash.
This change updates the cleanup procedure which avoids
such crash.

Change-Id: I2d5c94cfafa3c5ec23b81bb0a080ad6e0e5b02ad
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-01-17 09:36:14 +05:30
qctecmdr
200ab959de Merge "disp: msm: reset thread priority work on every new run" 2022-01-13 06:38:26 -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
Ritesh Kumar
fd2dc5be06 disp: msm: dsi: enable DMA start window scheduling for broadcast commands
As per the HW requirements it is highly recommended to use DMA start window
to trigger broadcast commands. If not used then it can result in a hardware
hang with the DSI controllers going out of sync. This behavior is even more
prominent in cases of higher refresh rates.

Currently, reset_trigger_controls is called as part of next command.
Due to this, when unicast command is sent after broadcast command,
reset_trigger_controls does not get called for slave controller,
leading to issues.

As part of this change, DMA start window scheduling is enabled as default
for broadcast commands and reset_trigger_controls is done as part of
post_cmd_transfer operations.

Change-Id: I2402214ed79b376d102b88d4f7e6a06fcb5712d3
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2022-01-12 09:57:42 +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
Kalyan Thota
7bc6632eb6 disp: msm: reset thread priority work on every new run
Reinit thread priority work before queueing on multiple display
threads as the work stores the former worker thread. Also
flush work such the next init is serialized.

Change-Id: I51409d4d12d100be0cb30238f812a56ec064a339
Signed-off-by: Kalyan Thota <quic_kalyant@quicinc.com>
2022-01-09 20:52:06 -08:00
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
369879853c Merge "disp: msm: dsi: add check for any queued DSI CMDs before clock force update" 2021-12-29 22:31:38 -08:00
qctecmdr
17970cc74c Merge "disp: msm: sde: avoid use after free in msm_lastclose" 2021-12-29 22:31:38 -08:00
Satya Rama Aditya Pinapala
c5c2af4297 disp: msm: dsi: add check for any queued DSI CMDs before clock force update
During a force update of DSI clocks, the state of the byte and pclks are
toggled irrespective of the ref-count. This in addition with ASYNC
command wait can result in interrupt storm, if and when the clocks are
being toggled a previous command that was triggered using the ASYNC
wait flag fires an ISR. The interrupt status doesn't get cleared if
the ISR is being serviced with the clocks are off.

The change adds a check for pending queued commands before any force
update of DSI clocks.

Change-Id: I4ca60d0ad43767791255f00c9af8e99e74786097
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
2021-12-29 00:03:35 -08:00
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
Jayaprakash Madisetty
eea04d1a31 disp: msm: sde: avoid use after free in msm_lastclose
This change sets kms in msm_drm_private to NULL during
msm_drm_unbind as this can be accessed from msm_lastclose
during msm_pdev_shutdown concurrently.

Change-Id: Ic44f5cf88a96c970903f2c7d3c5b627e22b411fc
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2021-12-21 13:32:16 +05:30