Keith Packard | 13 May 2011 17:07
Favicon
Gravatar

Re: [PATCH] drm/i915: fix user irq miss in BSD ring on g4x

On Tue,  3 May 2011 12:42:24 +0800, "Feng, Boqun" <boqun.feng <at> intel.com> 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);

--

-- 
keith.packard <at> intel.com
_______________________________________________
Intel-gfx mailing list
Intel-gfx <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Gmane