提交图

3602 次代码提交

作者 SHA1 备注 提交日期
Yuchao Ma
dd47950072 disp: msm: sde: reset bl_scale_sv in power off case
In userspace, the backlight scale of LTM will be set to the maximum value
in the suspend case. However, sometimes this value is sent to the driver
after resume. This will cause a backlight flicker issue.
For fix this issue, this change resets the backlight scale in the suspend case.

Change-Id: I0eb586eeefbf3444d6f44281d58789460300dffc
Signed-off-by: Yuchao Ma <quic_yuchaom@quicinc.com>
2023-06-12 01:01:45 -07:00
qctecmdr
9b23a8f4aa Merge "disp: msm: dp: ensure failsafe mode in connector mode list" 2023-06-08 13:43:43 -07:00
qctecmdr
060d3bb8a5 Merge "disp: msm: sde: inversely allocate DSC for non built-in displays" 2023-06-07 20:28:48 -07:00
Rajkumar Subbiah
ff99320123 disp: msm: dp: ensure failsafe mode in connector mode list
The driver currently inserts a failsafe mode when EDID read fails
for SST. But for cases where the edid read succeeds but all the
modes are getting filtered out because of resource availability,
the driver does not add the failsafe mode. But the usermode
expects the failsafe mode to be always present in the mode list
as per DP specification. Also, the driver currently does not
add the failsafe mode, if the edid read fails on an MST monitor.

This change covers all these missing cases and makes sure the
failsafe mode is always in the connector's mode list if it is
in connected state.

Change-Id: I92eeaa00ad7b26a18b3689aa1c2ada4244aba3bc
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2023-06-07 10:58:08 -04:00
Lei Chen
7898a8b208 disp: msm: sde: inversely allocate DSC for non built-in displays
Allocate DSC inversely for non built-in displays to avoid Quad DSC
can't be contiguous reserved as the below scenario.

Use case: Primary display with 2 DSC, and DP display can support 8K@60
with 4 DSC and 4k@60 with 2 DSC.
	--> when both display are in powered off, all DSC blocks are free.
	--> enable DP display with 4k@60.
		DSC 0/1 is allocated by DP display
	--> enable primary display.
		DSC 2/3 is allocated by primary display.
	--> switch DP display to 8K@60
		DSC 0/1 + DSC 4/5 are allocated by DP display.
But the DSC must be contiguous allocated for Quad pipe.

Change-Id: I465c115bb7ec775483dc6a984306a9aa51750b14
Signed-off-by: Lei Chen <quic_chenlei@quicinc.com>
2023-06-06 22:40:52 -07:00
Mitika Dodiya
b573201f7c disp: msm: sde: demura backlight adaptation change
Demura backlight value will be updated based on the backlight event
in the driver. Make HFC gains programmable based on backlight value.

Signed-off-by: Mitika Dodiya <quic_mdodiya@quicinc.com>
Change-Id: I74e9aa2c274eedb473095c5eafef194d6a6f1d94
2023-06-05 04:33:58 -07:00
Rajkumar Subbiah
af85165fe6 disp: msm: dp: fix max slice width check for dsc
When calculating the number of DSC slices based on the source
and sink capabilities, the driver is using an incorrect check
for max slice width which results in increasing the num of
slices if the width is an exact multiple of 2560.

Change-Id: Ia854c4a2d436144165fb52beb04b5e0d1678d0f6
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2023-06-02 14:24:02 -04:00
qctecmdr
68e4c1a426 Merge "disp: msm: sde: trigger a suspend commit if display in video mode" 2023-06-02 01:09:42 -07:00
qctecmdr
c90858d892 Merge "disp: msm: sde: use atomic operator for evt log entries" 2023-06-01 16:32:18 -07:00
Ryan McCann
ecb0dbed04 disp: msm: sde: use atomic operator for evt log entries
To optimize evt log entries, spinlock is been removed and
used atomic operator for curr variable, due to which there
is mismatch of count values between curr and last variable during
xlog dump in kernel. So change the last variable to atomic to
avoid race condition between entries of evt logs.

