Commit Graph

2168 Commits

Author SHA1 Message Date
Samantha Tran
dc162469ab disp: msm: sde: add proper null checks before hw_intf access
This change adds proper null checking before trying to access
hw_intf pointer.

Change-Id: Id1817dca24c176c0c97bf7d637ca08da31693c37
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-29 22:58:37 -07:00
qctecmdr
f42268675d Merge "disp: msm: dsi: add indexing for panel timing nodes" 2021-03-29 21:13:27 -07:00
Rajkumar Subbiah
efea534641 disp: msm: dp: avoid setting multi_func when pin value is zero
During dp altmode driver initialization, the dp altmode driver is called
with a null data packet. Even though this callback indicates a disconnect,
the multi function flag is incorrectly set to true. If the DP is enabled
later using simulation mode, the multi function flag is not cleared thereby
limiting the lane count to 2 irrespective of capability applied through
DPCD.

This change checks for the zero pin value while setting the multi function
flag.

Change-Id: I974fbf1630eed26f406ac9e4c99140b27f0cb635
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2021-03-29 17:57:08 -04:00
Sudarsan Ramesh
a89e5da1c9 disp: msm: dp: copy sink_dsc_caps object in mst connector install
In an MST DSC setup, the sink_dsc_caps object is read into the base
panel. In the process of creating different connectors and panel
objects, the sink_dsc_caps panel object is not copied correctly to
the new panel objects. This causes an error where a fallback DSC
version is used.

This change correctly copies the sink_dsc_caps object over to the
panel for the MST connector from the base connector.

Change-Id: I66af823bbe08c8b1fbd68d628e759416162e9d53
Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
2021-03-29 17:31:26 -04:00
Rob Clark
245ac819b6 drm/msm: remove msm_gem_free_work
Now that we don't need struct_mutex in the free path, we can get rid of
the asynchronous free all together.

Change-Id: I82406450e3a5d0d49d3fb753c621f55e8f4af088
Signed-off-by: Rob Clark <robdclark@chromium.org>
Git-commit: c951a9b284b907604759628d273901064c60d09f
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-29 13:17:21 -07:00
Rob Clark
fd50a1ec69 drm/msm: Add priv->mm_lock to protect active/inactive lists
Rather than relying on the big dev->struct_mutex hammer, introduce a
more specific lock for protecting the bo lists.

Change-Id: I4c876a1c3ae51ff62372703a99a8daff0c4a7950
Signed-off-by: Rob Clark <robdclark@chromium.org>
Git-commit: d984457b31c4c53d2af374d5e78b3eb64debd483
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[samtran@codeaurora.org: avoid changes related to debugfs and shrinker]
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-29 13:16:53 -07:00
Kristian H. Kristensen
a145e793b2 drm/msm: Implement .gem_free_object_unlocked
We use a llist and a worker to delay the object cleanup. This avoids
taking mmap_sem and struct mutex in the wrong order when calling
drm_gem_object_put-unlocked() from drm_gem_mmap().

Fixes lockdep problem with copy_from_user() in msm_ioctl_gem_submit().

Change-Id: Idfe54ae8108158b69f3835f26991642d1e21f8ee
Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Git-commit: 48e7f18392c66f9b69ebac11c54f1a2e033ced54
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[samtran@codeaurora.org: resolve trivial merge conflict]
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-29 10:47:03 -07:00
Satya Rama Aditya Pinapala
2fec1685d0 disp: msm: dsi: add indexing for panel timing nodes
The order of the panel timing nodes specified in the device tree is
not guaranteed to be the same while being parsed in the driver. This
results in unintended modes being set as preferred timing mode. The change
introduces cell-index property, so that the timing modes can be
accurately indexed and parsed.

Change-Id: I8ccd4d5a15643bfe72bc8be084f5e91fac26feb4
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-26 16:04:48 -07:00
Steve Cohen
61e6723732 disp: msm: sde: report AVR_STATUS in vsync_event sysfs node
Report the AVR_STATUS which indicates if there's a pending
trigger when Adaptive Variable Refresh feature is enabled.
This allows SW to detect whether the old frame is repeated
or if the new frame was taken when the trigger is very
close to Vsync.

