[Intel-gfx] [PATCH 4/4] drm/i915: Avoid early timeout during AUX transfers

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Jun 28 11:19:19 UTC 2016


On 28/06/16 11:37, Imre Deak wrote:
> Since wait_for_atomic doesn't re-check the wait-for condition after
> expiry of the timeout it can fail when called from non-atomic context
> even if the condition is set correctly before the expiry. Fix this by
> using the non-atomic wait_for instead.
>
> Due to the relatively long 10ms timeout, probably this didn't cause any
> real problems, but fix it in any case for consistency.
>
> Fixes: 0351b93992aa ("drm/i915: Do not lie about atomic timeout granularity")
> CC: Chris Wilson <chris at chris-wilson.co.uk>
> CC: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>   drivers/gpu/drm/i915/intel_dp.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index c3742a0..6d586b7 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -727,7 +727,7 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp, bool has_aux_irq)
>   		done = wait_event_timeout(dev_priv->gmbus_wait_queue, C,
>   					  msecs_to_jiffies_timeout(10));
>   	else
> -		done = wait_for_atomic(C, 10) == 0;
> +		done = wait_for(C, 10) == 0;
>   	if (!done)
>   		DRM_ERROR("dp aux hw did not signal timeout (has irq: %i)!\n",
>   			  has_aux_irq);
>

This one looks obvious;

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list