提交图

652 次代码提交

作者 SHA1 备注 提交日期
Yahui Wang
e280657f7f disp: msm: support 8bit and 10bit bpp switch
Support 8bit and 10bit bpp switch for display.

Change-Id: Ia5fcb330df95618596377773d0598be2b5609de1
Signed-off-by: Yahui Wang <quic_yahuiw@quicinc.com>
2023-05-25 10:15:23 +08:00
qctecmdr
9afc43bcbc Merge "disp: msm: dsi: Adjust DSI priority level" 2023-05-19 08:01:53 -07:00
Rohith Iyer
29538faf70 disp: msm: dsi: Adjust DSI priority level
Sets DSI priority level to 7 before any commands are triggered.
This DSI priority setting is recommended by systems team as DSI 
and Lutdma uses same Xin for fetch.

Change-Id: Ife6dee5ed51874818168d92728f76108495b8727
Signed-off-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
2023-05-17 11:03:52 -07:00
qctecmdr
6ce26bb091 Merge "disp: msm: dsi: add new function to cleanup post command transfer" 2023-05-08 11:44:03 -07:00
qctecmdr
190dc72bf9 Merge "disp: msm: dsi: handle case where panel sends more bytes than requested" 2023-05-08 11:44:03 -07:00
Srihitha Tangudu
ddb854d52d disp: msm: dsi: add new function to cleanup post command transfer
Currently we are always doing command transfer cleanup which includes
disabling command engine, clocks, gdsc and unmasking overflow interrupt
as part of post command transfer function only after CMD DMA wait is
done. Cleanup should also be done if an ESD failure happens before
kickoff of a batch command. Organize code so that command transfer
cleanup can be done irrespective of whether command kickoff is done
or not.

Change-Id: Ieb92daa7f5da62c16c71f1b23ceff20adfbf3621
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2023-05-04 10:36:44 -07:00
Srihitha Tangudu
47eb93ed08 disp: msm: dsi: handle case where panel sends more bytes than requested
Reset number of bytes read from panel to the expected value when panel
sends more bytes than requested during DSI read. This can otherwise lead
to negative value of repeated bytes and array out of bounds access.

Change-Id: I9310c521a862108940142ba7c1a8c39838be0f79
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2023-05-04 10:33:45 -07:00
Ayushi Makhija
5ba1ca1738 disp: msm: dsi: Send Qsync commands asynchronously to avoid frame drops
Qsync ON/OFF commands have to be sent to the panel before connector
kickoff and sending them in the commit thread blocks it for few
millliseconds, and can lead to frame drops. Avoid this by sending
them asyncronously.

Change-Id: Ia7bc694871faf02b7c1a068b3d0ee7056c272506
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
2023-05-02 23:12:40 -07:00
qctecmdr
8ef80f7cf4 Merge "disp: msm: dsi: Fix DSI lane swapping" 2023-04-29 23:02:10 -07:00
Rohith Iyer
f59a9af17c disp: msm: dsi: Fix DSI lane swapping
Replaced lane swap register for lane swap in DSI controller.
Added check for where to perform lane swap based on DSI controller
version. Replaced function to parse device tree data for lane swap,
as previous function did not work.

Change-Id: I5e50a761b6ac0d2658ba73a5648e2f80f3470b96
Signed-off-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
2023-04-25 10:36:23 -07:00
qctecmdr
2e5aa28b7a Merge "disp: msm: dsi: add support for dual display with shared dsi" 2023-04-15 20:49:21 -07:00
Ritesh Kumar
5fa719d990 disp: msm: dsi: add support for dual display with shared dsi
In dual display configuration, where only one display is active at a time,
dsi0 and dsi1 can be used to drive primary large display and, one of the
dsi (dsi0 or dsi1) can be used to drive secondary display. This helps to
time division multiplex shared DSI for primary and secondary panel which
solves the bandwidth limitation problem. This change adds support to allow
sharing of dsi ctrl and phy between dual displays.

