• Ville Syrjälä's avatar
    drm/i915: Clean up the HWSTAM mess · d420a50c
    Ville Syrjälä authored
    Currently we're unmasking some random looking bits in HWSTAM
    on gen3/4/5. The two bits we apparently unmask are 0 and 12,
    and also bits 16-31 on gen4/5.
    What those bits do depends on the gen as follows:
     bit 0: Breakpoint (gen2), ASLE (gen3), reserved (gen4), render user interrupt (gen5)
     bit 12: Sync flush statusa (gen2-4), reserved (gen5)
     bit 16-31: The ones that can unmasked seem to be mostly some
                display stuff on gen4. Bit 18 is the PIPE_CONTROL notify,
    	    which might be the only intresting one. On gen5 all the
    	    bits are reserved.
    
    So I don't know whether we actually depend on that status page write
    somehow. Extra seqno coherency by accident perhaps? Except we don't
    even unmask the user interrupt bit in HWSTAM except on gen5, and
    sync flush isn't something we use normally, so seems unlikely. So
    let's just assume we don't need any of this and mask everything in
    HWSTAM.
    
    From gen6 onwards there's a separate HWSTAM for each engine, and so
    we deal with them during the engine setup.
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170818183705.27850-15-ville.syrjala@linux.intel.comReviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    d420a50c
i915_irq.c 117 KB