Change-Id: I6b04482e5c4c3bb92bad426c529c1fd3612d41c3
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-03-25 22:59:46 -04:00
qctecmdr
19e9831a45 Merge "disp: msm: sde: modify SDE_DBG_DUMP to use blk_mask instead of blk_name" 2021-03-25 14:22:21 -07:00
qctecmdr
3090ffd63f Merge "disp: msm: dsi: update DSI PHY configuration to support splitlink" 2021-03-25 08:49:41 -07:00
qctecmdr
abd8dbd256 Merge "disp: msm: add support for splitlink in sde drm" 2021-03-25 08:49:41 -07:00
Vara Reddy
fcb3849c69 disp: msm: dsi: update DSI PHY configuration to support splitlink
Change updates DSI PHY programming sequence for splitlink configuration.

Change-Id: I708cf83717c6f640c918d41cc122794a10f979ba
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2021-03-24 23:15:52 -07:00
Vara Reddy
142bb24d7c disp: msm: dsi: add support to send commands to each sublink
Change adds support for transferring commands to each sublink.

Change-Id: Iefc0dca7343325cdfe0cf48d41d50e6e2a13bc05
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2021-03-24 23:15:25 -07:00
Vara Reddy
13b88147a1 disp: msm: dsi: add support for splitlink sublinks video data swap
Change adds support for enabling splitlink sublinks video data swap.

Change-Id: I731b85a5e8fe8638005433819957dd0658f72963
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2021-03-24 23:14:53 -07:00
Vara Reddy
02a4648999 disp: msm: add support for splitlink in sde drm
Change adds support for splitlink and disables
dsc merge or 3dmerge which is not needed for splitlink.

Change-Id: I77a794d3ea6f53988f493a7af792add81abb22f0
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2021-03-24 22:15:38 -07:00
Yuchao Ma
1b0bd83473 disp: msm: add cwb dither support
Add cwb dither support.
Catalog: Read dtsi value of cwb dither in pp parse part.
Wb: Install blob property for cwb dither.
Wb hw: Adds a new wb ops function to program cwb dither hardware.
CRTC: To ensure that userspace can check whether cwb dither is supported,
added "has_cwb_dither" to sde kms info.
PingPong: In order to reuse dither's map array, move dither_depth_map array
to pp header file.

Change-Id: I77e6a052a00b7c649452103145e5d7b4c8deb3a2
Signed-off-by: Yuchao Ma <yuchaom@codeaurora.org>
2021-03-25 10:45:29 +08:00
qctecmdr
2177667f89 Merge "disp: msm: sde: remove rotator llcc" 2021-03-24 16:52:43 -07:00
Jeykumar Sankaran
c3959896c3 disp: msm: sde: enable tui flag for waipio hw catalog
Enable trusted vm flag for waipio HW catalog.

Change-Id: I7cd5ba0354e2ed66a21f5f3b923c1855af1a0f14
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 15:24:53 -07:00
Jeykumar Sankaran
5960a1b8b5 disp: config: enable CONFIG_DRM_SDE_VM for waipio
Enable CONFIG_DRM_SDE_VM to enable trusted VM support
for waipio target.

Change-Id: I4d70b3a84f7b612390f5a9925330cf77929b6e7b
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 15:24:49 -07:00
qctecmdr
b2c440bffe Merge "disp: msm: dsi: use single mode for RFI feature" 2021-03-24 14:16:57 -07:00
qctecmdr
ee2a505703 Merge "disp: msm: dsi: defer clk setting when doing const_fps RFI" 2021-03-24 14:16:57 -07:00
qctecmdr
7d1ca7c295 Merge "disp: msm: sde: add multi-mode RFI support" 2021-03-24 14:16:57 -07:00
qctecmdr
b884dbf3e7 Merge "disp: msm: dsi: Fix DFPS sequence when constant fps is enabled" 2021-03-24 14:16:57 -07:00
Jeykumar Sankaran
c9ac265816 disp: msm: dsi: parse panel gpio's with dsi parser util
Panel GPIO's pins can be provided through DT or firmware data.
Use dsi parser util in consistent with other node parsings to
read their values.

Change-Id: I6dc687516aa0ce51fc56e54f4b5cbadc17f0dc1d
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 13:00:05 -07:00
Jeykumar Sankaran
4339422849 disp: msm: dsi: expand dsi_parser hooks
Implement and add additional dsi parser hooks
for parsing firmware panel data.