Change-Id: Ib4ed1bf51f587b544ec24b1b558ff83225b36e4b
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2023-04-13 11:13:44 +05:30
Anand Tarakh
d83f4c93b2 disp: msm: dsi: register clk cb in display prepare
The clk_ctrl_cb and post_cmd_tx_workq callbacks are assigned
to individual ctrl during display bind. In case of dual display
with shared DSI, where primary display has ctrl0 & ctrl1 and
secondary display has ctrl1, the callbacks of ctrl1 of the
primary display gets overwritten with the callbacks of ctrl1
of the secondary display.

In the shared DSI design, only one display will be active at
a time. So, move the callback assignment of clk_ctrl_cb and
post_cmd_tx_workq to display prepare to fix this.

Change-Id: Ic02fa2f00c430fd5759400e06d82d004d4f7cba4
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-04-12 14:09:18 +05:30
Lei Chen
a5949c654b disp: msm: add check for panel ROI alignment and DSC slice settings
The height and width of ROI alignment must be integral multiple of
DSC slice height and width.
Add a check in partial update DT parsing function and disable
patrial update when panel ROI alignment can't match DSC slice
settings.

Change-Id: Ib80ca1cde5041936f9525e19757e95ff5898137f
Signed-off-by: Lei Chen <quic_chenlei@quicinc.com>
2023-04-10 15:13:37 +08:00
Varsha Suresh
36ba8cc716 msm: disp: Add bazel build support for display-drivers
-Add support to display-drivers modules using DDK framework for pineapple.
-Add macro that makes it easy to register new modules.

Change-Id: Id9cc0f367cff5b95b526fb42193471b3f3abd012
Signed-off-by: Varsha Suresh <quic_varssure@quicinc.com>
2023-04-06 18:07:03 -07:00
qctecmdr
3049c6a494 Merge "disp: msm: dsi: Reset DMA trigger mux when initializing DSI_TRIG_CTRL" 2023-03-31 07:39:36 -07:00
Kashish Jain
5aa0cba2a3 disp: msm: dsi: Reset DMA trigger mux when initializing DSI_TRIG_CTRL
When broadcast command is sent with command DMA window scheduling enabled,
DSI_TRIG_CTRL.COMMAND_MODE_DMA_TRG_MUX does not get reset after command
transfer. Due to this next unicast command on slave fails.
This change resets DMA trigger mux during DSI_TRIG_CTRL initialization.

Change-Id: I74503d82ab1cb6ca4d61a9d14f2b3cd2c3936ea7
Signed-off-by: Kashish Jain <quic_kashjain@quicinc.com>
2023-03-23 11:48:49 -07:00
Rajeev Nandan
2b15aded33 disp: msm: dsi: Fix DMA window scheduling programming
In DMA start window scheduling, TRIG_CTRL.COMMAND_MODE_DMA_TRIGGER_SEL
is programmed to SW + DMA start window trigger. But if DMS switch
comes after command is scheduled, COMMAND_MODE_DMA_TRIGGER_SEL gets
reprogrammed to SW trigger leading to command transfer failure.

Program the COMMAND_MODE_DMA_TRIGGER_SEL only from the CMD DMA Tx path.

Change-Id: I01062497bb70aa5fdcb25be3715c7cbc4c68b681
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
Signed-off-by: Kirill Shpin <quic_kshpin@quicinc.com>
2023-03-23 18:29:00 +00:00
Yu Wu
567ad34910 disp: msm: restore dynamic bit clock front porches
Restore dynamic bit clock front porches.

Change-Id: If0edb93bd1200c1a2cba0d972770ab219be6e2a4
Signed-off-by: Yu Wu <quic_zwy@quicinc.com>
2023-03-22 16:51:43 +08:00
Veera Sundaram Sankaran
2e3ba9430c disp: msm: expose qsync avr step as part of conn mode caps
Add capability to read avr step for each timing mode. This will
be in addition to the existing avr-step-list which is defined
when dfps is enabled. Expose the avr-step as part of each
mode in connector caps to user-mode.
Additionally, change the avr_step connector property to enum
to give usermode just the capability to enable/disable avr-step
and not alter the step value as its fixed from the device tree.

