From: Alex Deucher Date: Tue, 17 Dec 2019 20:47:07 +0000 (-0500) Subject: drm/amdgpu/display: use msleep rather than udelay for HDCP X-Git-Tag: v5.6-rc1~34^2~22 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=5f773e551a3b977013df24d570d486645f326672;p=linux-2.6-block.git 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: Alex Deucher Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20191217204707.2258744-2-alexander.deucher@amd.com --- diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c index bcbc0b8a9aa0..f730b94ac3c0 100644 --- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c +++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c @@ -153,7 +153,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp) { enum mod_hdcp_status status; 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 wait_time = max_wait / num_polls; @@ -161,7 +161,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp) status = MOD_HDCP_STATUS_INVALID_OPERATION; else for (; num_polls; num_polls--) { - udelay(wait_time); + msleep(wait_time); status = mod_hdcp_read_rxstatus(hdcp); if (status != MOD_HDCP_STATUS_SUCCESS) @@ -474,7 +474,7 @@ static enum mod_hdcp_status locality_check(struct mod_hdcp *hdcp, hdcp, "lc_init_write")) goto out; if (is_dp_hdcp(hdcp)) - udelay(16000); + msleep(16); else if (!mod_hdcp_execute_and_set(poll_l_prime_available, &input->l_prime_available_poll, &status,