Commit Graph

530 Commits

Author SHA1 Message Date
qctecmdr
785cde38ef Merge "disp: msm: dsi: mark signature for stub appropriately" 2021-09-17 03:46:41 -07:00
qctecmdr
c0dad8fa08 Merge "disp: msm: dsi: add qsync min fps val in dsi display mode priv info" 2021-09-17 03:46:41 -07:00
Yashwanth
6619470eb6 disp: msm: dsi: add qsync min fps val in dsi display mode priv info
In the current code for finding the qsync min fps for a
mode, entire mode list is iterated which involves acquiring
dsi display_lock. During conn tx debugfs commands, if
qsync min fps is required, we try to acquire dsi
display_lock twice which results in hang state. This change
adds qsync min fps value in dsi_display_mode_priv_info
struct in order to get the qsync fps from the
msm_display_mode present in connector state instead of
looping through all the modes to find the mode qsync fps.

Change-Id: Ifded40d1f12462bb50fc7bdafb746ae5b8d9512a
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-09-15 12:09:35 +05:30
qctecmdr
00d92ec8d6 Merge "disp: msm: dsi: remove vote on refgen when PHY is turned off" 2021-09-10 17:10:28 -07:00
qctecmdr
16d516dc35 Merge "disp: msm: dsi: add support for setting backlight min level" 2021-09-10 14:04:54 -07:00
Shashank Babu Chinta Venkata
6fc34a0613 disp: msm: dsi: remove vote on refgen when PHY is turned off
Remove vote on refgen during display off usecase.

Change-Id: I4d618569c4e03c1b6dca637179053ee812b1d5d9
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
2021-09-10 13:39:51 -07:00
qctecmdr
b9c52b603e Merge "disp: msm: dsi: allow CMD engine enable for cont-splash" 2021-09-10 00:47:16 -07:00
Yahui Wang
23582c4de3 disp: msm: dsi: add support for setting backlight min level
Current display driver can't support kernel dts property
qcom,mdss-dsi-bl-min-level to adjust backlight min level,
so adding this change to make it work well if user wants to
increase the backlight min level of display panel.

Change-Id: Iac74ee44aafac88548ceba6b221d13251dc3d5ef
Signed-off-by: Yahui Wang <yahuiw@codeaurora.org>
2021-09-10 15:08:34 +08:00
Shashank Babu Chinta Venkata
d38a8c0c19 disp: msm: dsi: mark signature for stub appropriately
DSI parser utils are enabled through kernel config
CONFIG_DSI_PARSER. The stubs for disabled case do not
have appropriate storage class. This change alters the
stubs to be static inline which is appropriate storage
class.

Change-Id: I692b792cc3e8a8340245ee5f356e1f6281276a59
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
2021-09-08 09:33:53 -07:00
Satya Rama Aditya Pinapala
b63a13c0b8 disp: msm: dsi: reset the DSI command ctrl flags for every command
The controller flags need to be reset for each command. On resetting
it only for a batch of commands, it may carry stale values and cause
unexpected behavior.

Change-Id: I8473be0c4361965a58c33a3d45420c533d48646b
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-09-01 10:14:31 -07:00
qctecmdr
63dc6b64c9 Merge "disp: msm: reset connector panel_dead during dsi bridge post disable" 2021-08-28 00:44:22 -07:00
qctecmdr
d4652960d6 Merge "Revert "disp: msm: dsi: allow cmd-engine enable/disable HW op at all times"" 2021-08-28 00:44:22 -07:00
Steve Cohen
3c40c5c903 disp: msm: dsi: allow CMD engine enable for cont-splash
Issuing a DSI command transfer while in continuous splash can
disable the CMD engine since no enable call has taken place.
Ignore updating the engine during display enable/disable paths
only for trusted VM and allow it for continuous splash.

Change-Id: I250df6a78af5558ad1e03a3931d11fd8d13e4555
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-08-26 12:39:50 -04:00
Steve Cohen
1416e72e62 Revert "disp: msm: dsi: allow cmd-engine enable/disable HW op at all times"
This reverts commit 65f3cc37a4.

This change breaks TUI use-cases by allowing CMD engine to be
disabled on trusted VM without primary VM having knowledge of
this HW update.

