Add more state and event based logging in order to enhance
state transition and use case based debugging in the driver.
Change-Id: I00dee6fcff832c104d3f8b651635a41d9cfc6921
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Refactor the mode validation and HDCP worker functions in order
to reduce code complexity and improve readability.
Change-Id: I6b33599d66b73d16a6cb9cc120605a032dada996
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Use the new altmode framework to receive the connect, disconnect
and attention events.
Change-Id: Ic542525b526e1abd0f153c293bca6e4cdbb6bf0b
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add support for PLL programming in the DisplayPort driver.
Change-Id: I4f08a621dcae5d1f54d67bb5c34409249012cc7b
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add a compile time flag for the MST feature that will allow
selectively enabling the feature.
Change-Id: I8bf288277c7af00c3cf254a8c757151559e0a010
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Update colorimetry definition usage and how we access DSC information
as per changes in the upstream DRM framework code.
Change-Id: I28482380124734680e46904b8d536ebadba8cc60
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This reverts commit eaed3221fa
which uses a downstream implementation for checksum calculation.
This will be fixed once the upstream changes to address checksum
calculation are merged.
Change-Id: I7a6ed1c4d4baf52533485d59bcdcb6dd1009d626
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Update the HBR and RBR swing and pre-emphasis levels as per the
latest published hardware programming guide.
Change-Id: If3b6713e0b6680f65539882221aae32b00bf0254
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Move away from using the supported colorspaces in drm_connector
and replace it with sde_connector to satisfy GKI requirement.
Change-Id: I947c91ea6672e242e572151f72cf0db2e71990cb
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Since the HDR static metadata block parsing has been moved to
the sde edid parser, replace the usage of drm_connector with
sde_connector for hdr10 so that the modifications to drm_connector
can be removed.
Change-Id: I4526cda426c46708d3689eb8b993b7a4f50d32ae
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Since the VSVDB parsing has been moved to the sde edid parser, replace
the usage of drm_connector with sde_connector for hdr10+ so that the
modifications to drm_connector can be removed.
Change-Id: I7d69aa533e71fa45bfc578db24c17bb23e499c4a
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Fix an invalid pointer check on input parameters.
Change-Id: I899e19e578d4d337e49da9084875bfd1917efe59
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Update the definition of the atomic_check function for
DisplayPort connectors to align with the DRM upstream changes.
Change-Id: Id942c8ef16ae773540c4bc7221e0b784354a527c
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Update sde_drm.h header to use the display techpack path for
kernel-5.4.
Change-Id: I2b7dcbbde8128eece7a2a8a652f9f7c427b38110
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Fix and decouple widebus-enable flag from dsc_en for dp.
Change-Id: I2d31bc367f007d4c918babc1c051492544bbb05c
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Update the mode validation logic by halving the mode clock
when widebus is enabled.
Change-Id: I8f060d8b60403aa5020496983bec0b3e2878b08b
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
When DP is working in MST mode, reading native EDID from MST
branch is not a valid operation.
Change-Id: I297d2b25b2c3166d68ef3eba941ca787d8bce8d3
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
As overall display driver is moving away from hard-coded compression
ratios, prepare the DP driver for the same by removing the usage of
the compression ratio enum.
Change-Id: I298db7d20baed8afec9f96dff8c7e950702bfec9
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
This change enforces dp, dsi and the sde drivers to use the
drm framework defined dsc_config data structure. As a part of this,
it introduces the sde_dsc_helper API to configure the dsc params
and creating a PPS command. Earlier each driver implemented it's
private versions leading to duplication of code. Additionaly the
helper api supports DSC spec 1.2 422 and 420 mode.
Change-Id: I25933fab08cdabbc6787079926885d1a78945e97
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
This snapshot change adds downstream support
for drm 5.x+(msm_lahaina branch) linux kernel.
Change-Id: Ia691c95da155a00e449c91a2f1a5b20a8e71aed4
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
When doing multiple immediate plug-unplug, the DP display
driver is waiting for a link training to exhaust the retry
count before processing the disconnect request while flushing
the connect_work. The driver should stop link training and
exit if the link is disconnected. This change will use the
ctrl_aborted flag to early return from link training and
perform the host init/deinit and host ready/unready in pairs
while handling connect/disconnect to reset the abort flags
for the next connect.
Change-Id: If321136ecf12ab2f67d13ef841f1590142aad406
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
Skip the wait in the disable path if the audio engine has already
been disabled or was not previously enabled. This avoids an
unnecessary wait since the audio subsystem will only acknowledge
the notification and not request a tear down if no audio playback
was started by the user.
CRs-Fixed: 2550150
Change-Id: I7b47345430f3d9c63b80b0aa92cdc4dd77152da9
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Some Type-C multi-port adapters which do not support usb connection
are advertising the multi-functionality in DP alt mode. If
multi-functionality is preferred, the DP driver assumes the adapter
supports usb connection and USB phy driver will program the PHY mode
to DP+USB.
In source mode, usb PD driver checks for the peer_usb_connection
of the adapter. If it does not support usb then it will stop usb stack
and update the PHY MODE to USB only mode from phy_suspend path.
The result is, usb may program the combo PHY to usb only mode when DP
is already connected. This is causing AUX read/write timeouts when DP
is trying to access the phy registers.
To fix this issue, a flag in SVID connect handler in usbpd driver to
notify peer_usb_comm support to the DP driver. DP driver will read this
flag and program the phy mode.
Change-Id: I0164b239bf2832d480795d90f5e9fc221bcc12ba
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
FEC and DSC are only supported in DP 1.4 onwards.
Read FEC and DSC capabilities only if this
requirement is met. This will ensure backwards
compatibility with older DP devices.
CRs-Fixed: 2541795
Change-Id: I65a6cb903f332e896946dc3b9da4d95a14fac939
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
The sink may have limited DSC decoding support
for some BPC values. Ensure that the BPC that is
selected is within the sink's DSC capabilities.
CRs-Fixed: 2527660
Change-Id: I0692e7b606e258c3cab3de25d3b03178f4aa0294
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
Update the topology allocation by considering the required
mode clock (vtotal x htotal x fps * fudge factor). Modes with
a clock that exceeds the maximum SDE clock will be denoted as
requiring a topology that uses two layer mixers.
Change-Id: I3c773598b0d79cb6fea9d3a0e04d89ff84d67e13
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This change corrects the definitions of functions
invoked when their config keys are not enabled.
Change-Id: Iba4631b8019a5e5a6b95516c5c9f9e28942e60c9
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
Ensure that the driver is handling DSC and FEC
enablement properly. FEC can now be independently
enabled without DSC. FEC configuration is also
now performed after link training in order to
avoid link training failures as per the DP spec.
Consequently, DSC can now be left on during
compliance testing. For DSC use-cases, ensure
that the minimum supported bpp is set to 24, as
required by the DSC spec.
CRs-Fixed: 2517994
Change-Id: I40339585da5b4e51251a3be7119b6959954954d7
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
The mst topology manager set may fail for various
reasons. Ensure that the return codes are checked
and stop execution when failure cases are
detected.
CRs-Fixed: 2520932
Change-Id: I95c4caf403d0960525d931bf67560e800a3691ae
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
For crtcs attached to mst connectors, vcpi slots
are being allocated whether or not that crtc is
currently active. This will cause leaks during
lastclose when the crtc is inactive, because the
slots will get allocated, but never freed.
Check if the crtc state is active before
proceeding to allocate vcpi slots for that mst
connector.
CRs-Fixed: 2520907
Change-Id: I359738868e9bc72163f9e33204ff6cd7f0143b09
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
Fix a typo where the correct pointer was not
being checked for NULL.
CRs-Fixed: 2511681
Change-Id: I1dde2914a7fca1f585fc7f51d8a8579fd9db2558
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
DP MST userspace connect and disconnect notifications
are sent from dp_mst_drm. When a MST disconnect event
is notified from dp_mst_drm, the dp_display skips
sending the disconnect event and proceeds to process
the host unready. This is causing graceful dp display
disable to fail and affect the next dp display enable.
DP driver should ideally wait for the graceful disable
of DP display and then proceed. In this change, the DP
driver will wait for the display disable, if enabled,
before proceeding with host_unready.
Change-Id: Ief6857a9d59bf3995543792c8022245ddeac9ae6
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
Return immediately after releasing the lock if the connect event
has already been processed.
Change-Id: I80552b4c569d436ec85a945f4ddc3d389e3af43f
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
The DP link layer CTS tests issue continuous DP plug/unplug.
When that happens, sometimes the DP sw state machine is going
into a bad state causing DP blankout. This is happening when
the post_enable call fails and the hpd handling logic in the DP
driver skips sending the disconnect and next subsequent connect
notifications. This change will fix the conditions to correctly
notify the userspace about the DP connection status.
Change-Id: I41310c8c465901eb5e5bd8fdec2038fe3c01e50a
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
Remove session lock for power state update to improve functionality
for fast hotplug use cases. This allows the controller and aux modules
to be updated asynchronously based on hotplug state. For example,
in disconnected state all aux transactions will be aborted.
Updates to the power state can be done without the session lock
since this path is only exercised during compliance testing.
Change-Id: Ibe175624ef56d9f7b953b9b54928682f1cac906a
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>