Change-Id: Idf3e2b982261d77fec97985af1e8bf740a6f6197
Signed-off-by: Ryan McCann <quic_rmccann@quicinc.com>
2023-06-01 10:35:54 -07:00
qctecmdr
8c5257010e Merge "disp: msm: sde: Register LUTDMA dummy region after parameter validation" 2023-05-31 21:00:19 -07:00
qctecmdr
4d32a7f6dd Merge "disp: msm: update debugbus dump header formatting" 2023-05-31 21:00:19 -07:00
qctecmdr
a968503898 Merge "disp: msm: dsi: enable vid RFI on secondary panel" 2023-05-31 21:00:19 -07:00
qctecmdr
afd228ebb3 Merge "disp: msm: sde: reduce the latency in MDSS IRQ processing" 2023-05-31 21:00:19 -07:00
Prabhanjan Kandula
ddc22a87ee disp: msm: update debugbus dump header formatting
Update the string formatting of debugbus dump header
to support existing scripts  for debugbus parsing.

Change-Id: Ie0b4fdcb73e131ea5893a3dbc6aad969735d137d
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
2023-05-31 16:13:02 -07:00
qctecmdr
0b57a269e2 Merge "disp: msm: dp: use new api for drm_dp_remove_payload" 2023-05-31 15:48:32 -07:00
qctecmdr
45435d6598 Merge "disp: msm: dp: skip mst display enable if payload is empty" 2023-05-31 15:48:31 -07:00
qctecmdr
2adf210808 Merge "disp: msm: dp: clear connected state if switch config fails" 2023-05-31 15:48:31 -07:00
jianzhou
4aa8db1b2b disp: msm: dp: use new api for drm_dp_remove_payload
The API for drm_dp_remove_payload in DRM framework was changed to include
both the old and new payload states. This change updates the MST driver
to use the new API.

Link: https://patchwork.freedesktop.org/patch/msgid/20230206114856.2665066-2-imre.deak@intel.com
Change-Id: Iaf1c6842674b792c8e939404855ff9e9fce127c4
Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2023-05-31 14:18:50 -04:00
Kirill Shpin
d1ba05f408 disp: msm: dsi: enable vid RFI on secondary panel
Enables parsing of secondary panel's PLL trim codes.

Change-Id: Iaf7f1040a505371582de715e95bd85b2578b306e
Signed-off-by: Kirill Shpin <quic_kshpin@quicinc.com>
2023-05-30 11:20:46 -07:00
Rajkumar Subbiah
2d4c6cf994 disp: msm: dp: clear connected state if switch config fails
During HPD High, the driver sets the CONNECTED state and then performs
a sequence of initialization operations. If any of them fails, it should
properly unwind the executed operations to restore the driver to its
initial state. This change adds error handling paths in the hpd high
handler to do just that.

Change-Id: I66a77ff73b7c11d0a59d80b8df3c4ea49a4ed3a6
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2023-05-29 14:41:06 -04:00
qctecmdr
a0778dcd49 Merge "disp: msm: sde: add support for TE level trigger" 2023-05-26 13:59:40 -07:00
qctecmdr
fc7ef746c3 Merge "disp: msm: dp: fix pbn value for MST RG calculation" 2023-05-26 13:59:39 -07:00
qctecmdr
31acaaa2f5 Merge "disp: msm: dp: change to internal lm bookkeeping" 2023-05-26 13:59:39 -07:00
qctecmdr
1a1a7d32d0 Merge "disp: msm: dsi: increase cmd dma timeout to 1200 milliseconds" 2023-05-26 13:59:38 -07:00
Amine Najahi
fea2f25ccf disp: msm: sde: add support for TE level trigger
During qsync frequency step down, it is possible for the changing
frame window to lead to frame buffers being transferred when it
is unsafe to update. Pineapple r2 hardware supports using the
panel's TE level, instead of the start window, to trigger the
frame transfer.

This change enables using TE level during QSYNC or AVR, if the
hardware supports it.