Change-Id: Ieb67dc841299a149e9f1028fd8f98bd857f1f711
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-08-26 12:37:45 -04:00
Steve Cohen
b57a445cf4 Revert "disp: msm: dsi: skip DSI disable operations in trusted VM"
This reverts commit 61518d4f5f.

This change corrupts the DSI engine state machine which expects
all the state tracking updates from the calls that are now being
skipped.

Change-Id: I506ecbd98cc771950b17212a2702e7dde81fe539
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-08-26 12:35:38 -04:00
Samantha Tran
8dbb23a8f5 disp: msm: reset connector panel_dead during dsi bridge post disable
This change resets panel_dead property at the end of dsi bridge post disable.
Currently as part of the ESD recvoery sequence, dsi_bridge_enable resets this
property, but WD vsync source is selected before this point based on the older
panel_dead status. With this change, panel_dead will be in a proper state and
the correct vsync source will be selected during recovery.

Change-Id: I6d614113cfb0ae8a857974bb4d4f8ceb5988a0c8
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-08-24 13:32:04 -07:00
qctecmdr
3a2c526376 Merge "disp: msm: dsi: add submode argument to find correct mode" 2021-08-24 05:24:54 -07:00
qctecmdr
0f0c5990ca Merge "disp: msm: dsi: skip DSI disable operations in trusted VM" 2021-08-22 22:22:26 -07:00
Steve Cohen
61518d4f5f disp: msm: dsi: skip DSI disable operations in trusted VM
Secondary VM will do a disable commit when transferring HW
ownership back to primary. This will end up disabling the CMD
engine before releasing HW back to primary VM. Primary is
unaware that the engine has been disabled and ends up in a
bad state until it gets re-enabled.

This issue was introduced by: commit 65f3cc3 (disp: msm: dsi:
allow cmd-engine enable/disable HW op at all times).

Fix the issue by ensuring CMD engine does not get turned off
in the display disable path for trusted VM.

Change-Id: I1638a181d136e18a836c3ba08daee1c5fcaa9de3
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-08-20 19:39:48 -04:00
Prabhanjan Kandula
d5390da6c7 disp: msm: Update dsc 422 and 420 encoding settings
Update dsc configuration and pps programming for 422 and
420 encoding as per the DSC hardware spec.

Change-Id: I4251614cdcd550ed724b1d0dba4846cada4b5392
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-08-19 11:47:34 -07:00
Yashwanth
0ca8cea39e disp: msm: dsi: add submode argument to find correct mode
During DSC-NonDSC usecase, submode should be passed to
dsi_display_find_mode to differentiate between the modes
containing same timing info. This change adds submode
argument to find the correct mode in such cases.

Change-Id: I82284aeb9c3fd187c4f0961443dd1d0893a3c094
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-08-17 12:58:22 +05:30
qctecmdr
d55bc8d204 Merge "disp: msm: dsi: acquire panel lock for command transfer through debugfs" 2021-08-15 18:31:11 -07:00
qctecmdr
c9fb272a73 Merge "disp: msm: dsi: allow cmd-engine enable/disable HW op at all times" 2021-08-13 20:50:45 -07:00
Satya Rama Aditya Pinapala
adfbc98df7 disp: msm: dsi: acquire panel lock for command transfer through debugfs
To ensure that no other command transfer is in progress, during DSI
TX operation through debugfs, panel lock needs to be acquired.

Change-Id: I8d3871e32277840867d9494720e77df3566e30d3
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-08-13 13:18:44 -07:00
Yashwanth
64b732f335 disp: msm: add qsync refresh rate support per mode
This change adds support for qsync min refresh rate per
timing mode and populates qsync min refresh rate based
on the current fps when qsync is enabled.

Change-Id: I191d1d72e95dd065c8c0b56a6100104c00c6d8f6
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-08-05 15:37:20 +05:30
qctecmdr
f7e7964840 Merge "disp:msm:sde: correct the brightness bound check" 2021-07-29 19:41:43 -07:00
Amine Najahi
e3c76571dc disp: msm: dsi: fix RFI mode set detection
Currently mode fixup function is called multiple times
in the same commit. This causes invalid combination of
DSI mode flags to be set when there is an RFI change
with proch compensation feature enabled.

This change modifies the mode switch condition for DMS
to compare internal dsi mode and flags and fixes the
dynamic clock change detection by using a single variable.

