On Fri, Mar 30, 2012 at 01:49:17PM +0100, Chris Wilson wrote:
On Fri, 30 Mar 2012 19:46:35 +0800, Daniel Kurtz djkurtz@chromium.org wrote:
This patchset addresses a couple of issues with the i915 gmbus implementation.
v7 adds a final patch to switch to using DRM_ERROR for reporting timeouts.
Daniel Kurtz (8): drm/i915/intel_i2c: handle zero-length writes drm/i915/intel_i2c: use double-buffered writes drm/i915/intel_i2c: always wait for IDLE before clearing NAK drm/i915/intel_i2c: use WAIT cycle, not STOP drm/i915/intel_i2c: use INDEX cycles for i2c read transactions drm/i915/intel_i2c: reuse GMBUS2 value read in polling loop drm/i915/intel_i2c: remove POSTING_READ() from gmbus transfers drm/i915/intel_i2c: use DRM_ERROR on timeouts
The only two I am still dubious about is 4/8: use WAIT cycle, not STOP, and 8/8: use DRM_ERROR on timeouts, the rest are Reviewed-by: Chris Wilson chris@chris-wilson.co.uk
The last is a little debatable, as i2c can be called from userspace (and other modules) and we have not verified that the adapters we set up correspond to devices conditions. So I think it is still possible under normal conditions to hit the error path, so would prefer to keep the log level as INFO.
I have to admit that I've suggested this patch. We might need to drop it before release, but I also want to have a few pointless bug about void error messages and I'd like to figure out whether gmbus now really works. Easiest way for that is to throw an annoying error message into dmesg when it doesn't. -Daniel