[Intel-gfx] [PATCH] drm/i915: Fix disabled semaphores

Ben Widawsky ben at bwidawsk.net
Tue Jan 14 00:25:35 CET 2014


Daniel, please consider merging this, or the rest of the semaphore
series. Existing code is broken.

On Tue, Dec 17, 2013 at 08:06:00PM -0800, Ben Widawsky wrote:
> The ring will emit too many if semaphores are disabled since we do not
> add the correct number to num_dwords anymore.
> 
> This was introduced:
> commit 52ed23253b68e1cf154b03d91bed619504cf955b
> Author: Ben Widawsky <benjamin.widawsky at intel.com>
> Date:   Mon Dec 16 20:50:38 2013 -0800
> 
>     drm/i915: Don't emit mbox updates without semaphores
> 
> FWIW, the bug was fixed later in the series.
> 
> /me hangs head in shame.
> 
> Daniel: Also note that we should have merged the read-only semaphore
> modparam before this patch.
> 
> Reported-by: Kenneth Graunke <kenneth at whitecape.org>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index b106984..b242dbb 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -673,10 +673,12 @@ gen6_add_request(struct intel_ring_buffer *ring)
>  	if (ret)
>  		return ret;
>  
> -	for_each_ring(useless, dev_priv, i) {
> -		u32 mbox_reg = ring->signal_mbox[i];
> -		if (mbox_reg != GEN6_NOSYNC)
> -			update_mboxes(ring, mbox_reg);
> +	if (i915_semaphore_is_enabled(dev)) {
> +		for_each_ring(useless, dev_priv, i) {
> +			u32 mbox_reg = ring->signal_mbox[i];
> +			if (mbox_reg != GEN6_NOSYNC)
> +				update_mboxes(ring, mbox_reg);
> +		}
>  	}
>  
>  	intel_ring_emit(ring, MI_STORE_DWORD_INDEX);
> -- 
> 1.8.5.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list