Change-Id: If06eb63b754ffce447b56ac6b22955f64e031779
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 12:59:58 -07:00
Jeykumar Sankaran
8b7ed7dc0c disp: msm: dsi: validate display probe dependencies early
DSI display configuration can be either DT or firmware file driven.
When probed with firmware path, asynchronous firmware file read
callback function will be too late to check for dependencies and
defer the probe when the dependencies are not met.

Move all the dependency checks before the firmware file read request.
Since the panel data will not be available before the DT/firmware read,
this change limits the check to the dsi display layer.

Change-Id: Ib26ed7839389027c2fe2dc15f70a572df3990ed9
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 12:59:51 -07:00
Christina Oliveira
70d6f23b26 drm: msm: Add mmrm api to display
This change adds mmrm api to display driver.

Change-Id: I51f310f8c762edc823930c05c001735056a2cbcd
Signed-off-by: Christina Oliveira <coliveir@codeaurora.org>
2021-03-24 11:37:42 -07:00
Tatenda Chipeperekwa
2e946c4cd8 disp: msm: fix compilation issues for out of tree compilation
Update the Kbuild files and fix some compilation issues for out
of tree compilation on waipio target.

Change-Id: I426d7611c56a1c6c848b9dfd925799864cbf4a67
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2021-03-24 09:54:28 -07:00
qctecmdr
3ffb2db08c Merge "disp: msm: sde: fix tracking of pending rsvps" 2021-03-24 09:41:12 -07:00
Amine Najahi
2c98ff7194 disp: msm: dp: fix mode filtering for 4K120
Currently, 4K120 mode is being filtered by DP driver
due to invalid topology assignation. When 4 LMs are
needed, the number of DSCs must match the number of
LMs since only DSCMERGE based topologies are supported
for driving DSC capable panels.

This change fixes the topology validation logic and
aggregates LM and DSC validation functions in the topology
one since the number of LMs and DSCs must now be considered
in calculating the topology requirement.

Change-Id: I95577eabb34068cd490d23e70ffbb899d1c2d03a
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-03-24 09:48:03 -04:00
Amine Najahi
c5f2bd7401 disp: msm: sde: add multi-mode RFI support
Currently, RFI feature only supports panel that contains
a single timing node. This limits the feature availability
for panel with multiple modes or with DFPS support.

This change adds support for RFI on panels that contains
multiple timing nodes.

Change-Id: I3a7aadf7b6da3518350b2eb815602b13b5c259f5
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-03-24 06:32:45 -07:00
Amine Najahi
d4def5bd8c disp: msm: sde: add new interface for RFI feature
Add a new connector range property and a new entry to the panel
capability blob to publish the list of supported RFI frequencies.
In addition, add the required functions to set, validate and update
DSI bit clock rate value to trigger an internal seamless mode switch
and reconfigure DSI clock and PLL.

Change-Id: I7d19cc369f8c5528709f2f20a51ef02180ebdea4
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-03-24 06:32:17 -07:00
Nilaan Gunabalachandran
0623a02a84 disp: msm: sde: update smmu fault handler to print debug info
This change updates the smmu fault handlers in the display driver
to return -ENOSYS. This will print out useful debug information
from smmu driver.

Change-Id: I427982286abe4d592f270477c8ad2e2be74700c9
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-03-23 08:17:18 -07:00
Yuan Zhao
484387e860 disp: msm: dsi: defer clk setting when doing const_fps RFI
When doing const fps RFI, dynamic refresh clock was done
in the next frame kick off, so as the orginal RFI work flow,
the clock setting also should be done here.

Change-Id: Ic3e6a35dc7264df028f5d848ac6f1eea04a95126
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-03-22 19:15:28 -07:00
qctecmdr
4c41c05d7c Merge "disp: msm: fix compilation errors for dlkm compilation" 2021-03-22 19:10:52 -07:00
qctecmdr
e4f4455a5f Merge "disp: msm: sde: add helper function to setup encoder and sspp" 2021-03-22 16:34:40 -07:00
Tatenda Chipeperekwa
c6257272d4 disp: msm: fix compilation errors for dlkm compilation
Fix dlkm compilation errors that are due to the use of -Werror
flags used by the build system.

Change-Id: I5e1e9bc63c1361d73e4930aab123212717872ecb
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2021-03-22 15:25:36 -07:00
Jeykumar Sankaran
9956819d55 Revert "disp: msm: dsi: reorder resource validation in probe"
This reverts commit 23734fc295.