Change-Id: I6d7f8e9fcf03f98abef7640fc741e5e1be8597a1
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2023-02-09 11:10:08 -08:00
qctecmdr
76cbb717c4 Merge "disp: msm: dsi: optimize wait time in DSI timing DB update" 2023-01-29 22:32:24 -08:00
Amine Najahi
d4a444a3d1 disp: msm: dsi: add DCS get scan line command
Add DCS command to read the panel scan line value and associated
time stamp in nano-seconds.

Change-Id: I06a76d3a6c5ad7a2e7681413c741e5b97b34d73f
Signed-off-by: Amine Najahi <quic_anajahi@quicinc.com>
2023-01-25 13:35:12 -08:00
Shamika Joshi
495a6a8731 disp: msm: dsi: optimize wait time in DSI timing DB update
Timing DB needs to be disabled after panel vnsyc.
Update the wait time to reflect difference in line time
between MDP and panel vsync.

Change-Id: Ib5282d67995e8379ead928218f31a8f9fe7fa978
Signed-off-by: Shamika Joshi <quic_shamjosh@quicinc.com>
2023-01-18 13:11:13 -08:00
Alex Danila
b77d92fab3 disp: msm: dsi: remove PHY isolation support
DSI PHY isolation is unused and considered deprecated. Previous uses
were for power measurements and emulated platform support. Use on
emulated platforms has been supplanted by PHY PLL bypass.

Change-Id: I547681912ff82f0df09a1b98c671eac32c19412a
Signed-off-by: Alex Danila <quic_eadanila@quicinc.com>
2023-01-04 11:41:28 -05:00
Vara Reddy
8eff68bdf0 disp: msm: dsi: Use devm_pwm_get instead of devm_of_pwm_get
devm_of_pwm_get is deprecated and need to change
to devm_pwm_get.

Change-Id: Ibeee90261ff40dc50b6a5e40e583bee11a5b177c
Signed-off-by: Maria Yu <quic_aiquny@quicinc.com>
Signed-off-by: Vara Reddy <quic_varar@quicinc.com>
2022-12-20 09:33:00 -08:00
Rajkumar Subbiah
6d5a850504 disp: msm: dsi: add support for phy/pll bypass
This change adds support for bypassing hw access in DSI PHY/PLL
drivers which enables the DSI driver to run on emulation
platforms that might be missing those modules.

Change-Id: I3e83155a79d60f2357606746214d776cefabd651
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Signed-off-by: Shamika Joshi <quic_shamjosh@quicinc.com>
Signed-off-by: Alex Danila <quic_eadanila@quicinc.com>
2022-12-06 07:25:12 -08:00
Srihitha Tangudu
6fb25a2f3d disp: msm: dsi: Correct minimum bit clk calculation for cphy cmd mode
For calculating bit rate in cphy, we multiply bit rate by a factor of
7/16 where 7 is the number of symbols and 16 is the bits per symbol.
But we are currently not considering the 7/16 factor while calculating
minimum bit clk value for command mode which is resulting in a smaller
bit rate value than the minimum bit clk.

Bit rate should always be greater than the minimum bit clk which otherwise
can lead to discrepancies. Correct minimum bit clk calculation for command
mode, by multiplying a factor of 7/16 if cphy.

Change-Id: I39b202dcafe60e2047549f84ff9388b46ae490a5
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2022-11-23 09:19:03 -08:00
Nilaan Gunabalachandran
275c881ae4 disp: msm: fix printk argument errors
This change fixes printk arguments in display driver which is
found with additional compilation flags and adds the compile
flags too.

Change-Id: Ic653591db49b49b9ce1ce04e7df89216772d0e71
Signed-off-by: Nilaan Gunabalachandran <quic_ngunabal@quicinc.com>
2022-11-09 11:13:04 -08:00
Srihitha Tangudu
219652f3a8 disp: msm: dsi: clear the panel esd_recovery_pending in power on commit
Currently the panel esd_recovery_pending flag is cleared for every mode
set. The ESD recovery completes only after the suspend and resume. Clear
the flag only during power on commit.

Change-Id: I97e370feba0aad34558e4675168b4bcb7f5901ca
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2022-10-30 23:37:36 -07:00
Kirill Shpin
60965fdeae disp: msm: dsi: add ctrl version support for pineapple
Added dsi ctrl version 2.8 support for pineapple hardware

Change-Id: If9beb77c53d70d94b498b5b837c26892a4df9089
Signed-off-by: Kirill Shpin <quic_kshpin@quicinc.com>
2022-10-25 09:31:49 -07:00
qctecmdr
2d49ae68e6 Merge "disp: msm: sde: cache cwb enc mask to use during seamless transitions" 2022-10-20 12:29:12 -07:00
Raviteja Tamatam
22a3c5a842 disp: msm: fix display compilation for 6.0 kernel upgrade
Fix display compilation issues for 6.0 kernel upgrade.

Change-Id: Ied1940e653ceaa1de18a8aedeab01197c235603c
Signed-off-by: Raviteja Tamatam <quic_travitej@quicinc.com>
2022-10-19 11:04:22 -07:00
Narendra Muppalla
7fcbec0c8d disp: msm: dsi: add dsi ramdump support without DEBUG_FS
This change adds dsi display ramdump support when DEBUG_FS
is not enabled.

Change-Id: Ic6659a9380acd5eb55a3270d3e3b7016a9cd2bd7
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2022-10-05 03:53:37 -07:00
Vara Reddy
001fa8da90 Revert "disp: msm: dsi: increase cmd dma timeout to 1200 milliseconds"
This reverts commit 14e7e9b409346aa77fd08cca6eab85252d9ccabe.
Reverting this for now until we properly understand the reason
for command transfer timeouts that we are hitting for 5k panel.

Change-Id: I0390af66f9ca06abc1ebb81996bb683dea35beac
Signed-off-by: Vara Reddy <quic_varar@quicinc.com>
2022-08-26 19:06:16 -07:00
qctecmdr
c1d1e0a6ff Merge "disp: msm: dsi: avoid DSI PHY shutdown during idle" 2022-08-18 15:04:08 -07:00
Shashank Babu Chinta Venkata
d3d31ac418 disp: msm: dsi: avoid DSI PHY shutdown during idle
Avoid shutting down DSI PHY and lanes before entering into
idle collapse.

Change-Id: I62fb40c2398e544b08b8cb8788ac2dc1143a82ce
Signed-off-by: Shashank Babu Chinta Venkata <quic_schintav@quicinc.com>
2022-08-16 17:53:16 -07:00
Shashank Babu Chinta Venkata
cf264d1a93 disp: msm: dsi: reorder various resets of DSI PHY
DSI PHY has various resets defined to reset analog, PLL and digital
portions. In current sequence, these resets happen after PLL is locked
which can result in introduction of jitter on PHY lanes.Reordering these
resets to happen before PLL is programmed to have intended clean start
of DSI PHY.

Change-Id: I4eb5c05ea0e6015a5447728b2845b49817411c50
Signed-off-by: Shashank Babu Chinta Venkata <quic_schintav@quicinc.com>
2022-08-16 17:52:56 -07:00
Vara Reddy
3d82106dee disp: msm: dsi: increase cmd dma timeout to 1200 milliseconds
Change increases cmd dma timeout to 1200 milliseconds from 200 milliseconds.
There are video mode panels which can support one frame per second, if pixel
data transfer is active, then our command transfer timeout should be atleast
1000 msec.

Change-Id: I3e8269febe3ed6e55ac9381a8de35e7d19fa3160
Signed-off-by: Vara Reddy <quic_varar@quicinc.com>
2022-08-12 09:51:55 -07:00
qctecmdr
adde40d0a0 Merge "disp: msm: dsi: Enable TPG functionality" 2022-08-06 03:04:57 -07:00
Nisarg Bhavsar
5e0d93196b disp: msm: dsi: Enable TPG functionality
Allow TPG patterns to be displayed on command mode and
video mode panels.

Change-Id: Ie9ba9b404ceb965f8a06d1f19e932dd2e051983b
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2022-08-03 15:04:54 -07:00
Srihitha Tangudu
9857e36ddb disp: msm: dsi: Avoid re-initializing PLL registers during dyn clk switch
Currently we are always initializing PLL registers whenever PLL is
configured. Re-initializing PLL registers during dynamic clock switch in
case of cphy video mode is moving the PLL to some bad state resulting in
display freeze. Avoid this by restricting initialization of PLL registers
to only while turning on the PLL.

