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>
This commit is contained in:
Christopher Braga
2019-04-22 14:33:25 -04:00
parent 9b09b9af71
commit 83af37f1e5
4 changed files with 161 additions and 149 deletions

View File

@@ -51,6 +51,7 @@ struct sde_hdcp_stream {
u8 stream_id;
u8 virtual_channel;
u32 stream_handle;
bool active;
};
struct sde_hdcp_init_data {