drm/i915: properly guard ilk ips state
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 Aug 2012 14:44:54 +0000 (16:44 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 Aug 2012 19:45:17 +0000 (21:45 +0200)
commit02d719562ef40483648b2cc46899d4a2ff5953bb
tree0fe6fde37243a0a0b62aa5d97a58dca1f09cb0a8
parent745ca3be810b37fba8dd113a028ea71d42e1d892
drm/i915: properly guard ilk ips state

The update_gfx_val function called from mark_busy wasn't taking the
mchdev_lock, as it should have. Also sprinkle a few spinlock asserts
over the code to document things better.

Things are still rather confusing, especially since a few variables
in dev_priv are used by both the gen6+ rps code and the ilk ips code.
But protected by totally different locks. Follow-on patches will clean
that up.

v2: Don't add a deadlock ... hence split up update_gfx_val into a
wrapper that grabs the lock and an internal __ variant for callsites
within intel_pm.c that already have taken the lock.

v3: Mark the internal helper as static, noticed by Ben Widawsky.

v4: Damien Lespiau had questions about the safety of the ips setup
sequence, explain in a comment why it works.

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c