Graphe des révisions

2615 Révisions

Auteur SHA1 Message Date
Sudarsan Ramesh
1def76170d disp: msm: dp: clear mst edid cache for real monitor plugin
Currently edid cache is cleared only in the mst attention callback
flow i.e. if a monitor is plugged in/out of a mst dongle. If mst
dongle is plugged out directly, the edid cache is not cleared.
This change clears the edid cache also during the
connect/disconnect callback.

Change-Id: Icc4b4ca6a59f1ee32f7fe062831a3a19f4ab9f00
Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
Signed-off-by: Sandeep Gangadharaiah <sandgang@codeaurora.org>
2021-07-19 10:40:22 -04:00
Andhavarapu Karthik
76d171e611 disp: msm: sde: add sde data to va minidumps
VA minidumps supports to add any allocated variable or data to
minidumps. Add panic notifier and wrapper function to add
sde data to minidump va. Add event log, register log, register dumps,
debug bus and different sde variables and states info to minidump.

Change-Id: If54da0b7067df17877e4da645d82f1705baa3f6d
Signed-off-by: Andhavarapu Karthik <kartkart@codeaurora.org>
2021-07-19 16:00:57 +05:30
Steve Cohen
a42fd877c7 disp: msm: sde: cancel delayed work items during TUI transition
Delayed work items may touch HW registers. If these work items
run while HW is not owned by this VM it will lead to invalid
access. This happens in video mode as HAL does not disable idle
power-collapse in this mode. It can also happen with ESD status
if lastclose or TUI transition failure occurs.

Although there is a contract with user mode to turn off certain
features, kernel cannot rely on it to always do the right thing.
Prevent potential crashes from certain corner cases by
cancelling all delayed work items when the HW ownership is
transferred.

Change-Id: I08da17f2ce72bf2fddf71924c3e8edd2e2715be8
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-07-16 20:45:42 -04:00
Steve Cohen
cce49a77c5 disp: msm: sde: add pr_fmt for SDE VM layer
Add pr_fmt definition in SDE VM modules for simplifying
searching for DRM driver logs.

Change-Id: I3f83b52dec6479dd89306aed7d84e73928f4e9ef
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-07-16 20:38:10 -04: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
a5da9d0045 Merge "disp: msm: sde: remove fb's attached to a drm_file in preclose" 2021-07-15 13:14:46 -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
e32c87abbe Merge "disp: msm: sde: modify in_clone_mode after wb_reset is done" 2021-07-15 13:14:46 -07:00
qctecmdr
f2208ec5a0 Merge "disp: msm: sde: reset dim layer dirty prop during idle pc" 2021-07-15 13:14:45 -07:00
Karthik Andhavarapu
2db495708f disp: msm: update register dump and debug bus memory allocation
In current implementation, register dump memory is allocated
separately for each range and block. When register dumps are
added to minidump, this will generate multiple minidump bin files
after a crash. Changes are made to allocate all the required
register dump memory once. When register dumps are added to
minidump, this will generate only one minidump bin file.
Use kvzalloc and kvfree to allocate and free this memory as
the memory needed to allocate is around 126 KB. Update the
allocation of debug buses also to kvzalloc and kvfree.

Change-Id: Ia5cca47b085bcca57ce09981a55cc1bfbeeae77e
Signed-off-by: Andhavarapu Karthik <kartkart@codeaurora.org>
2021-07-15 23:00:09 +05:30
Jayaprakash Madisetty
436efb403c disp: msm: sde: modify in_clone_mode after wb_reset is done
Add changes to modify the phys_enc->in_clone_mode variable
post wb_reset_state since this is a shared variable used
during atomic_check and atomic_commit. In current issue case,
wb_atomic_check has set in_clone_mode to true in commit N,
and in commit N-1 CWB is being disabled and re-sets the
in_clone_mode variable to false causing pp_done timeouts in
primary in commit N.

