diff --git a/msm/dp/dp_aux.c b/msm/dp/dp_aux.c index 7985c83269..85f7742e27 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 888c8cc268..42951d68a7 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,