1. 17 5月, 2011 1 次提交
    • F
      drm/i915: fix user irq miss in BSD ring on g4x · 5bfa1063
      Feng, Boqun 提交于
      On g4x, user interrupt in BSD ring is missed.
      This is because though g4x and ironlake share the same bsd_ring,
      their interrupt control interfaces have _two_ differences.
      
      1.different irq enable/disable functions:
      On g4x are i915_enable_irq and i915_disable_irq.
      On ironlake are ironlake_enable_irq and ironlake_disable_irq.
      2.different irq flag:
      On g4x user interrupt flag in BSD ring on is I915_BSD_USER_INTERRUPT.
      On ironlake is GT_BSD_USER_INTERRUPT
      
      Old bsd_ring_get/put_irq call ring_get_irq and ring_get_irq.
      ring_get_irq and ring_put_irq only call ironlake_enable/disable_irq.
      So comes the irq miss on g4x.
      
      To fix this, as other rings' code do, conditionally call different
      functions(i915_enable/disable_irq and ironlake_enable/disable_irq)
      and use different interrupt flags in bsd_ring_get/put_irq.
      Signed-off-by: NFeng, Boqun <boqun.feng@intel.com>
      Reviewed-by: NXiang, Haihao <haihao.xiang@intel.com>
      Cc: stable@kernel.org
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      5bfa1063
  2. 14 5月, 2011 23 次提交
  3. 11 5月, 2011 16 次提交