On Tue, 12 Apr 2011 18:21:23 +0100, Chris Wilson wrote: > Agreed. I had been working under the assumption that dev->struct_mutex was > the sufficient lock. This may be entirely due to the false premise that we > only needed i915_gt_read() for the ring registers. I still haven't looked > through just what registers are impacted. Seems like we should start using a spinlock and wake lock around all register accesses, then figure out which registers are not within the GT power well and split those off to a separate macro which avoids both. If we finally discover that all wake-lock requiring registers are now obviously covered by the struct mutex, we could then consider removing the spinlock. Make it work, then make it fast. -- keith.packard@intel.com