In an effort to reset the DP controller states on a disconnect, the
driver is issuing a SW reset to the controller. But SW reset on
the controller doesn't necessarily restore the controller to its
full reset state. It only resets part of the logic. So if for some
reason the MST streams were not disabled properly, ie. the slot
allocations were not reset properly in the controller, then a SW
reset would result in the DP controller raising state interrupts.
Since this SW reset is issued in the tail end of the disconnect
processing, the driver turns off all the clocks and also
removes the irq handler. This results in an interrupt storm at
the MDSS top level.
This change removes the SW reset on the disconnect path and
relies on the SW reset that already exists in the connect path
to restore controller state.
Change-Id: Ie7115e17d3c50c46c83c6f0e333da5cb534b8227
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
MST driver is incorrectly using maximum bw_code while initializing
MST topology manager instead of maximum link clock in KHz. This
prevents the topology manager to set MST state on a subsequent MST
plug in causing all MST cases to fail.
Change-Id: I9fc4e0326fe0c7a6c9b81af8810b7098fa8ba967
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
During link training, after the swing/preemphasis is updated, the driver
is supposed to poll the link status on the sink and quit once the
LINK_STATUS_UPDATED bit is set and also latch the next set of
swing/preemphasis requested by the sink. But currently, the driver is
exiting the loop only when the LINK_STATUS_UPDATED bit is cleared. So,
it also latches the swing/emphasis request from the second read.
Typically, the SW read is slow enough that the bit is set on the first
read. The driver then reads the second time and exits the loop, since
the bit would be cleared then. In most cases, this doesn't affect
the training sequence, since the swing/preemphasis request for next
attempt is retained on the second read. But, atleast in one
specific case, it was observed that the swing/emphasis request
gets reset along with LINK_STATUS_UPDATED and so the driver ends
up missing the actual request and latches incorrect values instead.
This causes link training to fail as it keep retrying with the
same values that it starts with.
This change fixes the exit condition check so the driver quits the loop
as soon as the LINK_STATUS_UPDATED bit is set.
Change-Id: I7f5d9c6b30d48e113aef628d2ab2c1bd972fe743
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
Decouple the configuration and parsing of aux switches with the
parsing and configuration of HPD sources. HPD notification can come from
either GPIO based approach or a PD module through a SW interface. The
presence of AUX switch on the board should have no bearing in deciding
which configuration for HPD detection is used. Update the implementation
to allow for flexibility in selecting any combination of the HPD source
and aux switches.
Change-Id: I96d558f1d88a359d523fae6dc746045393884d5a
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
DP PHY version is changed for kalama. This change
initializes the catalog structure for this new
version.
Change-Id: Ib89293cb874c61c6276f49573266822570e715bb
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
Certain pll variables and function signatures are
obsolete and hence removing the header file
declaration containing these.
Change-Id: I93d4ff096ff253f21d67660287d6d3baa857cca1
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
This change adds Detail Enhancer LPF blend support from MDSS 9.0.
Support is added for qseed block in both SSPP and Destination Scaler.
Change-Id: Ic8e3732059498a156f51fb93c5fd6638bd731c57
Signed-off-by: Narendra Muppalla <quic_nmuppall@quicinc.com>
Create a common config function to be used by newer
versions of sixzone to avoid code repetitions.
Change-Id: I570cc625715880c325d257e2594d8a7688a040bc
Signed-off-by: Alisha Thapaliya <quic_athapali@quicinc.com>
In Kalama for sixzone there are 2 new lut entries for saturation
high and saturation medium. There is also a new saturation
adjustment curve, and a SV enable feature.
Add entries in uapi to accomodate the corresponding programming
for these 4 new registers.
Change-Id: Ib9a8a4e233da25de90480c09c40536546f614a01
Signed-off-by: Alisha Thapaliya <quic_athapali@quicinc.com>
Update LTM merge mode setting for kailua since
merge control has its own register.
Change-Id: Ieaacd1e12f410def18a0fce11a77c94832c416f5
Signed-off-by: Renchao Liu <quic_rencliu@quicinc.com>
Some of the DPU hardware can have LTM2/LTM3 blocks.
Change adds register DMA to support LTM2/3 blocks.
Change-Id: I5703872994156b42decaaf6d383f8aded218c117
Signed-off by: Alisha Thapaliya <quic_athapali@quicinc.com>
Signed-off-by: Renchao Liu <quic_rencliu@quicinc.com>
Use #if IS_ENABLED() instead of #ifdef for configurations as vendor module
guidelines.
Use #if IS_ENABLED(CONFIG_XXX) instead of #ifdef CONFIG_XXX to ensure that
the code inside the #if block continues to compile if the config changes
to a tristate config in the future.
The differences are as follows:
1.#if IS_ENABLED(CONFIG_XXX) evaluates to true when CONFIG_XXX is set to
module (=m) or built-in (=y).
2.#ifdef CONFIG_XXX evaluates to true when CONFIG_XXX is set to
built-in(=y) , but doesn't when CONFIG_XXX is set to module(=m).
Use this only when you're certain you want to do the same thing
when the config is set to module or is disabled.
Change-Id: Ia806b9b01ad8414d0e4de027a382cb68e7fb4a6a
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
Parametrize RC minimum region width restriction as it
differs starting from Kailua.
Change-Id: I41e7cd6812ed2fadb5719ee51f4db0723be632fe
Signed-off-by: Amine Najahi <quic_anajahi@quicinc.com>
Signed-off-by: Renchao Liu <quic_rencliu@quicinc.com>
1.add worst case time to execute one tcs vote for new rsc version 5.
2.define V3 duration as 930us for code readability.
3.add explicitly "ns" unit for "single_tcs_execution".
Change-Id: Ib62fe6217cf4f97a9c45f003b98b1bdf55354e27
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
As google's vendor module guideline, don't use MODULE_SOFTDEP to order
device probes.
So avoid using the MODULE_SOFTDEP macro in display module.
Change-Id: Ife29b6185c3bcb001a581753d2a8d2aba5214f8a
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
Add devcoredump support for sde_dbg. Devcoredump is a mechanism
providing generalized way to get data from kernel modules. This change
integrates devcoredump into sde_dbg to get evtlog, register dump and
dbg_bus when display failure happens.
Change-Id: I4daf25443ccd2646de580314a0bfe08b84dbc282
Signed-off-by: Bruce Hoo <quic_bingchua@quicinc.com>
msm/sde/sde_encoder.c
_sde_encoder_update_rsc_client()
sde_encoder_prepare_for_kickoff()
msm/dsi/dsi_drm.c
dsi_bridge_mode_fixup()
Lower the cyclomatic complexity for this function by splitting
the work into helper functions.
Change-Id: I2285809a33078e29989a6b44800c18342aa24170
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
Add below debugfs node under */debug/core_perf for micro-idle FAL1 and
FAL10 configuration, uidle_fal10_target_idle_time_us.
1.uidle_fal10_target_idle_time_us
2.uidle_fal1_target_idle_time_us
3.uidle_fal10_threshold_us
4.uidle_fal1_max_threshold
Usage:
Cat and echo are both available.
echo [value in micro seconds] >
/sys/kernel/debug/dri/0/debug/core_perf/uidle_fal10_threshold_us
The new value will take effect after any update on plane.
Change-Id: I48896f59a8c0dc22624394ae197a49e3492953da
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>