Commit gráf

3776 Commit-ok

Szerző SHA1 Üzenet Dátum
Christopher Braga
e28ff0d8fd disp: msm: sde: Clear CRTC cached ROI on IPC
Testing of the SPR feature shows IPC restore frames where partial update
programming is not applied. This is a result of the pre-IPC cached ROI
region being used for filtering of CRTC ROI changes.

Update the CRTC cached ROI logic to clear the cached ROI on IPC events.
This ensures color processing partial update logic handles the post IPC
frame with a clean state.

Change-Id: I4e337bd150d02e4c8934ca04c0d632d5ad71dd5d
Signed-off-by: Christopher Braga <quic_cbraga@quicinc.com>
2023-11-02 14:32:34 -04:00
Mahadevan
859ee56480 disp: msm: sde: avoid double clearing of INTR registers
When there is CPU processing delay between first INTR clear and
second INTR clear there is a chance that the second register
write might clear the next frames interrupts which will avoid
triggering the irq callbacks causing software hung. This
patch avoids such a scenario by removing such double clearing
of INTR registers.

Change-Id: I8407991769c69d2d2c691763240671d5f3c0416d
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2023-11-02 23:09:22 +05:30
Akash Gajjar
fb96b867ed disp: msm: sde: add mmrm validation check
DPU driver registers core clock with MMRM driver for clock
mitigation policy. In the event that MMRM driver is not enabled
then mark dpu driver clock as non MMRM type.

Change-Id: Id4dd4a512c81ba54514171867852531f00604a66
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-11-02 19:06:07 +05:30
qctecmdr
e16b13269d Merge "disp: msm: sde: update kickoff timeout for CMD panel" 2023-11-01 23:27:17 -07:00
qctecmdr
4fc37c070b Merge "disp: msm: dsi: send panel dead for overflow/underflow interrupt" 2023-11-01 03:58:45 -07:00
qctecmdr
5994f9a99d Merge "disp: msm: dsi: Only enable lanes required during phy enable" 2023-11-01 03:58:44 -07:00
Anand Tarakh
79073c4b29 disp: msm: dsi: send panel dead for overflow/underflow interrupt
In case of underflow/overflow IRQ storm, send panel dead event from
scheduled underflow and overflow workqueue handler.

Change-Id: Ic6cd6cbae097ea970a392fa99e30b3b620633d40
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-10-31 13:07:45 +05:30
Ritesh Kumar
62ef8daba0 disp: msm: dsi: skip clearing dynamic refresh done status in dsi ctrl ISR
After triggering dynamic refresh, if there is any dsi_ctrl_isr, dynamic
refresh done status also gets cleared as part of it. Because of this,
wait4dynamic_refresh_done timeout error is seen even though dynamic
refresh is done successfully.

Change-Id: I39b42c60d15d9cb0557669f95ff2ed83989f9cd3
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2023-10-28 11:59:01 -07:00
qctecmdr
e0174ecff9 Merge "disp: msm: dp: Check link clock status before stream clock status change" 2023-10-26 22:31:10 -07:00
Mahadevan
eb84d660f1 disp: msm: sde: update kickoff timeout for CMD panel
While transition from very low fps (1Hz) to higher fps (120Hz)
there will be a delay on first frame to take effect on
mode switch. In such cases if kickoff_timeout value is programmed
based on newer high fps wr_ptr_timeout can happen. To avoid this
update the kickoff timeout with respect to lower fps and reset
it back according to present fps once the mode switch commit is
done.

Change-Id: I08e1a68bb1e388a1bda8ef61d47e9eb4b2fc97fe
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2023-10-25 12:28:42 +05:30
qctecmdr
3dcec9a91f Merge "disp: msm: sde: avoid idlepc power collapse for wfd display" 2023-10-24 21:28:48 -07:00
Nisarg Bhavsar
03f7d7f351 disp: msm: dp: Check link clock status before stream clock status change
Check that link clock is enabled before attempting to enable
stream clocks.

Avoids NOC errors when a disconnect is triggered while a modeset
operation is occurring.

Change-Id: I12d363261d4f36bf7d3149b77a917ecfa0e7b8ed
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2023-10-23 07:03:03 -07:00
Yojana Juadi
75dece4b72 disp: msm: sde: wait for autorefresh_status to be idle in prepare kickoff
If cont splash is enabled, wait for autorefresh_status to be idle for
1 vsync in prepare kickoff. This patch also prevents entering to
rsc_solver_mode if autorefresh_status is busy.

