[PATCH 09/13 v4] drm/i915/intel_i2c: use double-buffered writes

Chris Wilson chris at chris-wilson.co.uk
Tue Mar 27 11:45:22 PDT 2012


On Wed, 28 Mar 2012 02:36:18 +0800, Daniel Kurtz <djkurtz at chromium.org> wrote:
> @@ -276,6 +269,13 @@ gmbus_xfer_write(struct drm_i915_private *dev_priv, struct i2c_msg *msg,
>  
>  		I915_WRITE(GMBUS3 + reg_offset, val);
>  		POSTING_READ(GMBUS2 + reg_offset);

You might as well squash this posting read as the write flush is
redundant given the following read of GMBUS2.

> +
> +		if (wait_for(I915_READ(GMBUS2 + reg_offset) &
> +			     (GMBUS_SATOER | GMBUS_HW_RDY),
> +			     50))
> +			return -ETIMEDOUT;
> +		if (I915_READ(GMBUS2 + reg_offset) & GMBUS_SATOER)
> +			return -ENXIO;

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the dri-devel mailing list