Reverting this change as it does not address all the below uses cases for Waipio
- Supporting PROBE deferral based on dsi ctrl availability
- Dual DSI path with optional single DSI node
- Firmware DT blob parsing for single / dual dsi panels

Change-Id: Ifc747befadd85eb76995b6cb1f72407fa5dccdbb
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-22 10:47:25 -07:00
qctecmdr
1b3ad8486d Merge "disp: msm: sde: update uidle fal1 maximum threshold for waipio" 2021-03-22 10:33:12 -07:00
qctecmdr
ae6a089b20 Merge "disp: msm: sde: refactor sde_connector_atomic_set_property function" 2021-03-19 20:51:27 -07:00
qctecmdr
7dcef410b1 Merge "disp: msm: sde: prepare encoders during enable commit" 2021-03-19 19:52:30 -07:00
Veera Sundaram Sankaran
5bbf449148 disp: msm: sde: modify SDE_DBG_DUMP to use blk_mask instead of blk_name
Currently, SDE_DBG_DUMP takes any number of hw block names along with
few defined strings as arguments. This set of arguments is used to
determine which HW block registers needs to be dumped. Move to a
blk bitmask to avoid passing a large set of arguments. The bitmask is
split based on the clks required to access the HW block for ease of use.
The lower 0-23 bits are used for HW blocks which can be accessed by just
enabling the MDP clks. DP is kept separate as it needs DP specific
clks to be enabled. Add a debugfs node through which the mask can be
modified, which can be useful while using the debugfs dump option to
force a panic.

As part of the change, remove in-log/in-mem enable mask debugfs node
for every debugbus and use a single node to control the logging
mechanism for all the HW blocks debugbus.

Change-Id: Ibb6354b3e3265c9911104bb0f964616eb8a898c9
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2021-03-19 16:50:45 -07:00
Prabhanjan Kandula
68b83b3ffc disp: msm: sde: update uidle fal1 maximum threshold for waipio
This change provides support to have per target configuration
of the maximum value for fal1 threshold & updates value for waipio
as per qos recommendation.

Change-Id: I48df0d1c58a8de80f40200b35e406d07621a3f68
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-03-18 17:25:51 -07:00
Prabhanjan Kandula
0c31168eff disp: msm: sde: update qos lut configurations for waipio
This change refactors qos lut configuration by redefining & adding
few new lut usage cases for supporting waipio qos recommendations.

Change-Id: I62607208c289c6ffee32fc8008066eb603acb504
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-03-18 17:25:13 -07:00
Prabhanjan Kandula
38102ac372 disp: msm: sde: update inline rotation version for waipio
This change updates inline rotation version and handles listing
of color formats supported by inline rotation in waipio target.

Change-Id: Ibefc4fdfcf65c7a42642c15af5cf5e873a5b67de
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-03-18 15:03:39 -07:00
Dhaval Patel
b5cde14bca disp: msm: sde: calculate line_time once during modeset
Calculate line_time once during modeset and allow
each plane to use it instead of calculating for each frame.
It also simplifies the line_time calculation for
command mode display.

Change-Id: I94ce29eec94bfdbee9016fbf93378661ebf79c03
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2021-03-18 15:03:30 -07:00
Samantha Tran
6de4718ee9 disp: msm: sde: enable FAL1 only option for microidle
Add support for the option to enable microidle FAL1 only setting.
Previously microidle enabled would automatically have both
FAL1 and FAL10. Now in cases of higher FPS or DFPS we can
choose to enable FAL1. This change also adds qos recommended
waipio target specific fps limits for fal1 and fal10.

Change-Id: I7aa7d003afc3ac77c671b2467b0e6dedaae772aa
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-03-18 14:37:32 -07:00
Steve Cohen
c5463f6586 disp: msm: sde: trace: copy evtlog array into individual elements
The Android Perfetto tool parses sde_evtlog traces as generic
ftrace events which does not support arrays. Add a copy of
the data array as individual u32 elements so the desired trace
data gets captured correctly.

Change-Id: I42a668b8b896cdc3cd9e97e1fc357f22d29e4831
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-03-18 14:55:38 -04:00
Nilaan Gunabalachandran
b9cfa5b37f disp: msm: sde: remove rotator llcc
Rotator llcc is no longer supported. This change removes the
unused code.

Change-Id: Ia1d95e3f4386d25e0d2e06a87802b3f5b694998d
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-03-18 12:33:24 -04:00