diff --git a/msm/dp/dp_aux.c b/msm/dp/dp_aux.c index e75e10e7..00f9381f 100644 --- a/msm/dp/dp_aux.c +++ b/msm/dp/dp_aux.c @@ -560,6 +560,15 @@ static ssize_t dp_aux_transfer_debug(struct drm_dp_aux *drm_aux, struct dp_aux_private *aux = container_of(drm_aux, struct dp_aux_private, drm_aux); ssize_t size; + int aborted; + + mutex_lock(&aux->mutex); + aborted = atomic_read(&aux->aborted); + mutex_unlock(&aux->mutex); + if (aborted) { + size = -ETIMEDOUT; + goto end; + } if (aux->sim_in_transfer) { if (aux->aux_bridge && aux->aux_bridge->transfer) @@ -572,7 +581,7 @@ static ssize_t dp_aux_transfer_debug(struct drm_dp_aux *drm_aux, drm_aux, msg); aux->sim_in_transfer = false; } - +end: return size; }