Add extra sleep between SST and MST mode if MSTM_CTRL is not cleared
at hpd to make sure dongle exit from previous MST state.
CRs-Fixed: 2411911
Change-Id: I5b1785c71a91df95167bf5083e9d752a275872a8
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
DSI display may support video mode and command mode both and it may
support transition between these two modes.
This change adds seamless transition between these two modes for DSI
display by avoiding crtc enable/disable and panel power on/off
during modeset.
Change-Id: Id7ddaef7d1f0f7cc7d52283755bad53a246adec6
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
The DP HDCP layer fails to wait on and clear its internal thread
upon an HDCP stop or failure. This can result in use after free
failures if a read or write over aux channel operation is already
queued.
Update the DP HDCP layer to stop and wait on kthread completion
upon HDCP failures, and clear the kthread command queue before
resuming kthread execution. Additionally, ensure the SDE HDCP
worker thread correctly starts and stops execution upon HDCP
enablement and disablement respectively.
Change-Id: I4218d7935f89416b5e5d74afd8f5d22e031b9a38
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Fix few DSC parameters related to 10 bits-per-component
10 bits-per-pixel configuration according to HW programming
guide.
Change-Id: I3ceb1eb9b1247440ef68800e9b62e9ffb7ec5b57
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
The divider clocks in the DSI PLL are 1-based and can accept
a value of 0. Set the flags accordingly in the PLL driver.
CRs-Fixed: 2433864
Change-Id: I82361ae3e2119f9e1922153bd5aba6354e8c5442
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
The received message logic in the SDE HDCP layer reads the HDCP QSEECOM
response content regardless of the declared response length. Update
this logic to only use the response content if the response length
is non zero.
Change-Id: Ie39923302a5478e0dd39dd5ceaade70b2e4125a3
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Replace all kernel make export <all variables> instances with
export of specific variables. Depending on existing build
environment, exporting all as environment variables and
interaction with existing environment variable expansions
can lead to undefined behavior.
Change-Id: Ia46600be605828f9e509d5ced5d3ad3f8c6cb140
Signed-off-by: David Ng <dave@codeaurora.org>
On the first commit, cont splash flag is still enabled on
encoder, but connector is not yet attached. When a check-only
rm reservation is made, it does not get released due to
cont-splash check. If cont-splash is enabled, rm should
not check for connector, but directly release rsvp_nxt.
Change-Id: I79be3c1bb20b74ce4a95786c90f3accfb587d7f2
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
Userspace is not supposed to request vblank until crtc is enabled,
because drm framework rejects the request if crtc is not enabled.
Any vblank request prior to that need to be cached in the userspace.
Hence removing the cache logic from the downstream driver.
Change-Id: I5383e39075377e3e49b8d335598ddfa48ab54666
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Current sde driver allows vblank enable and wait requests
even after crtc is disabled which would eventually lead to
enable of irq and timeouts in caller context. This change fixes
it by updating vblank callback status as 'on' during crtc enable
and shutdowns vblank callbacks before crtc disable is complete.
Change-Id: I9085103ced06e5fad51219f26bd8dd655fa36fea
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Start authentication as soon as the stream is successfully powered
on and before the audio notification is sent. This will avoid a
potential delay in starting authentication if the audio subsystem
does not respond to the audio notification.
Change-Id: I83e5746ff521cfe8641f6e2bffd1bed953329a69
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Force encryption for HDCP 1.3 compliance or HDMI use cases only
since DisplayPort supports dynamic encryption enable.
Change-Id: Ice0f462188e4cc96597a4779a6daca7877e36b6c
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This change fixes the destination scaler atomic check
to support PU with CWB disable without an additional
frame in between. It also fixes the destination height
calculation.
Change-Id: I93ae8471d2db0b4e2574d18a873d4d4e180cbcbb
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
The DP standard leaves ambiguity to if sink synchronization
will be set before auxiliary protocols such as HDCP are to begin.
Update the dp_display HDCP worker to check sink sync only if
explicitly instructed to via the new debugfs node 'hdcp_wait_sink_sync'
Change-Id: I4f4d0b14096aa3dc498e47de557de14092d37a58
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
In scenarios where two streams become active in a short time period, HDCP
authentication may incorrectly be kicked off twice. This occurs due to the
HDCP state machine not indicating when authentication is already in
progress.
Update the dp_dispay HDCP state machine to only transfer to the
authenticating state once authentication has begun.
Change-Id: I38211203afe5127b80353c02072032a56e518900
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
If a DP stream is disconnected when HDCP is not fully authenticated,
authentication may not continue for remaining streams. This occurs
due to the worker thread rescheduling itself on auth fail while
disconnect cancels any pending work.
Update disconnect logic to wait for HDCP authentication to complete
before stream de-registration, and reschedule the HDCP worker if HDCP
did not fully authenticate prior to disconnect.
Change-Id: I0f8934e4f34e4f5a8015587e852131795a3dad21
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
If stream registration is invoked while HDCP is still authenticating,
the new stream information may not get sent to the downstream repeater.
Check if stream management is already in progress during stream
registration, and queue another round of stream management if so.
Change-Id: I497e9a4da310870fe792293033f1fb0ce8fbee4c
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
When HDCP stream management needs to be re-performed, the SDE_HDCP state
machine breaks down and reads or writes to the wrong DPCD HDCP offsets.
This results in an authentication failure, effectively allowing stream
management to succeed only on the first attempt.
Update the SDE_HDCP stream management logic to properly take its current
state into account in re-management scenarios. This will reduce the need
for full re-authentications upon content type updates.
Change-Id: Iebefbb060e49a7082b2d4c9efbed22a83a2a5ec5
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Calls to QSEECOM are disallowed when the system is heading
into a suspend to RAM state. Delay all HDCP cleanup until
after resume to ensure HDCP is properly handled.
Change-Id: I7ebf567e50c28d39fc3c99dcb5d571a5d1e8dd93
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Commands to the HDCP protocol layer can fail or block if
executed when the system enters suspend or shutdown.
Protocol layer blockage will occur until the system returns
into a power on state, potentially resulting in deadlocks for
clients who synchronously wait on protocol layer completion.
Asynchronously handle all requests to the protocol module to
ensure that clients can make progress regardless of the state of
the underlying HDCP handler. When an already queued request is
received by the protocol module, that request will be rescheduled
to the back of the queue.
Change-Id: I658dd09a81f21037cd90bbaa5b7d73363472e0b0
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Add runtime_pm ops support in drm driver instead
of direct sde_power_resource_enable/disable call.
It allows drm driver to use runtime pm refcount logic
to track the resources instead of custom implementation.
The change also removes the NRT_CLIENT support from
sde_power_handle code to simplify it further.
Change-Id: Ib14692dca5876703d0a230da2512d731b69b8ebb
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Get controller scheduler status at each vsync to verify
pending frame status.
Change-Id: I01401a57b68828294299977a7be7e796d07c7472
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
By enabling the sspp feature map configuration for qseed3lite,
the existing support for lutdma is used for register writes.
This will reduce the costly AHB based register write.
Change-Id: I49ba374c7317283f867bb737dc7415ea39f17b91
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
Set the SMMU context-bank domain_attached flag and
the secure flag appropriately during MDP SMMU
context-bank probe as the mapping/attach is handled
by the SMMU driver during bootup.
Change-Id: I83c7a911d7e0d4986df7cc3e8975b6eb2720cec1
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Update the bootloader set core-clk rate to the SDE software
structure when continuous splash is enabled. This will
make sure SDE handles the shift in core-clk rate correctly
when user-mode votes for a different rate with the first
frame.
Change-Id: Ib8e11332578ad154b14793d8ddcfec488be63aef
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>