Module Name: src
Committed By: christos
Date: Thu Mar 5 21:13:48 UTC 2015
Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_i2c.c
Log Message:
Write the loops the same way, leaving i containing the number of tries
left. Also break early in the hot case.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.12 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.12 Mon Mar 2 18:05:03 2015
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c Thu Mar 5 16:13:48 2015
@@ -287,14 +287,15 @@ gmbus_wait_hw_status(struct drm_i915_pri
#ifdef __NetBSD__
if (cold) {
i = 50;
- while (gmbus2 = I915_READ_NOTRACE(GMBUS2 + reg_offset),
- !ISSET(gmbus2, (GMBUS_SATOER | gmbus2_status))) {
- if (i-- == 0)
+ do {
+ gmbus2 = I915_READ_NOTRACE(GMBUS2 + reg_offset);
+ if (ISSET(gmbus2, (GMBUS_SATOER | gmbus2_status)))
break;
DELAY(1000);
- }
+ } while (i-- > 0);
} else {
- for (i = 0; i < mstohz(50); i++) {
+ i = mstohz(50);
+ do {
int ret;
spin_lock(&dev_priv->gmbus_wait_lock);
@@ -306,7 +307,9 @@ gmbus_wait_hw_status(struct drm_i915_pri
ISSET(gmbus2,
(GMBUS_SATOER | gmbus2_status))));
spin_unlock(&dev_priv->gmbus_wait_lock);
- }
+ if (ret)
+ break;
+ } while (i-- > 0);
}
#else
for (i = 0; i < msecs_to_jiffies_timeout(50); i++) {