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>
Check if cur_master encoder exists before using the variable in
sde encoder. This will avoid possible NULL dereferences.
Change-Id: I003386cba392a0027f7e9e8441fd4671b57b9a03
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
When continuous splash is enabled, connector states
are not properly updated with the encoder associated
with it. This is by design, so avoid all making
such request there by avoiding unnecessary errors
during the bootup. Fix a handful of warnings in
the PLL definition files
Change-Id: I7f08c5ff80ea2a2bfb4b19f2ea13c8f9cbb833e8
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
This change brings msm display driver including sde,
dp, dsi, rotator, dsi pll and dp pll from base 4.19 kernel
project. It is first source code snapshot from base kernel project.
Change-Id: Iec864c064ce5ea04e170f24414c728684002f284
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
This change adds dummy Makefile support to compile
display driver project along with base kernel.
Change-Id: I4fe15e2b358227911d3826e914ccb5eb45bb3d0d
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>