aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorYufeng Shen <miletus@chromium.org>2012-02-13 17:36:54 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-02-14 04:39:53 -0500
commit8a8ed1f5143b3df312e436ab15290e4a7ca6a559 (patch)
tree90067c14702ee364b47c551d1467508329521f28 /drivers/gpu/drm/i915/i915_drv.h
parentb1d7e4b41fd0f72ea8149056778db5d737739305 (diff)
drm/i915: Fix race condition in accessing GMBUS
GMBUS has several ports and each has it's own corresponding I2C adpater. When multiple I2C adapters call gmbus_xfer() at the same time there is a race condition in using the underlying GMBUS controller. Fixing this by adding a mutex lock when calling gmbus_xfer(). v2: Moved gmbus_mutex below intel_gmbus and added comments. Rebased to drm-intel-next-queued. Signed-off-by: Yufeng Shen <miletus@chromium.org> [danvet: Shortened the gmbus_mutex comment a bit and add the patch revision comment to the commit message.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index caec1fdb7dda..8e3eb5e282a1 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -313,6 +313,10 @@ typedef struct drm_i915_private {
313 u32 reg0; 313 u32 reg0;
314 } *gmbus; 314 } *gmbus;
315 315
316 /** gmbus_mutex protects against concurrent usage of the single hw gmbus
317 * controller on different i2c buses. */
318 struct mutex gmbus_mutex;
319
316 struct pci_dev *bridge_dev; 320 struct pci_dev *bridge_dev;
317 struct intel_ring_buffer ring[I915_NUM_RINGS]; 321 struct intel_ring_buffer ring[I915_NUM_RINGS];
318 uint32_t next_seqno; 322 uint32_t next_seqno;