From d532f14537c2fc5d10ae56154d35337ff93f30fd Mon Sep 17 00:00:00 2001 From: Tatenda Chipeperekwa Date: Tue, 9 Jul 2019 14:32:35 -0700 Subject: [PATCH] disp: msm: dp: add timeout state for simulated AUX transfers Add a new state to indicate timeout failures in simulation mode. This can be used by test scripts to trigger a retry of the session. Change-Id: I9e250ba7d42fcb318698d8456b3acc5b55081abc Signed-off-by: Tatenda Chipeperekwa --- msm/dp/dp_aux.c | 6 ++++-- msm/dp/dp_aux.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/msm/dp/dp_aux.c b/msm/dp/dp_aux.c index 7985c83269c1..85f7742e27f6 100644 --- a/msm/dp/dp_aux.c +++ b/msm/dp/dp_aux.c @@ -505,7 +505,7 @@ static ssize_t dp_aux_transfer_debug(struct drm_dp_aux *drm_aux, if (aux->read) { timeout = wait_for_completion_timeout(&aux->comp, HZ); if (!timeout) { - pr_err("aux timeout for 0x%x\n", msg->address); + pr_err("read timeout: 0x%x\n", msg->address); atomic_set(&aux->aborted, 1); ret = -ETIMEDOUT; goto end; @@ -519,7 +519,7 @@ static ssize_t dp_aux_transfer_debug(struct drm_dp_aux *drm_aux, timeout = wait_for_completion_timeout(&aux->comp, HZ); if (!timeout) { - pr_err("aux timeout for 0x%x\n", msg->address); + pr_err("write timeout: 0x%x\n", msg->address); atomic_set(&aux->aborted, 1); ret = -ETIMEDOUT; goto end; @@ -556,6 +556,8 @@ address_error: memset(msg->buffer, 0, msg->size); ret = msg->size; end: + if (ret == -ETIMEDOUT) + aux->dp_aux.state |= DP_STATE_AUX_TIMEOUT; aux->dp_aux.reg = 0xFFFF; aux->dp_aux.read = true; aux->dp_aux.size = 0; diff --git a/msm/dp/dp_aux.h b/msm/dp/dp_aux.h index 888c8cc268cd..42951d68a750 100644 --- a/msm/dp/dp_aux.h +++ b/msm/dp/dp_aux.h @@ -21,6 +21,7 @@ #define DP_STATE_LINK_MAINTENANCE_STARTED BIT(9) #define DP_STATE_LINK_MAINTENANCE_COMPLETED BIT(10) #define DP_STATE_LINK_MAINTENANCE_FAILED BIT(11) +#define DP_STATE_AUX_TIMEOUT BIT(12) enum dp_aux_error { DP_AUX_ERR_NONE = 0,