Граф коммитов

2615 Коммитов

Автор SHA1 Сообщение Дата
Bruce Hoo
1ef7ff26d6 disp: msm: dp: pass drm_dp_aux to drm_dp_link_train* APIs
Pass additional parameter drm_dp_aux to drm_dp_link_train APIs
in order to use drm_dbg_* within those functions.

Change-Id: Icc111ecce78fbbac77eb044ce4200377d3616fc9
Signed-off-by: Bruce Hoo <bingchua@codeaurora.org>
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:26:33 -07:00
Jeykumar Sankaran
095265339d disp: msm: sde: include of_common header for usage
Include of_common header file explicitly to use
of_fdt_get_ddrtype().

Change-Id: Idd814d6188d585b2d0ecd6935f3260a79d15401b
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:26:23 -07:00
Jeykumar Sankaran
3f072ce464 disp: msm: dsi: avoid using devm_pwm_put
API got deprecated in kernel 5.15. Remove the usage.

Change-Id: I10c4fdee1074fcf50ae4fe28124692dae7a31c7c
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:26:09 -07:00
Jeykumar Sankaran
425df29bb6 disp: msm: sde: avoid checking debugfs_create_bool return value
Adapt 5.15 kernel upstream change to return void for debugfs_create_bool.

Change-Id: I9f2ece04dddeba8f43d603fbb62517ea5fb48e7c
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:25:51 -07:00
Jeykumar Sankaran
0192a3616e disp: msm: sde: remove drm_irq header
Remove deprecated/unused header inclusion.

Change-Id: I0b0adc155b154c05f814c02cbff4945484896963
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:25:39 -07:00
Jeykumar Sankaran
83ddc159d0 disp: msm: remove stale ION references
After adapting dma buf api's these references and
paths are unusable. Clean it up.

Change-Id: Id6fa76945132e312e8bacf6e430633b0db9e48a3
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:24:53 -07:00
Lei Chen
8f074719a5 disp: msm: replace msm_smmu_set_attribute with qcom_iommu_enable_s1_translations
Domain attributes has been deprecated on 5.14 kernel, so replace
msm_smmu_set_attribute with qcom_iommu_enable_s1_translations.

Change-Id: I1bf2d5ee089a418eb73605327e82b2e26bd6bada
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:23:25 -07:00
Jeykumar Sankaran
6a3c793980 Revert "disp: avoid display techpack compilation for Kalama QMAA mode"
Reverting the temporary change merged to disable display dlkm compilation.

This reverts commit 87019ed83e.

Change-Id: If4e047aecf3b65e44fb506f084eeee3e65873650
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-10-15 17:22:57 -07:00
Alisha Thapaliya
00fb8baa9d Merge remote-tracking branch 'quic/display-kernel.lnx.5.10' into display-kernel.lnx.1.0
* quic/display-kernel.lnx.5.10:
  disp: msm: sde: disable vsync_in to update tear check
  disp: msm: dsi: flush workers during pre-release
  disp: msm: dsi: swap DSI timing engine programming and ROI cmd tx
  disp: msm: sde: reset dsc mux config in encoder disable
  disp: msm: sde: avoid dsc hw allocation switch for an active display
  disp: msm: dsi: add support for non 1/1 MND dividers

Change-Id: I69491902ce0bf6391303e407d06cc6a4cd3087a2
2021-10-13 15:51:58 -07:00
qctecmdr
b1e561d3f5 Merge "disp: msm: sde: disable vsync_in to update tear check" 2021-10-12 13:00:35 -07:00
qctecmdr
493cb4b048 Merge "disp: msm: dsi: flush workers during pre-release" 2021-10-11 13:32:47 -07:00
qctecmdr
721fee5459 Merge "disp: msm: dsi: swap DSI timing engine programming and ROI cmd tx" 2021-10-08 14:35:59 -07:00
Dhaval Patel
daa4273e02 disp: msm: sde: disable vsync_in to update tear check
Commit b67da33a6307 ("trigger tx_wait if panel
resolution switch") increases the mode switch latency.
Alternatively, single buffer tear check registers can be
updated when vsync_in is disabled. It allows mode switch
frame trigger as posted start frame trigger.

Change-Id: I8068736b2ea01f6e4160e765fc39d7fc2a8590c9
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2021-10-08 13:29:45 -07:00
qctecmdr
11bda1ae79 Merge "disp: msm: dsi: add support for non 1/1 MND dividers" 2021-10-08 10:40:51 -07:00
qctecmdr
fba8cf7c57 Merge "disp: msm: sde: reset dsc mux config in encoder disable" 2021-10-07 21:23:56 -07:00
Jeykumar Sankaran
754552cfc4 Merge branch 'display-kernel.lnx.5.10' into display-kernel.lnx.1.0
* waipio_base:
  disp: msm: sde: add new support for digital dimming
  disp: msm: sde: trigger tx_wait if panel resolution switch
  disp: msm: reserve core clock rate during display disable
  disp: msm: dsi: reorder DSI registration
  disp: msm: sde: account for pref lm when exposing avail resources
  disp: msm: reset lm blend stages for missing vsync
  disp: msm: dp: set drm mode clock same as clock value from EDID
  disp: msm: sde: set top left coordinates for noise and attenuation layers
  disp: msm: dp: disable ASSR before link training
  disp: msm: dp: retry the request to set USB mode during bootup
  disp: msm: sde: clear intf mux select on slave encoders
  disp: msm: retry dma buf attach on msm_gem_delayed_import error
  disp: msm: dp: check for aux abort in sim mode
  disp: msm: dsi: add qsync min fps val in dsi display mode priv info
  disp: msm: dp: read DPCD registers using debugfs
  disp: msm: dsi: mark signature for stub appropriately
  disp: msm: dp: check for DP stream during audio teardown
  display: msm: sde: reduce dbg mem usage for tui vm

Change-Id: I285e4557ad258f17fc2948b478198b9b81c18276
2021-10-07 16:19:39 -07:00
Steve Cohen
bd01b504a5 disp: msm: dsi: flush workers during pre-release
Wait for asynchronous DSI DCS command transfers to complete
before disabling DSI interrupts during pre-release. This is
required to resolve a race condition where dsi worker threads
can trigger HW access while a VM lend/release is occurring on
the CRTC commit thread.

Change-Id: Ia1f153a2cd008c617dba274473e7678b01a38d29
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2021-10-07 17:24:57 -04:00
Satya Rama Aditya Pinapala
bcd04f60da disp: msm: dsi: swap DSI timing engine programming and ROI cmd tx
The ROI commands are sent with an asynchronous command transfer wait.
If the queued CMD DMA wait for done gets scheduled before the DSI
controller timing engine programming, the later will be blocked waiting
on the ctrl_lock, which was acquired by the queued DMA wait for done work.
This effectively negates any advantage of having the async wait flag for
ROI commands blocking the main commit thread.

The change swaps this order to ensure that such a scenario never happens.

Change-Id: I8a971c0c7733eea3d435b637ca41b34fa60adfc1
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-10-07 10:58:32 -07:00
qctecmdr
c460ffbd27 Merge "disp: msm: sde: trigger tx_wait if panel resolution switch" 2021-10-07 01:25:29 -07:00
Prabhanjan Kandula
9e988121fc disp: msm: sde: reset dsc mux config in encoder disable
During display encoder disable, reset the dsc control
mux configuration during null commit to ensure dsc hw
blocks are cleanly freed up.

Change-Id: I02e2f074450e4d7b49dc8fec14777f380786c63e
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-10-07 00:09:06 -07:00
Prabhanjan Kandula
7db951ec69 disp: msm: sde: avoid dsc hw allocation switch for an active display
While hw resources allocation for an active display during modeset, avoid
dsc hw allocation switch by finding which dsc encoders are allocated
previously and allocate same dsc hw encoders. This helps in fixing underrun
issues in below scenario of dual display power ON/OFF.
Use case: Dual DSI display setup, both are DSC enabled, primary in video mode.
    --> when both displays are in powered off, all hw block are free.
    --> enable second dsi display
    Since LM 0/1 marked for primary, LM 2/3 allocated along with DSC 0/1
    --> enable primary display
    LM 0/1 allocated with DSC 2/3 encoders
    --> Now power off secondary DSI
    DSC 0/1 are freed up
    --> Immediate modeset on primary, DSC allocation switched
    LM 0/1 and DSC 0/1 allocated. DSC 2/3 are freed up as per RM but
    decoupling DSC 2/3 blocks with respective pingpong or intf is not done.
    This is causing underruns on primary.
Tracking which DSC blocks are freed during resource switch and programming the
respective DSC control mux configuration is not feasible and not scalable as
any other display can allocate those blocks and would require synchronizing
across display threads. So approach taken is avoid dsc resource switch itself.

Change-Id: I7f740722a52266740c4b168edc0c619e3cf68989
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2021-10-07 00:04:33 -07:00
Srihitha Tangudu
b53b12b1ad disp: msm: dsi: add support for non 1/1 MND dividers
Adjust pll pclk rate to support non 1/1 dispcc MND
divider values by updating pclk div calculation.

Change-Id: I1972b536a109b97978e843f046b1db4ad6813a51
Signed-off-by: Srihitha Tangudu <tangudu@codeaurora.org>
2021-10-07 00:49:17 +05:30
Ping Li
629228c353 disp: msm: sde: add new support for digital dimming
Add new properties to support dynamically turning on and off digital
dimming and setting new minimum backlight.

Change-Id: I3b94190877d556768ba2c92ec59432dec44de0de
Signed-off-by: Ping Li <pingli@codeaurora.org>
2021-10-05 21:15:09 -07:00
Dhaval Patel
b696aa3b24 disp: msm: sde: trigger tx_wait if panel resolution switch
Trigger tx_wait if command mode panel resolution
switches during mode switch to avoid early single buffer
tear check programming.

Change-Id: Ib747df8250c714248a44b596c2c8aeef006ea4fc
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2021-10-04 13:16:00 -07:00
qctecmdr
5f5c61faa0 Merge "disp: msm: dsi: reorder DSI registration" 2021-09-29 02:10:57 -07:00
qctecmdr
f96c6ed42d Merge "disp: msm: dp: set drm mode clock same as clock value from EDID" 2021-09-27 19:14:22 -07:00
Dhaval Patel
c281b3a879 disp: msm: reserve core clock rate during display disable
Userspace module may not trigger the atomic check and it
can cause the commit failure. In such case, always reserve
the minimum core clock rate on mmrm module for built-in
displays to avoid the power ON failure.

Change-Id: Iafd92a7b7d1b35befe70b041cbedaec2add40de4
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2021-09-27 13:44:12 -07:00
Shashank Babu Chinta Venkata
1263b4cabc disp: msm: dsi: reorder DSI registration
Reorder registration of various display drivers in the order of
dependency.

Change-Id: Idfa0616d3133f3b03c713e3c15a4fd3956ec2594
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
2021-09-27 11:22:08 -07:00
Nilaan Gunabalachandran
711eabbf43 disp: msm: sde: account for pref lm when exposing avail resources
If an external display, such as DP, requests for the available
resources, resource manager (RM) will provide a count of all unused
mixers. If the primary/secondary display(s) are not active, the RM
will report the associated preferred mixers as free resources.
However, RM will not allow preferred mixers to be allocated to other
displays. DP driver could look at these available resources and assume
a high resolution mode is possible and fail during resource allocation.

This change updates the available resources info API to account for
primary/secondary preferences while exposing available resources.

Change-Id: I134a1047f24ac9f1fcee695aa14a1d3e43c1571f
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-09-27 12:13:37 -04:00
qctecmdr
f1ae36dfab Merge "disp: msm: reset lm blend stages for missing vsync" 2021-09-24 00:47:23 -07:00
qctecmdr
efebe33c3e Merge "disp: msm: sde: set top left coordinates for noise and attenuation layers" 2021-09-22 09:59:18 -07:00
Dhaval Patel
fc2226ea25 disp: msm: reset lm blend stages for missing vsync
MDSS INTF HW block does not generate vsync if controller
turns off the link clock prematurely. This leads to
frame trigger timeout and SDE driver triggers the retire
fence after 84ms to recover gracefully. A client may switch
source pipe from one CTL path to another CTL path based
on delayed retire fence. It can lead to other ctl path
hang. This can be resolved by resetting the lm blend
stages for each missing vsync frame trigger.

Change-Id: I5a6ed03afbdad83d8fd6decc593d39e04bef62e4
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2021-09-22 09:46:32 -07:00
Sandeep Gangadharaiah
e3927fdfaa disp: msm: dp: set drm mode clock same as clock value from EDID
Commit Ie972a2e140adfd81c4e68df8e7bc69feaaca22e1 updated the dp
driver to extract the drm mode clock from timing parameters
instead of using the clock value provided by EDID to align the
behavior with DSI driver. But this results in incorrect clock
value if the refresh rate is not an integer value. For rates
such as 59.94 or 29.97, the calculated mode clock value would
be different from what is stipulated by EDID. This change
reverts the mode clock calculation to use the clock value
from EDID.

Change-Id: I3e192ef09d2456fbb1d22a0bf9474ac25ba86c72
Signed-off-by: Sandeep Gangadharaiah <sandgang@codeaurora.org>
2021-09-21 18:06:57 -04:00
Anjaneya Prasad Musunuri
0a214e5d4a disp: msm: sde: set top left coordinates for noise and attenuation layers
Noise and attenuation layers are full screen layers. Top left coordinates
are not cleared in some use cases when same blend stage is assigned to
noise and attenuation layers. This change sets top left coordinates of noise
and attenuation layers.

Change-Id: I6af7a38d011d0bb642dc3d8a4aff338075524906
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-21 23:01:35 +05:30
qctecmdr
e5ed14f97d Merge "disp: msm: dp: disable ASSR before link training" 2021-09-21 10:25:33 -07:00
Vara Reddy
087390da0d disp: msm: dp: disable ASSR before link training
Power on reset value of DPTX_CONFIGURATION_CTRL.ASSR (alternate scrambler
seed reset) is high. Which will cause link training 2 to fail with TPS4 pattern.
Change disables this before link training starts.

Change-Id: Iee95de04625658254b242afdcbba6db24a52606d
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2021-09-21 00:02:58 -07:00
qctecmdr
9acf478553 Merge "disp: msm: dp: retry the request to set USB mode during bootup" 2021-09-20 22:29:36 -07:00
Sandeep Gangadharaiah
edd46a2a54 disp: msm: dp: retry the request to set USB mode during bootup
DP driver is requesting USB to release SS lanes very early
during bootup even before USB has fully initialized. As a
result USB driver is returning -11 which will abort DP state
machine. This change will allow DP driver to retry USB request
whenever this error code is received.

Change-Id: I144d16ef4b07016569ba9c04df15610fe3b5e6fc
Signed-off-by: Sandeep Gangadharaiah <sandgang@codeaurora.org>
2021-09-20 13:03:45 -07:00
qctecmdr
958acc9e7c Merge "disp: msm: retry dma buf attach on msm_gem_delayed_import error" 2021-09-20 12:59:46 -07:00
Jeykumar Sankaran
87019ed83e disp: avoid display techpack compilation for Kalama QMAA mode
Temporary change to enable compilation of display techpack
for Kalama vendor image.

Change-Id: I26d91f489085b301a21f6e58d3930cd9b2471fe3
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-09-17 19:14:58 -07:00
Nilaan Gunabalachandran
95a41081eb disp: msm: sde: clear intf mux select on slave encoders
When disabling an encoder with multiple physical encoders, the
intf mux must be cleared on all interfaces. Currently only the master
physical encoder is being cleared, leading to possible DSI
underflow errors. This change ensures that the mux is cleared
on all interface blocks.

Change-Id: Idb1b96fd65545e3599100e70ace22bc3837d7233
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-09-17 17:11:19 -04:00
qctecmdr
785cde38ef Merge "disp: msm: dsi: mark signature for stub appropriately" 2021-09-17 03:46:41 -07:00
qctecmdr
0a9759ec0d Merge "disp: msm: dp: read DPCD registers using debugfs" 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
qctecmdr
7edd9e5faa Merge "disp: msm: dp: check for DP stream during audio teardown" 2021-09-17 03:46:41 -07:00
qctecmdr
0d46a03da7 Merge "display: msm: sde: reduce dbg mem usage for tui vm" 2021-09-17 03:46:41 -07:00
Linux Build Service Account
254160dcc0 Merge "disp: msm: dp: check for aux abort in sim mode" into display-kernel.lnx.5.10 2021-09-17 00:36:49 -07:00
Samantha Tran
8c62ff4082 disp: msm: retry dma buf attach on msm_gem_delayed_import error
In the event when msm_gem_delayed_import returns an error, reset
the obj_dirty property to true to allow the buffer to detach and
attach again.

Change-Id: Ib8da8f237c5a4ab696675cbcf66f1a3dfae02639
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-09-16 14:14:02 -07:00
Rajkumar Subbiah
fba8d96566 disp: msm: dp: check for aux abort in sim mode
In sim mode, the dp driver is not checking for the aux state before
processing an aux request. This ends up causing the drm framework to
unnecessarily wait for 4 seconds while destroying a stream.

This change adds the check for aux state to align with the behavior
of a real sink.

Change-Id: I81900018ac1b403bb1e03fe26206e145694fefbd
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2021-09-15 13:00:58 -04: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