drm/i915: Hold struct_mutex during i915_save_state/i915_restore_state
authorKeith Packard <keithp@keithp.com>
Wed, 29 Jun 2011 07:30:34 +0000 (00:30 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 29 Jun 2011 18:20:45 +0000 (11:20 -0700)
commitd70bed1947772f34d66ada3bd923bfc12ea2452b
treeba0c438e8f2a996bf504923ef2dcf296581ad59a
parent0d72c6fcb5cd215eeab824fac216ea42c5b574aa
drm/i915: Hold struct_mutex during i915_save_state/i915_restore_state

Lots of register access in these functions, some of which requires the
struct mutex.

These functions now hold the struct mutex across the calls to
i915_save_display and i915_restore_display, and so the internal mutex
calls in those functions have been removed. To ensure that no-one else
was calling them (and hence violating the new required locking
invarient), those functions have been made static.

gen6_enable_rps locks the struct mutex, and so i915_restore_state
unlocks the mutex around calls to that function.

Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_suspend.c