Change-Id: Ie675edaaeb80921c639905395b709f4c67134fc7
Signed-off-by: Amine Najahi <quic_anajahi@quicinc.com>
2023-05-26 09:42:03 -07:00
Shirisha Kollapuram
a74a3276d8 disp: msm: sde: reduce the latency in MDSS IRQ processing
Reduce the MDSS IRQ processing latency by skipping the status
register read/write of the interrupts which are not enabled.

Change-Id: Id86057ad3ab043ad76d4d4b44a373eff3b55da4d
Signed-off-by: Shirisha Kollapuram <quic_kshirish@quicinc.com>
2023-05-26 13:10:58 +05:30
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
Rajkumar Subbiah
3260a80dab disp: msm: dp: skip mst display enable if payload is empty
During MST display enablement, the time slots for the display are
calculated during mst atomic check, which is then used in the
enable path. But if for some reason the payload wasn't allocated
successfully, then the enable path will have the time slots set to
0 which causes a send video timeout and also the missing payload
could result in null pointer dereferencing in step2 of mst payload
addition.

This change checks for this situation during pre-enable and returns
an error so the enable does not continue ahead.

Change-Id: If139707537b7a6dba169841ac82841851b4c09cb
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
2023-05-24 15:38:59 -04:00
Andrew Bartfeld
ed36c21587 disp: msm: dp: change to internal lm bookkeeping
Previously we were updating internal layer mixer allocation
bookkeeping during every mode validation regardless of whether
the mixers were already designated in use, resulting in double
counting of in-use layer mixers.

This change prevents modification of these values if the given
connector's mode has already been previously validated so valid
modes can be returned properly.

Change-Id: Iea5dccfbc4087cc76f186101d38b605792326b16
Signed-off-by: Andrew Bartfeld <quic_abartfel@quicinc.com>
2023-05-23 15:42:10 -07:00
GG Hou
8360bd82c9 disp: msm: sde: disable CWB in quad pipe
Disable CWB in quad pipe for quad LM CWB not supported
to avoid out of bound access.

Change-Id: I7e64cf132489401f91621ccde31cba68c8076d28
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-23 04:55:54 -07:00
Rohith Iyer
b8634f10bd 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: I3d650d787fa6557ce474aca977906b99af1f1cbc
Signed-off-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
2023-05-22 16:11:30 -07:00
qctecmdr
ae50686e33 Merge "disp: msm: sde: relax the EPT + modeswitch validation check" 2023-05-22 13:37:55 -07:00
qctecmdr
002c8e6f63 Merge "disp: msm: sde: update qos cpu mask to avoid defective cores" 2023-05-22 13:37:55 -07:00
qctecmdr
ca183b89c1 Merge "disp: msm: sde: move EPT delay from prepare_for_kickoff" 2023-05-22 13:37:55 -07:00
Andhavarapu Karthik
86724a1df9 disp: msm: sde: update qos cpu mask to avoid defective cores
CPU qos_mask populated from devicetree can have defective cpu cores
included. This change identifies and replaces the defective cores
in the qos mask with the next possible working cpu cores.

Change-Id: Ie6bad11ff36f8e2486ef568b67b3fe024f9786c7
Signed-off-by: Andhavarapu Karthik <quic_kartkart@quicinc.com>
2023-05-22 22:26:29 +05:30
qctecmdr
8ba837f763 Merge "disp: msm: sde: avoid vbif level and RP remap programming for virtual planes" 2023-05-19 08:01:53 -07:00
qctecmdr
9afc43bcbc Merge "disp: msm: dsi: Adjust DSI priority level" 2023-05-19 08:01:53 -07:00
Veera Sundaram Sankaran
c4b13a146e disp: msm: sde: relax the EPT + modeswitch validation check
Remove the validation check that rejects the concurrency of
Expected Present Time update during modeswitch, as it is
expected to get an updated EPT value during the switch.

Change-Id: Ia94aedc4ea39b9c72fb0db17e91a09a77086563b
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2023-05-18 16:28:12 -07:00
Veera Sundaram Sankaran
a086d338bf disp: msm: sde: move EPT delay from prepare_for_kickoff
Move Expected Preset Time delay from prepare_for_kickoff phase to
just before encoder kickoff. This will ensure the delay is done
towards the end of frame trigger and keeps minimal s/w programming
after the delay. This will help in cases where other unexpected
system delays occur, while coming out of sleep.