Change-Id: I8159bbdb5622a351d76bdc4dba75d48df20f4365
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-14 13:43:21 -07:00
qctecmdr
7d0890d337 Merge "Revert "disp: msm: sde: update smmu fault handler to print debug info"" 2021-07-13 22:57:37 -07:00
Nilaan Gunabalachandran
2c320baeaf Revert "disp: msm: sde: update smmu fault handler to print debug info"
This reverts commit 0623a02a84. It leads to
panic during smmu faults because we do not have any recovery. Reverting
this will give the control to the client to dump if necessary.

Change-Id: I85982e129cabc73b041e25c35e965117d60f3bfa
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-07-13 17:43:37 -04:00
Nilaan Gunabalachandran
d452830710 disp: msm: sde: update supported format lists for wb
This change updates the supported format lists for wb connector.

Change-Id: Idf7e004780e963ef5937049dc1ddedae344697a0
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-07-13 09:44:43 -04:00
qctecmdr
0ee14ac910 Merge "disp: msm: fix CPU mapping for memory buffers" 2021-07-12 22:22:59 -07:00
qctecmdr
06c0d084bd Merge "drm/msm/sde: add check to fix null pointer dereference" 2021-07-12 18:26:36 -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
qctecmdr
00c6d076fa Merge "disp: msm: sde: allow event log logging with IN_LOG_LIMITED flag" 2021-07-09 12:23:24 -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
qctecmdr
54ff96efb7 Merge "disp: msm: avoid using spinlock while adding evtlog entry" 2021-07-09 06:49:14 -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
Rajkumar Subbiah
d1f021f411 disp: msm: dp: account for fec overhead during bpp determination
When calculating the maximum bpp that can be supported for the
link configuration and mode, currently the driver is not
accounting for the FEC overhead. When FEC is enabled, the
link bandwidth available for the video stream is reduced and
therefore it needs to be included in the calculation.

Change-Id: I41a664d739f369b17cff2ced7f88f5e90ee196f4
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2021-07-08 17:49:03 -04:00
Rajkumar Subbiah
07b0a4d81a disp: msm: dp: enable fec only for the first stream
FEC is a link specific configuration and should be configured before
the MST streams are enabled. Currently, the driver is configuring FEC
for each stream and in a case where the first stream is compressed and
the second stream is uncompressed, it enables FEC before the first
stream is enabled but ends up disabling FEC when the second stream is
enabled.

This change splits FEC/DSC configuration into separate functions and
skips FEC configuration for the second stream.

Change-Id: Ic1bab321dc77da7ec5c0253c93bb69735a217fd6
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2021-07-08 17:41:16 -04:00
Veera Sundaram Sankaran
6e27bfd70c disp: msm: sde: allow event log logging with IN_LOG_LIMITED flag
Event logs are restricted to be logged only with IN_LOG option during
a SDE_DBG_DUMP() call. Extend the logging support to IN_LOG_LIMITED
option. The option is set to IN_MEM by default and can be changed
through debugfs.

Change-Id: I8245cebe3ad71c026fbc51b39edf39ec06b7d0e6
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2021-07-08 11:39:04 -07:00
Satya Rama Aditya Pinapala
28f8734077 disp: msm: fix CPU mapping for memory buffers
The DMA buffers used by the display module are cached buffers. While
mapping to the CPU, pgprot_writecombine should only be used for uncached
buffers. The change fixes this mismatch during virtual address mapping.

Change-Id: I2f54375b4eb4071d9bbcae44449bb6c99feb24a6
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-07-08 10:47:21 -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
Yashwanth
ddd671b0d7 disp: msm: sde: reset dim layer dirty prop during idle pc
During idle power collapse, dim layer dirty flags are
stored in sde_crtc_state which might be invalid if state
swap occurs. This change adds revalidate mask in sde_crtc
structure to revalidate after coming out of idle power
collapse.