Change-Id: Id7491361dae2482905e10a5a10e590d5f5b49e6f
Signed-off-by: Yojana Juadi <quic_yjuadi@quicinc.com>
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-10-19 02:53:33 -07:00
Nisarg Bhavsar
c47f8cb036 disp: msm: dp: cache connector id before post disable
This change stores the connector id before the connector
is set to NULL in post_disable.

Allows tracing through of a single connector's disable
flow in a MST scenario.

Change-Id: Ibf4079ea75c9e0643d0d9976289ab6983509ee93
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2023-10-13 17:51:57 -07:00
Christopher Braga
36710bd6c6 disp: msm: sde: Move SPR CFG 5 programming to AHB
Partial update of SPR CFG 5 is showing intermittent odd
behavior. Move CFG 5 programming to AHB path to resolve
the issue.

Change-Id: I0719de9ea29ffe2f75c072053162133681a1b007
Signed-off-by: Christopher Braga <quic_cbraga@quicinc.com>
2023-10-13 18:26:30 -04:00
qctecmdr
7e423413ea Merge "disp: msm: sde: program read pointer after configuring vsync_counter_en" 2023-10-12 08:53:30 -07:00
Mahadevan
7a4a97d92f disp: msm: sde: avoid idlepc power collapse for wfd display
When wfd display is connected, qseed3 coefficient lut programming
is getting erased due to idle pc entry for wfd pipes. On idlepc
exit commit, plane properties are not reconfigured from userspace
since support is not present for writeback crtc. This patch
updates idle pc handling to avoid gdsc power off when writeback
crtc is connected and for CWB encoder gdsc power off will happen
on idle pc entry.

Change-Id: I7f75bf45089acaf1bd1b775351e05bcdcc89fc9e
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2023-10-11 20:15:23 +05:30
qctecmdr
34d1926522 Merge "disp: msm: dsi: Use macros in DSI_R32/DSI_W32 for registers offset" 2023-10-10 18:29:23 -07:00
qctecmdr
4eb22f31b9 Merge "disp: msm: sde: add rev checks for cliffs target" 2023-10-10 18:29:23 -07:00
qctecmdr
98e5faed01 Merge "disp: msm: sde: wait for a vsync on suspend" 2023-10-10 18:29:23 -07:00
qctecmdr
e0556e407a Merge "disp: msm: dsi: clear pll unlock error bit before unmasking" 2023-10-10 18:29:23 -07:00
Mahadevan
497405aaf1 disp: msm: sde: wait for a vsync on suspend
The current scenario is as follows commit N with autorefresh
enabled and frame starts processing. On suspend commit N+1,
during virt_disable software resets CTL path after autorefresh
config is disabled. Since in hardware frame is still processing
sw reset is causing fifo underflow. This change waits for
vsync so that current autorefresh frame transaction completes
before issuing a CTL_SW_RESET.

Change-Id: Ib0662837e54b14cea6ab835a1093a2f048c473be
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-10-09 15:14:18 +05:30
qctecmdr
e967de6220 Merge "disp: msm: sde: configure ubwc ctrl ver in hw as per devicetree" 2023-10-06 23:13:43 -07:00
qctecmdr
45b0e9129e Merge "disp: msm: sde: parse ddr string based on detected ddr type" 2023-10-06 23:13:43 -07:00
Akash Gajjar
25935c5ba5 disp: msm: sde: parse ddr string based on detected ddr type
Add property to parse and select the ddr string based
on the detected ddr type.

Change-Id: I012b10e31a21a7a1a0e279df119e9803e2d5a0ce
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-10-06 17:33:40 +05:30
Yojana Juadi
5fb041a8fe disp: msm: sde: configure ubwc ctrl ver in hw as per devicetree
This change fixes the 'commit 1aacef1e1d ("disp: msm:
sde: fix UBWC decoder version support for Kalama")'.
ubwc_ctrl must be set with global ubwc encoder version populated
from devicetree setting.