Change-Id: Ia04a9ab0455db8082b3f9f03d02db2cec5e17db5
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2023-05-18 16:27:34 -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
Christopher Braga
06fe4deb2a disp: msm: sde: Register LUTDMA dummy region after parameter validation
A dummy LUTDMA region is registered prior to parameter validation, potentially
causing the usage of an unallocated memory if the sde_mdss_cfg structure is
invalid. Update the code flow so that the dummy LUTDMA region is registered after
all parameter validation

Change-Id: I9a10b166ee7a611b9d5d2cb0555822996d123c10
Signed-off-by: Christopher Braga <quic_cbraga@quicinc.com>
2023-05-16 10:57:11 -04:00
Mahadevan
7fb1d48409 disp: msm: sde: trigger a suspend commit if display in video mode
When there is runtime PM suspend and a video mode panel is Doze
state or Doze suspend state PM suspend will fail as clocks are on.
To avoid this do a suspend commit while entering runtime PM suspend
so that xo shutdown will be successful.

Change-Id: I108184bf2e5ea18ef54eab879556e9c941514176
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2023-05-15 04:56:11 -07:00
GG Hou
ee2ee3b129 disp: msm: sde: update flush mask in fence error case
Add a new clear_flush_mask ops in sde_hw_ctl_ops.
Flush mask update to cancel the fence error frame with
the new ops.

Change-Id: I8d03d8e83a05a652789fb38e885a3c8497e4d262
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 23:58:37 -07:00
GG Hou
5f4735e2ce disp: msm: sde: fence error handling for wb and cwb retire fence
Fence error handling for wb and cwb retire fence.
Signal the retire fence for the fence error frame.

Change-Id: I0f73195c50edab4b8aefb58cea342214be87584c
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 23:57:59 -07:00
GG Hou
85015a84cb disp: msm: sde: reset lutdma when fence error occurs
Reset lut dma when fence error is seen to reset the already
submitted queue.

Change-Id: Iba9ab33a2e80bdaba6b1d4ccff086e3a46f8374d
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 23:57:22 -07:00
GG Hou
d2812ee4e7 disp: msm: add support for display clients to register for fence error
Add framework for display submodules like PP, DSI, DP to register
for fence error and call the client callback funtion when fence
error occurs.

Change-Id: I70cc6b01907177e6c4238c4398fe2c085a000322
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 23:55:51 -07:00
GG Hou
54209fb4d0 disp: msm: sde: sw fence error handling
Sw fence error handling addresses following:
a. out of order handling
  - For cmd panel, signal the release fence and retire fence once
    sw fence error detected.
  - For vid panel, signal the fence error frame release fence and
    retire fence once sw fence error detected, hold the release
    fence of last good frame till next good frame.
b. avoid BW decrease vote
c. lut dma reset
d. cancel kickoff

Change-Id: Ic496c532a26d80e0ef0074624ef6ace01c4ab2f0
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-15 14:54:03 +08:00
Akash Gajjar
8227b2ac26 disp: msm: sde: avoid vbif level and RP remap programming for virtual planes
Each rectangle is listed as an individual DRM plane, and since
they share a common VBIF register, there is no need to re
program the QOS remapper for the virtual plane.

Change-Id: I7af6aca1953cd61e622ef5b15353d5ea20fd73cd
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-05-15 11:01:02 +05:30
GG Hou
a658fb17b7 disp: msm: sde: dma fence out of order handling in fence error case
Handle out of order dma fence signalling and propagation of fence
error. Out of order fence signaling is required only in Video mode.
For example, in case of N, N+1, N+2 frames where N, N+2 are good
frames and N+1 is frame with fence error. The release fence signal
sequence in video mode would be N+1, N, N+2.

Change-Id: I8b6f88cfeee945e28571b765f24ffea22fad23b8
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
2023-05-14 20:15:49 -07:00