コミットグラフ

3221 コミット

作成者 SHA1 メッセージ 日付
Mahadevan
62cab75164 disp: msm: sde: set connector lm_mask for dp display
This change sets lm_mask for dp connector based on
number of LMs allocated by RM. This mask will be
used during rm allocation and validation of dcwb
mixers for dp display.

Change-Id: I271af03da560587faf17446471bd6b81bb9e809b
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-07-20 14:42:20 +05:30
Mahadevan
a1f4bdb7d9 disp: msm: sde: fix cwb lm allocation failures in RM
This change corrects the conditional check in commit 2859b760a414
("disp: msm: sde: proper allocation of dcwb for LMs") with respect
to DCWB mixer allocation in RM.

Change-Id: I83fd39ed366774f20046b8f9c0e6959116b541ee
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-07-20 00:49:20 -07:00
Mahadevan
04edecd269 disp: msm: sde: proper allocation of dcwb for LMs
During dcwb mixer allocation, resource manager allocates
the first available mixer in the free list. In dual display
uses case with 1 1 1 topology if only secondary is running
CWB then, resource manager allocates DCWB0 which leads to wb
timeout due to HW does not have the connection between LM1
and DCWB0. This change allocates proper dcwb for the LMs in RM.

Change-Id: I0c8b04b46ccad5a7d7dd591fbfa3ea0915eccdc6
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-07-20 13:16:42 +05:30
Mahadevan
6bb958c88b disp: msm: sde: fix dcwb idx selection for pp_dither and CTL blocks
When cwb is triggered on built-in display secondary display
with (1,1,1) topology, improper dcwb_idx value is passed
to pp_dither and CTL registers. This change populates proper
dcwb_idx during pp block dt parsing and passes the same for
programming.

Change-Id: I543eede6f5fd9c2c80799503e3639ea9e89058ca
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-07-20 12:43:13 +05:30
Ashwin Pillai
54f7210b1d disp: added environment variable for build.sh techpack display_tp
add a environment variable to build msm_drm for build.sh techpack
display_tp.

Change-Id: I530c4fef3c2bf6aa06f87ca3df46d1f155a91f3a
Signed-off-by: Ashwin Pillai <quic_ashwpill@quicinc.com>
2022-07-19 13:29:45 -04:00
qctecmdr
887b222de9 Merge "drm/msm: don't allocate pages from the MOVABLE zone" 2022-07-18 07:31:35 -07:00
qctecmdr
aff5c915e2 Merge "disp: msm: sde: add tx wait for WB display during modeset" 2022-07-18 07:31:34 -07:00
qctecmdr
c439d2fadc Merge "disp: msm: sde: update atomic check for VM_ACQUIRE state" 2022-07-17 21:59:39 -07:00
qctecmdr
0f8cbff9c7 Merge "disp: msm: avoid cwb on esd recovery commit" 2022-07-17 21:59:38 -07:00
Linux Build Service Account
f6df1dc160 Merge "disp: msm: sde: update uidle ctl register only for master encoder" into display-kernel.lnx.5.15 2022-07-17 12:56:32 -07:00
Linux Build Service Account
6be14b68be Merge "disp: msm: sde: Fix data width calculation when widebus is enabled" into display-kernel.lnx.5.15 2022-07-17 12:56:31 -07:00
Linux Build Service Account
b08fbb8ed4 Merge "disp: msm: sde: update encoder wait event timeout condition" into display-kernel.lnx.5.15 2022-07-17 12:55:31 -07:00
Linux Build Service Account
4ba5377d5f Merge "disp: msm: sde: avoid clear_pending_flush on hw_ctl during power_on commit" into display-kernel.lnx.5.15 2022-07-17 12:55:30 -07:00
Yashwanth
ccea75e206 disp: msm: sde: update atomic check for VM_ACQUIRE state
This change updates atomic check for VM_ACQUIRE transition
only for android VM since in trusted VM, vm_owns_hw is
updated asynchronously. This change fixes atomic check
failures seen with commit ea9696a769d3 ("disp: msm: sde:
update atomic check for VM_REQ_ACQUIRE state").

Change-Id: I951e41490c01b543b591c0bbe2700fd8eea39c78
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-07-15 05:02:04 +05:30
Narendra Muppalla
8d8d5c1b74 disp: msm: sde: avoid null pointer dereference
This change avoids null pointer dereference in encoder kickoff.

Change-Id: I83c2c6f327ffb367a1cf5fc3a6cf0309a1187441
Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
2022-07-14 11:52:05 -07:00
Lucas Stach
f42f76d31b drm/msm: don't allocate pages from the MOVABLE zone
The pages backing the GEM objects are kept pinned in place as
long as they are alive, so they must not be allocated from the
MOVABLE zone. Blocking page migration for too long will cause
the VM subsystem headaches and will outright break CMA, as a
few pinned pages in CMA will lead to failure to find the
required large contiguous regions.

Change-Id: I5eba32fc8a2730eac29668dbd96aaf8f04ac155f
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Git-commit: 0abdba47dc1df708c365421d481734d3f7fecb01
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
2022-07-12 14:18:14 -07:00
Christina Oliveira
15e352d634 disp: msm: sde: add wait on spec fences for hwfencing
This change adds a wait for input spec fence to bind
before registering for hw fencing wait on it.

Change-Id: I5453547c29672e39a95b91197983075e3b61d1eb
Signed-off-by: Christina Oliveira <quic_coliveir@quicinc.com>
2022-07-12 10:53:03 -07:00
Lei Chen
6f17f3e63e disp: msm: sde: add tx wait for WB display during modeset
Add tx wait for WB display during modeset to avoid unbalanced
IRQ handle.

Change-Id: I18337e2a06fe5ec98d4d6e6d766abbf4ec585703
Signed-off-by: Lei Chen <quic_chenlei@quicinc.com>
2022-07-06 19:26:11 -07:00
Mahadevan
8f64b5283a disp: msm: avoid cwb on esd recovery commit
This change depends on HAL change which sets CONNECTOR_SET_CRTC
property to null for cwb conn, if cwb is enabled during esd failures.
This causes power off commit crtc_state's active_changed and
connectors_changed set to true, which is causing seamless_crtc
to true during msm_disable_outputs and this leads to invalid crtc
state. This change modifies the seamless_crtc condition and
the msm_crtc_set_mode callback is early returned during such cases
to power off crtc.

Without this change, crtc_disable is not called which avoids
SDE_FENCE_RESET_TIMELINE. On esd failure release fence is not
signaled for the planes used in the composition and this further
leads to GPU wait on release fence and causes fence timeout.

Change-Id: Ie5d8f1b99d6a2d335330331288223fbeba9f6e64
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2022-07-05 09:21:58 -07:00
Yashwanth
2b4adfd6d3 disp: msm: sde: update uidle ctl register only for master encoder
In case of dual dsi usecase, since both the encoders use
the same CTL path, this change ensures that uidle ctl
settings are updated only by the master encoder.

Change-Id: Ic47703aeee69999b4535034b5cd7a65cf53cd0fb
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-07-05 09:21:51 -07:00
Kashish Jain
082c1cfd34 disp: msm: sde: Fix data width calculation when widebus is enabled
Adjust the data width calculation to reduce the rounding off error
when the widebus is enabled.

Change-Id: Ia2fa4536ce519548989e2befcb22fb685f286c9e
Signed-off-by: Kashish Jain <quic_kashjain@quicinc.com>
2022-07-05 09:19:44 -07:00
Yashwanth
a5e9316dd1 disp: msm: sde: update encoder wait event timeout condition
The sequence during which issue is observed:

1) wb pending_retire_fence_cnt is equal to 2 due to which
it waits for WB_DONE irq. Current pending_retire_fence_cnt
is 2 and required pending_retire_fence_cnt is 1.

2) Due to external reasons, irq's are disabled and after
some duration, back to back irq's are received.

3) Because of this, pending_retire_fence_cnt becomes zero
before the commit thread could wakeup and validate the
condition.

sde_encoder_helper_wait_for_irq API will wait for complete
timeout due to the count mismatch. This change adds
required check to early exit in such usecases.

Change-Id: I4f9c817cc7acee17424b77928d34b039afcaeae5
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-07-05 09:18:11 -07:00
Jayaprakash Madisetty
e09db6e5c2 disp: msm: sde: avoid clear_pending_flush on hw_ctl during power_on commit
CTL datapath idx can be switched between secondary and external displays
as per current SW code. This change avoids the clearing the SW flush ctx
in prepare_commit during resume use case. It fixes the GPU fence timeouts
seen during below scenario.
Issue scenario:
1. Primary display was using CTL_0 and it is reserved.
2. Secondary display was using CTL_1 and suspend occurred.
   CTL_1 is added to RM free list.
3. When external Display is connected, it starts using CTL_1
   datapath.
4. Secondary display is resumed and it starts using CTL_2.
   During prepare_commit, phys_enc->hw_ctl was CTL_1 and
   SW is clearing the flush ctx of external Display.
5. Since CTL_1 flush bits are cleared, SW is not programming the
   CTL_FLUSH register for this composition and release/retire fences
   are not signaled causing fence timeouts at GPU end and Input fence
   timeout at display end finally leading to SF hung.

Change-Id: Ic843ce5c4f06f1620636abd24d443952c2ba8dc5
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2022-07-05 09:17:10 -07:00
Yashwanth
c5ed579309 disp: msm: sde: update atomic check for VM_REQ_ACQUIRE state
Following is the sequence during which issue is observed:

1) HAL sends a commit with VM_REQ_RELEASE property set
indicating transition from primary vm to trusted vm.

2) Before the transition commit ends, there is atomic check
for next commit from HAL with VM_REQ_ACQUIRE property
indicating transition from trusted vm to primary vm.

3) Since the HW is currently owned by the primary vm, it
performs a early return during check phase. After this,
transition has occurred from primary to trusted and when
the next commit is scheduled on primary, it results in
crash since it is currently not the owner.

This change adds necessary to check avoid commit with
VM_REQ_ACQUIRE state before the transition.

Change-Id: I4650305a95ef6bc495375a21a799522e67a61883
Signed-off-by: Yashwanth <quic_yvulapu@quicinc.com>
2022-07-05 09:15:37 -07:00
Amine Najahi
080a91084f disp: msm: sde: force RC mask revalidation during mode switch
Force rounded corner mask revalidation during mode switch.

Change-Id: I4037290b91885dfa16357f43685d7fd894b301c4
Signed-off-by: Amine Najahi <quic_anajahi@quicinc.com>
2022-07-05 08:47:14 -07:00
qctecmdr
7b00783abe Merge "disp: msm: sde: add support for display emulation on RUMI." 2022-06-29 19:02:15 -07:00
qctecmdr
ce6075722c Merge "disp: msm: dp: get DSC enable status from mode instead of panel" 2022-06-29 19:02:15 -07:00
qctecmdr
9e12009b20 Merge "disp: msm: change log level from error to debug for smmu cb not found" 2022-06-29 19:02:15 -07:00
qctecmdr
1e237c1bf8 Merge "disp: msm: sde: avoid ctl switch allocation in RM" 2022-06-27 11:31:24 -07:00
qctecmdr
ab147526dc Merge "disp: msm: dsi: change hs timer control to fix timeout issue" 2022-06-27 06:51:28 -07:00
qctecmdr
96488f7e23 Merge "disp: msm: sde: handle vsync wait status check during timeout" 2022-06-26 21:14:57 -07:00
Sandeep Gangadharaiah
d333d97bd6 disp: msm: dp: get DSC enable status from mode instead of panel
DSC enable status is updated in DP panel struct as per the DPCD reg
read which is done at the start of the HPD ISR. However, there is a
chance that DSC is actually disabled later during mode query due to
shortage of DSC blocks. This status is stored as part of compression
info structure. This change checks for the latter struct to determine
the actual DSC status.

Change-Id: Id7cd4e65060f2ec939f945e9ac4f4e66260605d3
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
2022-06-23 13:19:07 -07:00
Jayaprakash Madisetty
e807595bec disp: msm: sde: avoid ctl switch allocation in RM
This change detects if a encoder has a CTL datapath allocated
and Resource manager is allocating a different CTL block and
avoids this switch. If the CTL datapath switch is allowed, pp_done
timeouts are seen in HW. The reason is due to crossbar is confused
due to the "XSEL" values that are present in previous CTL_*_LAYER_* are
not cleared and SW needs to issue a NULL db update to reset these
"XSEL" values when switching the CTL path.

Change-Id: Iee70c7ddb06feb5cea6dc9f147a942f80c48a7da
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2022-06-22 15:08:09 -07:00
Narendra Muppalla
8e56380537 disp: msm: change log level from error to debug for smmu cb not found
This change moves the SMMU context bank not found log from error
to debug as some of the context-banks like nrt-sec/nrt-unsec
are expected to be not available for most of the targets.

Change-Id: If60e83ae8088a484b4ea02f527ce2a8f43573e17
Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
2022-06-22 10:25:51 -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
Amine Najahi
0682377d91 disp: msm: sde: wait for active region only on DSI panel
DCS commands are not supported on DP displays, thus there is
no need to wait for active region to start before triggering
a DCS command which can cause additional latency during power
ON use case.

This change skips the active region wait for non DSI panels.

Change-Id: I50c6b808f839468bda74b13d7a75e8410d81dd0d
Signed-off-by: Amine Najahi <quic_anajahi@quicinc.com>
2022-06-21 13:46:12 -07:00
Veera Sundaram Sankaran
4672a64057 disp: msm: sde: handle vsync wait status check during timeout
When VSYNC interrupts are delayed due to irq latencies, there is a
possibility that the timeout handler checking the irq status and the
irq handler clearing the status bit happening at the same time on
different CPU cores. This is reported as an error, though there is
not actual issue. Handle this case, by adding an additional ctl-flush
register check in the vsync timeout handler. As part of the change
add error/eventlogs in commit-done wait failures.

Change-Id: Ie7e30dc4ef1e50651cee9015cd3f2caeacf47e5f
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2022-06-21 13:13:20 -07:00
qctecmdr
3f859c78b5 Merge "disp: msm: dp: add debug logs to ipc logging" 2022-06-20 23:22:02 -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
qctecmdr
f95cbe3c9d Merge "drm: msm: update lfc config for demura" 2022-06-17 12:37:50 -07:00
qctecmdr
0a3a317bf1 Merge "disp: msm: sde: avoid demura layers validation against crtc w/h" 2022-06-15 07:44:02 -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
Nisarg Bhavsar
15b7e73a10 disp: msm: dp: add debug logs to ipc logging
Add existing debug logs to ipc logging to be
accessed through debugfs.

Change-Id: Id9bfe61cb7921674eadc5635847c81a0fbdaef5c
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2022-06-14 17:09:54 -07:00
Veera Sundaram Sankaran
90dd259f15 disp: msm: sde: avoid demura layers validation against crtc w/h
When destination scaler feature is enabled along with demura,
the crtc w/h will be lesser than the deumra layer w/h as it is
based on the panel w/h. Remove the invalid validation of
demura layers against crtc w/h to allow this usecase.

Change-Id: I5afd0407382a1bce458c97fcf8d571f5e7c0774f
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2022-06-14 10:20:13 -07:00
Gopikrishnaiah Anand
eab1384866 drm: msm: update lfc config for demura
If LFC of demura is disabled, there are few parameters that needs to be
set in demura hardware block. Change ensures that the mandatory params
are set.

Change-Id: Ia2b7d80ccc60c19b7106ed417e7803a205bef6ff
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2022-06-13 10:28:21 -07:00
qctecmdr
38142ed0a7 Merge "disp: add support to compile out display kernel module" 2022-06-12 22:32:38 -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
qctecmdr
254a35a419 Merge "disp: msm: avoid crtc seamless check if active_changed is set" 2022-06-10 02:36:46 -07:00
Veera Sundaram Sankaran
11e5454e4a disp: msm: sde: add out of bounds check for dnsc_blur & wb cache
Add bound check for number of dnsc_blur blocks, while parsing from
device tree. Fix out of bound access while setting the llcc_active
during system cache disable case in writeback.

Change-Id: I7e604db5ebfaa6e8b6f066e0f6efb76e7d78e604
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
2022-06-09 11:33:03 -07:00
Prabhanjan Kandula
c51efa7c3a disp: add support to compile out display kernel module
This change provides required support to disable display module
compilation along with all modules and supports module specific
override to enable compilation if required.

Change-Id: I38acdce4083e38245eb6285c99d5dbbd15911fbb
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
2022-06-08 13:00:28 -07:00