On Tue, 3 May 2011 12:42:24 +0800, "Feng, Boqun" <[email protected]> wrote: > On g4x, user interrupt in BSD ring is missed. > g4x and ironlake share the same bsd_ring, but their interrupt control > interfaces are different. On g4x i915_enable_irq and i915_disable_irq > are used to enable/disable irq,and user interrupt flag in BSD ring on > g4x is I915_BSD_USER_INTERRUPT. > The ring_get_irq and ring_put_irq use ironlake style interrupt control > interface. So rather than use them, expand their code and add an if-else > statement about the device version.
Please don't open-code ring_get_irq here. I'd suggest a cleaner fix
would be to either just conditionally call ring_get_irq, or to stick the
BSD interrupt value in dev_priv where you can get it:
if (IS_G4X(dev))
ring_get_irq(ring, I915_BSD_USER_INTERRUPT);
else
ring_get_irq(ring, GT_BSD_USER_INTERRUPT);
or
ring_get_irq(ring, dev_priv->bsd_user_interrupt);
--
[email protected]
pgpqTNOUGVstU.pgp
Description: PGP signature
_______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
