Commit Graph

20 Commits

Author SHA1 Message Date
qctecmdr
74f328561e Merge "drm/msm/dp: add extra 100ms sleep when MSTM_CTRL is not cleared" 2019-05-11 00:27:58 -07:00
qctecmdr
e8a6afa265 Merge "disp: msm: dp: add operation to free the mst port object" 2019-05-10 22:35:57 -07:00
Xiaowen Wu
162fff1195 drm/msm/dp: add extra 100ms sleep when MSTM_CTRL is not cleared
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>
2019-05-09 13:26:08 -04:00
Samantha Tran
d76c3a72ec disp: msm: dp: add operation to free the mst port object
Add a release operation to free the mst port object when
the object refcount becomes zero.

Change-Id: If628e6da7ccf90d334574ed0f627788fb0a1fa2f
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-05-08 08:47:44 -07:00
qctecmdr
e683dcbce3 Merge "disp: msm: Ensure clean slate when starting and stopping HDCP" 2019-05-06 21:06:29 -07:00
Christopher Braga
7e9b80092b disp: msm: Ensure clean slate when starting and stopping HDCP
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>
2019-05-06 14:56:26 -04:00
qctecmdr
8c8fad0d91 Merge "disp: msm: dp: Update sink sync check to be disabled by default" 2019-05-03 11:36:05 -07:00
qctecmdr
f8090586ac Merge "disp: msm: dp: Avoid double authentication if first is still in progress" 2019-05-03 09:51:06 -07:00
qctecmdr
c0035372e5 Merge "disp: msm: dp: Prevent disconnect from stopping HDCP" 2019-05-03 02:04:49 -07:00
qctecmdr
366772ec9e Merge "disp: msm: dp: fix potential delay to start authentication" 2019-04-29 12:47:57 -07:00
qctecmdr
ea09882191 Merge "disp: msm: hdcp: force encryption for HDCP 1.3 compliance" 2019-04-29 12:20:16 -07:00
Tatenda Chipeperekwa
d113b3292e disp: msm: dp: fix potential delay to start authentication
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>
2019-04-25 19:43:31 -07:00
Tatenda Chipeperekwa
bd8fff4f9f disp: msm: hdcp: force encryption for HDCP 1.3 compliance
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>
2019-04-25 19:43:31 -07:00
Christopher Braga
78439dfaf7 disp: msm: dp: Update sink sync check to be disabled by default
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>
2019-04-24 17:42:15 -04:00
Christopher Braga
c24090b2c5 disp: msm: dp: Avoid double authentication if first is still in progress
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>
2019-04-24 17:42:14 -04:00
Christopher Braga
9b4453096a disp: msm: dp: Prevent disconnect from stopping HDCP
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>
2019-04-24 17:42:13 -04:00
Christopher Braga
c828b764c8 disp: msm: dp: Avoid HDCP cleanup during system suspend
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>
2019-04-24 17:42:09 -04:00
Christopher Braga
83af37f1e5 disp: msm: make the HDCP protocol module asynchronous
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>
2019-04-24 17:42:07 -04:00
Dhaval Patel
a74d2cf7fa disp: msm: add runtime_pm ops support in drm driver
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>
2019-04-24 13:27:48 -07:00
Narendra Muppalla
3709853456 Display drivers kernel project initial snapshot
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>
2019-04-14 22:20:59 -07:00