On Wed, Apr 13, 2011 at 06:52:15AM +0100, Chris Wilson wrote: > On Tue, 12 Apr 2011 18:31:51 -0700, Ben Widawsky <b...@bwidawsk.net> wrote: > > I think we have no other option since the first thing that > > i915_driver_irq_handler() does is read IIR, which according to the limited > > knowledge I have requires forcewake. > > That makes no sense at all. :( > > But then I'm only a lowly sw engineer, > -Chris
This was my initial thought as well, but as I was saying on IRC... my only guess is they assumed that the time to service the interrupt is less than the time it takes to powerdown, and that the GT must be awake to send an interrupt. My other guess is I've got this all wrong. However if we go with the former: x = interrupt latency y = interrupt servicing z = time before the GT powers down they assume (x + y) < z And we need to remember that y is only enough time to get in and set the forceawake bit before the GT has powered down. So this actually seems like a reasonable thing to assume since I think powerdown time is in microsecond granularity. To what Keith said just above this, it does seem there are some registers in the <0x40000 range which are special, but I don't see IIR there. I am surprised by this as well, and I'd suggest we try to find people to verify it. Ben _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx