The issue scenario is as follows
1. A CWB commit has run and it has disabled. Composer kill is
done.
2. If Composer starts again or another client has open DRM
the previous cwb state is intact.
3. When userspace is trying to query wb modes, primary modes
which are attached to wb as part of cwb commit is exposed.
This leads to commit failures if userspace is trying to trigger wb
on the same CRTC of what primary has run cwb before. This change
properly clears wb mode and the cached encoder mask to avoid commit
failures.
Change-Id: I4ca8bd2b52a980630b7fb1319bf67b718ebb2ac2
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
In the current SW design for a CWB commit the need for 3D-Merge
and number of CWB mux which needed to tap the LMs are decided
based on number of mixers on crtc. When there is a partial update
commit in single LM these 3D-Merge and CWB mux active are used
leading to WB commit failures. This change properly check whether
3D-Merge is needed in CWB path based on number of LMs in a partial
update commit.
Change-Id: I2c838a24ad3a259923f6b26934e681cb9a5829b6
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
Add support to display-drivers modules using DDK
framework for blair.
Change-Id: I6110b4144e263054ed956497dbe956f5743315c7
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
During suspend commit, crtc_commit thread is blocked waiting
for touch response in drm_panel_notifier_call_chain and
rsvp_nxt pointer clear in drm_atomic_state_put is pending
(>100ms wait) which was allocated in atomic_check. When
resume commit is triggered early, RM poll timeouts are seen
due to rsvp_nxt pointer is not cleared and thus causing
power on commit failures. This change avoids RM reserve
during atomic_check of suspend commit as msm_crtc_set_mode
returns early and rsvp_nxt is not used elsewhere in commit path.
Change-Id: I6d76ec7cc07f6961b909febd3d9d932b46052c17
Signed-off-by: Akhil Jaiswal <quic_akhijais@quicinc.com>
Add changes to skip RM allocation during atomic_check for dsi connectors
which can have a seamless transition during CWB usecase. When CWB gets
enabled in alternate commits N, N+2 on dsi connectors there is back to
back connectors_changed modeset and poll gets enabled for the
consecutive commit N+1, N+3 on rsvp_nxt to get cleared. This rsvp_nxt
will be cleared on drm_atomic_state_put of commit N, N+2, hence
atomic_check of commit N+1,N+3 is blocked until this time causing commit
failures.
Change-Id: I320969862b8838a70a8cd3909d244c23871eb430
Signed-off-by: Charishma Jerripothula <quic_cjerripo@quicinc.com>
This change adds support to validate plane formats in
atomic check phase. Also, the current check is not
sufficient to distinguish between some formats like
TP10_UBWC and P010_UBWC which can result in scenarios
where unsupported formats are also detected as
supported formats. Additional checks are introduced
to make sure that this is handled properly.
Change-Id: I41ea8dc95dba93479e24a68aab0dba0a253c3eec
Signed-off-by: Charishma Jerripothula <quic_cjerripo@quicinc.com>
synchronize scatter/gather mapping for CPU and device
for CACHED msm_objs.
Change-Id: I127e4e17d57246d1bd45a843e9c140877fe59f8d
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
This change fixes the double freeing of physical
encoder ptr which contains the same memory address
in case of video or command mode usecase.
Change-Id: Ic5704201785494d36142ec3065575f527e96475c
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
This change fix typecast error seen during
version comparison.
Change-Id: I7c3f98d45742ab4b0f5c13bd00b174507205464a
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
This change includes hw revision check and adds
supported color format for decoder and encoder
of offline rotator.
Change-Id: Ibc9271a8f56221b22ad040183f5311bfd0d2febe
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change removes tx_wait during DMS for targets which have
dsc_hw_rev_2. For targets with dsc_hw_rev_1, during DMS the
tx_wait is needed since DSC registers are not double buffered
and frame trigger needs to be serialized to avoid pp_timeout
issues.
Change-Id: Icf3c0e0ed0cf9369db634419cfb28fcccbe88b8b
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
This change removes msm_rtb.h which is depricated as part of
kernel 6.1 and replaces writel_relaxed_no_log/read_relaxes_no_log
with writel_relaxed/readl_relaxed apis.
Change-Id: Ie0bbb2e186445e16c52be12255c4ffe39869d454
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change updates the parameters needed for vb2 get_userptr
api in kernel 6.1.
Change-Id: I43fb78c701f182e57d3f016ff54d3601f0773fff
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change adds the latest header where the linux kernel
version macros are defined in kernel 6.1.
Change-Id: Ie42e0c6af08bad6418e56d00ef9f65a8edb9a51d
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
The return type of debugfs_create_bool is changed
to void in 6.1 kernel. Add changes to handle
this accordingly.
Change-Id: I1a5413d5f769bc6102918052aa9cdce606185196
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change corrects the logic of accumulated size
of mapped entries of sg table for DMA BUFFER.
Change-Id: I2baef8d438cab8314c5526aac2ea8a3227176888
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change adds support to use dma_buf_vunmap
instead of dma_buf_kunmap as the latter is
deprecated.
Change-Id: I665c410b1f75854a8840e1da8a21ba2b5cc65ad8
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
In the current implementation, the length of
certain dt entries like qos can take upto 36
entries for each fps value. This change
increases the size of MAX_SDE_HW_BLK to
handle such cases to support qos parsing
for targets which have multiple fps support.
Change-Id: Ie125191f731730f1a5e371930b4c15767ca5ac27
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
The return type of debugfs_create_u64 is changed
to void in 5.10 kernel. Add changes to handle
this accordingly.
Change-Id: I326ae223bb4d1377d0c1c9ec7f64a5064888133c
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
VFL_TYPE_GRABBER is renamed with VFL_TYPE_VIDEO
in v4l2 driver code. Add required changes to
handle this in rotator driver.
Change-Id: Ia4165295003867f661324bbf8a471fa1f27ddf72
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Set the rotator threads priority (commit and
done) to RT.
Change-Id: Ia2db4a86efe1d3ca990cade8424a5c72b3d4595b
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Map and unmap calls are removed from dma_buf_ops.
Add support to remove the deprecated callbacks
from rotator driver.
Change-Id: I93dff0629d1393983807e015dbd06293940dceb3
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
This change updates the color format names and adds
the correct header file for rotator.
Change-Id: I198df87bc4f93a9b390beeba01c29c0c4fb641cc
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
This change fixes the 'commit 74796543cf ("disp: msm:
sde: reset cwb encoder after commit done complete")'.
cwb encoder must be reset only for the corresponding
attached crtc.
Change-Id: Id1fa7f2c404065d5dafa12daf3760eaeccd82afa
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
Add support to update display brightness through drm property.
Change-Id: I1954e040060a00014aae2486700dbf270147c6b0
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
This change fixes an issue, where in CTL_2 was programmed for
secondary display and handoff was not done as the list traversal
logic was restricting it.
Change-Id: Icd945cfb3401ecc9c9c33059f5208a87979ada77
Signed-off-by: Yojana <quic_yjuadi@quicinc.com>
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
Change log level for unavailable slave pll from warn to debug
to avoid redundant logs as parrot supports only one DSI.
Change-Id: I200a2f382a1dca7035e4960d3bb0c877867f8ba8
Signed-off-by: Kashish Jain <quic_kashjain@quicinc.com>
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
The issue scenario is as follows:
1. User space issues CWB commit N-1, frame got picked up and wr_ptr_irq
is received.
2. Next commit N CWB disable commit is programmed waits for N-1 wb_done
irq.
3. The kickoff count is decremented on wb_done_irq of commit N-1
and wb wait_for_idle is exited.
4. wb_frame_done irq thread execution stalled before populating fences
and commit thread execution continues.
5. wb_reset disables in_clone_mode flag, the stalled wb_done_irq thread
resumes its execution and signals the release fences on primary crtc.
6. Commit N-1 frame_done irq is received and release fences is
signaled again.
Made changes to avoid the race between irq thread and commit thread
over in_clone_mode flag, by adding a lock over wb physical encoder.
Change-Id: Iba9b6613c49d413239c9603228fe16b0d64c0ab6
Signed-off-by: Andhavarapu Karthik <quic_kartkart@quicinc.com>
When poms supported panel is booting up with video mode
rsc timers are not configured. Made changes to update rsc
timers configuration during bootup with video mode as well,
to avoid rsc stuck issues during poms switch.
Change-Id: I8c03b3e5483c17f73e3d8c6b57bd8d3eabb33b10
Signed-off-by: Andhavarapu Karthik <quic_kartkart@quicinc.com>
In the case of DMS the dsi phy timings get updated in
dsi_display_set_mode() and the clock in pre_kickoff().
This brings a mismatch between phy timing and the clock between the
above two operations. For example, during dsi_display_enable(),
the HW is programmed with the new phy timings but the clock is still
running at the older rate. This mismatch can lead to screen flicker
or error.
Update the phy timings and clocks together during pre_kickoff().
Change-Id: I30198e91aba5879b1773103c088d94175639790c
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
This change fixes state machine transition during TUI process
kill to disable crtc and release vm resources cleanly.
Change-Id: If92c548bea5a3ed69721a9ecc28848910b44558d
Signed-off-by: Shamika Joshi <quic_shamjosh@quicinc.com>