Change-Id: I85dc80e2e0436536a9b14e7e43199dc7b4421485
Signed-off-by: Yojana Juadi <quic_yjuadi@quicinc.com>
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
2023-10-04 23:20:56 -07:00
qctecmdr
123a785ddf Merge "disp: msm: sde: fix the dcwb allocation" 2023-10-04 09:00:50 -07:00
qctecmdr
a064ec3b0b Merge "disp: msm: enable display compilation for pitti target" 2023-10-04 09:00:50 -07:00
qctecmdr
51dd6ab862 Merge "disp: msm: dp: ensure failsafe mode in connector mode list" 2023-10-03 23:13:01 -07:00
qctecmdr
a0d0fe592e Merge "disp: msm: dp:Add ready state check in deinit flow" 2023-10-03 23:13:01 -07:00
qctecmdr
d085638adc Merge "disp: msm: sde: Add a separate modify block for sixzonev2" 2023-10-03 23:13:00 -07:00
Gaurav LNU
8f2ab8133f disp: msm: sde: add rev checks for cliffs target
Add required revision checks from display for cliffs target.

Change-Id: I1c75aa961aa9f328dc4b978c2b9076de928509ee
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
2023-10-03 05:50:52 -07:00
Gaurav LNU
f4c171ea46 disp: msm: sde: fix the dcwb allocation
This change retrieves the dcwb_idx from hw_pp
to get proper hw block. The 'commit 6bb958c88b
("disp: msm: sde: fix dcwb idx selection for pp_dither
and CTL blocks")' has missed updating dcwb_idx in
cwb flush helper API while porting 'commit 85c5ca9790b3
("disp: msm: sde: fix dcwb idx selection for dither
and CTL blocks")'. Underruns are seen while configuring
cwb dither in mid tier targets as dcwb pp block counter
can be different.

Change-Id: Iaabbb5b3724592998894b88f36e19c978d3f8306
Signed-off-by: Gaurav LNU <quic_glnu@quicinc.com>
2023-10-02 08:10:14 -07:00
Nisarg Bhavsar
7be22cc1e7 disp: msm: dp: ensure failsafe mode in connector mode list
The dp driver inserts a failsafe mode to be in alginment with
DP specification.

This change ensures that the added failsafe mode does not
get filtered out when a specific mode is selected via
the debugfs functions.

Change-Id: I56039527eaf77111c6a51a40d1ea143fa0693a70
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2023-09-29 19:56:59 -07:00
Ritesh Kumar
c32a84a603 disp: msm: enable display compilation for pitti target
Enable display compilation for pitti target.

Change-Id: If8cc367397055cfe06d98b141aeb3216c167188a
Signed-off-by: Ritesh Kumar <quic_riteshk@quicinc.com>
2023-09-29 14:00:46 +05:30
Soutrik Mukhopadhyay
26666bdf16 disp: msm: dp: update PHY settings
Update PHY settings for targets using pll-revision as
"4nm-v1".

Change-Id: I1242154cdb3aef5c9a84954d69e40f0520157620
Signed-off-by: Soutrik Mukhopadhyay <quic_mukhopad@quicinc.com>
2023-09-29 11:19:56 +05:30
Jayaprakash Madisetty
29852fa715 disp: msm: sde: program read pointer after configuring vsync_counter_en
Program the read pointer after configuring the tearcheck registers.
The read pointer register should be configured after VSYNC_COUNTER_EN
is set as per hw programming sequence.

Change-Id: Idc410867aa92760b43117552b00914481c0ba6d3
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
2023-09-28 15:50:30 +05:30
Srihitha Tangudu
6192a10871 disp: msm: dsi: Only enable lanes required during phy enable
Currently we are enabling all the lanes irrespective of the
lanes we are actually going to use. Add support to enable
only those lanes that are required and thus save power.

Change-Id: I9aae76eeaa05a79337d4e4b1f2e36ea9842bd580
Signed-off-by: Srihitha Tangudu <quic_tangudu@quicinc.com>
2023-09-28 11:47:25 +05:30
Nisarg Bhavsar
b97e86c661 disp: msm: dp:Add ready state check in deinit flow
Add check for READY state in dp_display_host_deinit.

Clear READY state in deinit flow to prevent state machine
errors with multiple concurrent plug/unplug events.

Change-Id: I0b17cffc7a3261ae4259225bb51452162763ae2a
Signed-off-by: Nisarg Bhavsar <quic_bhavsar@quicinc.com>
2023-09-26 15:44:13 -07:00
qctecmdr
75727e2f3a Merge "disp: msm: dsi: avoid restoring bit clk & front porches during set mode" 2023-09-26 10:16:58 -07:00
Anand Tarakh
958b7d3644 disp: msm: dsi: clear pll unlock error bit before unmasking
Since PLL UNLOCK status bit is a sticky bit, ensure this bit
is cleared before unmasking PLL UNLOCK error.
Otherwise unnecessarily DSI controller will trigger error
interrupts for the stale status, the moment error is
unmasked.

Change-Id: I7b7aa63b5e508dde446a4469d9a6625a071dae00
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-09-25 23:15:17 -07:00
Alisha Thapaliya
63723f6441 disp: msm: sde: Add a separate modify block for sixzonev2
Sixzonev2 uses a combination of broadcast enabled and disabled
cases to program luts and modify PA config registers respectively.
It also uses SB LUTDMA which requires all DSPP sub blocks to be
flushed. The modify operation can't be used with broadcast enabled and
was resetting the sub blocks to only indicate DSPP1 and causing the
DSPP_SB flush to be missed for DSPP 0. This change maintains the original
dspp indices to be used for broadcast enabled case and SB LUTDMA kickoff.

Change-Id: I1079878bbf44238419d4f88a40814e488c0800e3
Signed-off-by: Alisha Thapaliya <quic_athapali@quicinc.com>
2023-09-25 13:29:28 -07:00
qctecmdr
dd7b2f5e5a Merge "disp: msm: dsi: use ctrl cell index to set frequencies for link clks" 2023-09-25 10:05:01 -07:00
qctecmdr
abc73d74d3 Merge "disp: msm: dsi: add mutex lock before link clock frequency update" 2023-09-25 04:47:22 -07:00
Anand Tarakh
0f011042ec disp: msm: dsi: avoid restoring bit clk & front porches during set mode
Suppose there's a mode change in  Nth commit and N+1th commit mode
change request for dynamic clock came even before the Nth commit
mode is set in DSI. Now, restoring the bit clock and porches during
mode set of Nth commit will update the clock and porches according
to the new dynamic clock request which should have actually been
handled in N+1th commit mode set and this can lead to DSI underflow
/overflow.

Avoid restoring bit clock during bridge enable as it is already
taken care during bridge mode fixup.

Change-Id: Ieecb0020a77f5e082a8b9da0ecf461acdbe89e0c
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-09-25 00:06:50 -07:00
qctecmdr
27f29fb439 Merge "disp: msm: sde: swap right mixer flag" 2023-09-20 11:19:16 -07:00
qctecmdr
d0c7fa0965 Merge "disp: msm: sde: disable solver for autorefresh disable transition" 2023-09-20 11:19:16 -07:00
Anand Tarakh
cf56be0bb8 disp: msm: dsi: use ctrl cell index to set frequencies for link clks
To set frequencies for link clks, the clk manager index of
ctrl is require. Use ctrl cell index to get clk manager index.

Change-Id: I175d0721e672fb4d368349584c8b448ba63f4224
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-09-20 11:47:30 +05:30
Raviteja Tamatam
a57c71fa4e disp: msm: sde: wait for pending vsync event in encoder disable
In some corner cases there is pending vsync timestamp event to
sf when encoder is getting disabled. This is keeping vblank irq
to be enabled after sde_encoder_virt_reset leading to NULL ptr
access. In these cases, wait for vsync event to be completed which
disables the irq.

Change-Id: If0a6be1fc282906fb1b9c0fd18ede1d31d2549b3
Signed-off-by: Raviteja Tamatam <quic_travitej@quicinc.com>
Signed-off-by: Akash Gajjar <quic_agajjar@quicinc.com>
2023-09-15 12:07:07 +05:30
Anand Tarakh
307aea3dc1 disp: msm: dsi: add mutex lock before link clock frequency update
Acquire mngr clk_mutex before updating link clock frequencies.
Failing this may lead to race around condition while setting the
link clock frequency rates.
Make sure byteclk and pclk rates of PLL are configured according
to clock manager and not the controller.

Change-Id: I2cd26e659ce166d5bc55eb6c060672eeee192bea
Signed-off-by: Anand Tarakh <quic_atarakh@quicinc.com>
2023-09-14 12:25:44 +05:30