Change-Id: Iaf9c8ca7c6a27f26aefead399bc93fbbb02b404b
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-07-29 07:43:27 -07:00
Amine Najahi
1881acdb2b disp: msm: dsi: publish RFI porch values for rate matching calculation
Currently when RFI is used on a video mode panel the horizontal or
vertical front porch values can be adjusted to maintain a constant FPS.
When this feature is enabled, driver is not propagating the new
htotal or vtotal values to usermode for accurate BW and MDP clock
calculation, which may lead to underrun in some usecase.

This change publishes beforehand all the RFI related timing
such as compensation type, hfp or vfp and clock values for
each mode for accurate BW and clock calculation.

Change-Id: Ib89c5e318fe978b0ae2215dedc430e057a9a81b9
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-07-29 10:35:27 -04:00
Ping Li
b7506f0222 disp:msm:sde: correct the brightness bound check
The brightness value from backlight device is OS brightness, not panel
backlight value. This change corrects the brightness bound check to
check against the OS brightness max value instead of panel backlight max
value. This change also move the bound check in dsi display to make sure
the max backlight value send to panel is within the expected range.

Change-Id: Ic9e3ba69700ae4c0e950cb665837a1f0a1317b26
Signed-off-by: Ping Li <pingli@codeaurora.org>
2021-07-28 12:32:45 -07:00
qctecmdr
b04d8af8da Merge "disp: msm: dsi: update DSI PHY HW programming" 2021-07-28 06:06:16 -07:00
Satya Rama Aditya Pinapala
095f5dd58a disp: msm: dsi: prepare resources for cmd transfer at the start of the cmd packet
For batched commands, prepare resources at the start of the command packet and not for the
command with LAST_COMMAND flag set.

Change-Id: Ibbb0d1d1acd4ddeebd07bf9dd6ea1a949edd8d02
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-07-22 10:37:58 -07:00
Satya Rama Aditya Pinapala
2582a00416 disp: msm: dsi: update DSI PHY HW programming
Change updates DSI PHY programming to match HW recommendation.

Change-Id: I09841e7a9eb73afd4c74363b4b20a598313f0ec3
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-07-16 11:36:38 -07:00
qctecmdr
a44120edf1 Merge "disp: msm: sde: correct num_datapath during PM resume with CWB" 2021-07-15 13:14:46 -07:00
qctecmdr
c2819001b0 Merge "disp: msm: dsi: use dynamic memory allocation for dsi_display_mode_priv_info variable" 2021-07-12 16:29:01 -07:00
Steve Cohen
65f3cc37a4 disp: msm: dsi: allow cmd-engine enable/disable HW op at all times
In cases of continuous splash, when command engine is
enabled/disabled as part of commands that are sent before
continuous splash config is called the HW op will disable the
command engine by the end of the command transfer. As part of
continuous splash handoff, the command engine enable call skips
the hardware operation to actually set the CMD_ENGINE_EN bit
as it is guarded by the skip op flag.

With the current change, we allow the HW op to take place, despite
continuous splash being enabled. This way, the HW will always maintain
the correct state pre and post continuous splash handoff.

Change-Id: Id32ebf6f0d7eac46c118b701c138fcf6b9b10318
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-07-09 12:22:17 -07:00
Jayaprakash Madisetty
a29369e224 disp: msm: sde: correct num_datapath during PM resume with CWB
In PM resume with CWB concurrency usecase, crtc pointer in
conn->state is NULL since drm_mode_config_reset operation is
performed on pm_resume. This change relies on conn_mask in
new_crtc_state for primary connector retrieval and also adds
get_num_lm_from_mode callback to DSI for LM count retrieval
from dsi panel topology. Existing get_mode_info api cannot
retrieve the topology info because mode->priv_info is NULL.
This occurs as WB encoder is added in the drm encoder_list
before primary encoder, introduced as part of commit d28ebf05f4
("disp: msm: sde: populate WB display encoder list before dsi").

Change-Id: I55358fd88ab778bd81475cf3628be13335de1cb5
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-09 09:12:26 -07:00
qctecmdr
96d560a883 Merge "disp: msm: dsi: remove seamless dms flag during active changed" 2021-07-09 08:37:09 -07:00
Yashwanth
981508c215 disp: msm: dsi: use dynamic memory allocation for dsi_display_mode_priv_info variable
This change adds dynamic memory allocation/free for struct
dsi_display_mode_priv_info variable as it is only temporary
variable to find mode and also reduces stack consumption in
dsi_display_find_mode function.

Change-Id: I2116757f11614f9e8406ddfdb08b5a4b6292cfea
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-07-08 22:13:22 -07:00
Ritesh Kumar
bae72f6a9b disp: msm: dsi: Add support to enable LP11 insertion feature
Some panels may require that the DSI link returns to the low-power
stop state (LP11) after transmission of every line. If a panel
requires that the DSI link returns to LP11, apply the LP11
insertion between lines feature.

This change adds support to
 - Disable the command mdp burst mode
 - Enable mdp idle ctrl
 - Program the No. of dsi pclk cycles of idle time to
   insert between command mode mdp packets. The idle time
   must be long enough to cover the time link takes to
   switch between HS to LP11 mode.

Change-Id: Ie718d334f05ce6c1ecd1a05b379bbbe18dec6330
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
2021-07-08 10:37:43 -07:00
qctecmdr
bb76263607 Merge "disp: msm: dsi: add warning message for rx debugfs commands during suspend" 2021-06-30 21:31:16 -07:00
qctecmdr
fada9dc2ca Merge "disp: msm: dsi: batch ROI DCS commands together" 2021-06-30 21:31:16 -07:00
Satya Rama Aditya Pinapala
38a94cc558 disp: msm: dsi: add warning message for rx debugfs commands during suspend
Change adds a check to return a warning rather than an error during a
debugfs read command transfer while the device is suspended.

Change-Id: If65ba642f73f4c8e6b9609bbed6e376ef7836145
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-06-30 15:44:28 -07:00
Ritesh Kumar
fabb811119 disp: msm: dsi: Remove unused for loop in ESD reg read validation
In ESD register read validation, a for loop is used to increment a
local variable with the length of ESD command. But this is unused
in the validation of the read data. This change removes the unused
for loop.

Change-Id: I6d1a9233061ee33a2b5390e2f922a2412af7d605
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
2021-06-29 23:20:47 -07:00
Satya Rama Aditya Pinapala
87e1c4f2b2 disp: msm: dsi: batch ROI DCS commands together
The CASET and PASET commands can be batched together and sent using the
MIPI_DSI_MSG_BATCH_COMMAND flag. This was during pre kickoff there is
no unnecessary wait between the ROI commands.

Change-Id: I96ce30367f66024dc56f67bc1f113cac36353a9b
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-06-29 12:12:02 -07:00
qctecmdr
8b0b1d1c51 Merge "disp: msm: update debug log for color processing features" 2021-06-25 01:58:00 -07:00
Ping Li
e96b53ea1f disp: msm: update debug log for color processing features
Replace the DSI_DEBUG logs with pr_debug logs for backlight related
color processing features. DSI_DEBUG logs cannot be enabled dynamically
by the /sys/kernel/debug/dynamic_debug/control sysfs node, hence move to
pr_debug instead.

Change-Id: I6a6e2fcd81cacef9e5ec7c061fae8f4cf2b7106d
Signed-off-by: Ping Li <pingli@codeaurora.org>
2021-06-24 11:55:23 -07:00
Yuan Zhao
ffd7e1d4b1 disp: msm: dsi: only check clock lane ulps status for DPHY
Clock lane can enter ino ULPS mode only in DPHY mode. For
CPHY, did not need to check the clock lane status for ULPS.

Change-Id: Iceddd8064ec75ce26613469cfb1bde36e883f865
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2021-06-24 14:58:23 +08:00
qctecmdr
4487d04c54 Merge "disp: msm: dsi: create generic interface for read poll timeout" 2021-06-23 04:01:00 -07:00
Yashwanth
084a57842a disp: msm: dsi: remove seamless dms flag during active changed
During DSC to Non-DSC switch or viceversa, DMS flag is set
which cannot be treated as seamless during active changed
condition. Hence, DMS flag is removed if set during active
changed condition.

Change-Id: I5ebd33a339aea7d6fab297a4c57ad90eb7bd442c
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-06-23 13:57:25 +05:30
qctecmdr
f83978b07b Merge "disp: msm: dsi: fix kasan out of bound in dsi reception" 2021-06-23 00:02:16 -07:00