Commit 5f773e55 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie

drm/amdgpu/display: use msleep rather than udelay for HDCP

ARM has a 2000us limit for udelay.  Switch to msleep.  This code
executes in a worker thread so shouldn't be an atomic context.
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191217204707.2258744-2-alexander.deucher@amd.com
parent 4e328922
...@@ -153,7 +153,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp) ...@@ -153,7 +153,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp)
{ {
enum mod_hdcp_status status; enum mod_hdcp_status status;
uint8_t size; uint8_t size;
uint16_t max_wait = 20000; // units of us uint16_t max_wait = 20; // units of ms
uint16_t num_polls = 5; uint16_t num_polls = 5;
uint16_t wait_time = max_wait / num_polls; uint16_t wait_time = max_wait / num_polls;
...@@ -161,7 +161,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp) ...@@ -161,7 +161,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp)
status = MOD_HDCP_STATUS_INVALID_OPERATION; status = MOD_HDCP_STATUS_INVALID_OPERATION;
else else
for (; num_polls; num_polls--) { for (; num_polls; num_polls--) {
udelay(wait_time); msleep(wait_time);
status = mod_hdcp_read_rxstatus(hdcp); status = mod_hdcp_read_rxstatus(hdcp);
if (status != MOD_HDCP_STATUS_SUCCESS) if (status != MOD_HDCP_STATUS_SUCCESS)
...@@ -474,7 +474,7 @@ static enum mod_hdcp_status locality_check(struct mod_hdcp *hdcp, ...@@ -474,7 +474,7 @@ static enum mod_hdcp_status locality_check(struct mod_hdcp *hdcp,
hdcp, "lc_init_write")) hdcp, "lc_init_write"))
goto out; goto out;
if (is_dp_hdcp(hdcp)) if (is_dp_hdcp(hdcp))
udelay(16000); msleep(16);
else else
if (!mod_hdcp_execute_and_set(poll_l_prime_available, if (!mod_hdcp_execute_and_set(poll_l_prime_available,
&input->l_prime_available_poll, &status, &input->l_prime_available_poll, &status,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment