• D
    drm/i915: make semaphore signaller detection more robust · 921d42ea
    Daniel Vetter 提交于
    Extract all this logic into a new helper function
    semaphore_wait_to_signaller_ring because:
    
    - The current code has way too much magic.
    
    - The current code doesn't look at bi16, which encodes VECS signallers
      on HSW. Those are just added after the fact, so can't be encoded in
      a neat formula.
    
    - The current logic can't blow up since it limits its value range
      sufficiently, but that's a bit too tricky to rely on in my opinion.
      Especially when we start to add bdw support.
    
    - I'm not a big fan of the explicit ring->semaphore_register list, but
      I think it's more robust to use the same mapping both when
      constructing the semaphore commands and when decoding them.
    
    - Finally add a FIXME comment about lack of broadwell support here,
      like in the earlier ipehr semaphore cmd detection function.
    
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Cc: Ben Widawsky <ben@bwidawsk.net>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
    [danvet: Actually drop the untrue claim in the commit message Chris
    pointed out.]
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    921d42ea
i915_irq.c 119.1 KB