Change-Id: I09eacbb37fff4e0e91d226ac08e7d5a2bfbbfe26
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2022-08-03 00:46:15 -07:00
Yahui Wang
a7378dcdf5 disp: msm: dsi: change hs timer control to fix timeout issue
The hs timer control settings can't match with dsi data transfer
requirement, so it may lead to timeout issue when running into low
frame rate, update this change to fix such issue for 30hz display
mode.

Change-Id: I01942a494f46e0023061a9d307a9d2ca1fd8159a
Signed-off-by: Yahui Wang <quic_yahuiw@quicinc.com>
2022-06-21 18:05:04 -07:00
qctecmdr
90276a462e Merge "disp: msm: dsi: add missing dsi ctrl mutex lock in host timing update" 2022-06-19 05:49:38 -07:00
Linux Build Service Account
f9dd358ebe Merge "disp: msm: dsi: avoid DSI pll codes parsing in TVM" into display-kernel.lnx.5.15 2022-06-14 22:36:55 -07:00
Raviteja Tamatam
639f00c277 disp: msm: dsi: avoid DSI pll codes parsing in TVM
pll_codes_region is not defined on TVM and not programmed.
So, adding TVM check to avoid parsing pll code data.

Change-Id: Ia6280ca3fc1b19866673a6767de465d17681add7
Signed-off-by: Raviteja Tamatam <quic_travitej@quicinc.com>
2022-06-10 11:18:48 -07:00
Narendra Muppalla
8edcc604f3 disp: msm: dsi: move warn to info if secondary panel is not assigned
This change moves warning log to info log if secondary default panel
is not available.


Change-Id: Iad420a05c6440afdf0fcc5f7d33197eaf5c158c4
Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
2022-06-01 10:42:26 -07:00
Srihitha Tangudu
ad4b936b50 disp: msm: dsi: turn on the PLL before switching RCG parent during clk on
When display is left on from the bootloader, disp_cc driver will put a
proxy vote on clocks to maintain the hardware configuration of bootloader.
Once all the consumers have been probed, the dispcc driver will synchronize
the hardware state of the device to match the aggregated software state
requested by all the consumers using sync_state call.

If there is an idle power collapse or a suspend before sync state call,
branch clocks and in turn RCG will not get turned off during clocks
disable sequence because of the proxy vote of disp_cc driver. This can be
the case even if there is a vote from any other disp_cc consumers.

During a subsequent call to enable the clocks from DSI driver, we are
currently switching RCG parent to PLL and then turning on the PLL.
If the sync state call doesn't happen before we enable the clocks back,
we'll be setting PLL which is off as a parent to RCG that is on.
But ideally when RCG is on, both the old and new sources should be on
while switching the RCG parent.

Avoid this by turning on the PLL before switching RCG parent during clock
enable sequence.

Change-Id: I1597cf2c8095957cd2b2a20a72bf7199e0d61809
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2022-05-29 20:49:45 -07:00
Rajeev Nandan
d26a3a480e disp: msm: dsi: add missing dsi ctrl mutex lock in host timing update
Acquire dsi_ctrl->ctrl_lock lock before programming dsi ctrl
registers. Failing this may lead to race conditions in register
programming.
Add missing mutex lock inside dsi_ctrl_host_timing_update().

Change-Id: Ic86cbe282333c0b4d63ae3d5b3356a5d24752203
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
2022-05-26 21:50:47 -07:00
Rahul Sharma
aea055ebc6 disp: msm: dsi: pass DRM_BRIDGE_ATTACH_NO_CONNECTOR during bride attach
Pass the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag when attaching the
bridge so that the bridge driver would not create another
drm connector.

Change-Id: I838bd87c40d0eea3df36187befeb7195fb87d5b3
Signed-off-by: Rahul Sharma <quic_rahsha@quicinc.com>
2022-05-17 22:09:43 +05:30
qctecmdr
be3eb851cf Merge "disp: msm: dsi: Don't clear status interrupts while error interrupts toggle" 2022-04-30 22:49:59 -07:00