Change-Id: Ie2f34a794896a3f8e729ef7d1f3ae35340123257
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-08 10:24:48 -07:00
Jayaprakash Madisetty
0e3d422520 disp: msm: sde: remove fb's attached to a drm_file in preclose
This change avoids upstream drm issuing drm_atomic_commit in
drm_fb_release which is leading to artifacts on screen or
atomic_check failures due to atomically unstaging each fb
from plane_state and committing remaining planes on hardware.

 a) This patch moves the state operations for setting crtc to
    connector state to a helper api.
 b) This patch clears any dim_layers present in the crtc_state
    as part of null commit.
 c) This patch removes any framebuffers attached to a drm_file
    in msm_preclose whose refcount is not managed by composer kill
    inadvertently and issues null flush to hardware in such cases.
 d) This patch handles msm_preclose as part of msm_release
    operation since legacy feature is not supported
    for msm_driver.

Change-Id: Ib2068d74d4b23b73b7c84544858c9f6bb6adfa67
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-08 10:24:32 -07:00
Jayaprakash Madisetty
2df01bf3aa Revert "disp: msm: sde: remove all preclose logic"
This change reverts commit ae2dceb0b6 ("disp: msm:
 sde: remove all preclose logic"). This change also
modifies the force disable plane logic since
__drm_atomic_helper_disable_plane is not exposed to
drivers.

Change-Id: I89e19dead9ade724798952b1934b45b5663e1a42
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-08 10:24:32 -07:00
Lei Chen
79d30e7fba drm/msm/sde: add check to fix null pointer dereference
Check if sde_enc->crtc exists before using the variable
to avoid possible NULL dereferences.

Change-Id: If7b56c3b3ad3525b3efc22b6536a2dc5c865da48
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2021-07-07 23:04:45 -07:00
Samantha Tran
ae94f07d6e disp: msm: avoid using spinlock while adding evtlog entry
Add support to use atomic variable instead of spinlog
for event log while adding enries. This change will
help optimize event log writing time.

Change-Id: I83661b85cd76ca738729ac51aa5afd97d162508d
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-07-07 16:25:32 -07:00
qctecmdr
6a01182c1e Merge "disp: msm: sde: update max_dp_dsc_count in dsc switch case" 2021-07-07 01:25:31 -07:00
qctecmdr
a5acd198d1 Merge "disp: msm: sde: remove unused variable topology from sde_encoder" 2021-07-06 20:13:22 -07:00
qctecmdr
dec0bb3812 Merge "disp: msm: sde: allocate virtually contiguous memory" 2021-07-01 21:32:34 -07:00
qctecmdr
b1113430b2 Merge "disp: msm: sde: stage white frame when input fence has error set" 2021-07-01 10:03:00 -07:00
Anjaneya Prasad Musunuri
e719a10f9f disp: msm: sde: allocate virtually contiguous memory
This change uses kvzalloc to allocate memory for lutdma buffers.
This is needed since kernel cannot guarantee that physically
contiguous allocations greater than 32 KB will succeed.

Change-Id: I91c12bbd612408692ba8e4a3cd9ac1ce308eda64
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-07-01 03:19:03 -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
qctecmdr
1d9cf1d656 Merge "disp: msm: dsi: Remove unused for loop in ESD reg read validation" 2021-06-30 17:31:12 -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
Yashwanth
e57b8443cc disp: msm: sde: avoid using spinlock for register log
Add support to use atomic variable instead of spinlock
for register logs during register write. This change
helps in reducing the run-time and is safe to use as
most of the register writes happen in commit context.

Change-Id: Ib7e377f80cbf437e391792b0b424cbd1eefdf497
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-06-29 09:40:32 -07:00
Jayaprakash Madisetty
911ec46c9f disp: msm: sde: stage white frame when input fence has error set
Add changes to check for error status in dma_fence on task wakeup
and when error is set white frame gets staged to handle such input
fence failures.

Change-Id: I8f3c9f746334c6d03a272ab4e33f51afb84057ea
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
2021-06-29 20:39:04 +05:30
Lei Chen
be82344413 disp: msm: sde: remove unused variable topology from sde_encoder
Topology in sde_encoder is no longer used, so remove this
variable from sde_encoder.

Change-Id: Iba02ae690d81d39252d0df83882a72e35f2916ec
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2021-06-29 14:17:59 +08: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