• Ville Syrjälä's avatar
    drm/i915: CHV DDR DVFS support and another watermark rewrite · 262cd2e1
    Ville Syrjälä authored
    Turns out the VLV/CHV system agent doesn't understand memory
    latencies, so trying to rely on the PND deadline mechanism is not
    going to fly especially when DDR DVFS is enabled. Currently we try to
    avoid the problems by lying to the system agent about the deadlines
    and setting the FIFO watermarks to 8 cachelines. This however leads to
    bad memory self refresh residency.
    
    So in order to satosfy everyone we'll just give up on the deadline
    scheme and program the watermarks old school based on the worst case
    memory latency.
    
    I've modelled this a bit on the ILK+ approach where we compute multiple
    sets of watermarks for each pipe (PM2,PM5,DDR DVFS) and when merge thet
    appropriate one later with the watermarks from other pipes. There isn't
    too much to merge actually since each pipe has a totally independent
    FIFO (well apart from the mess with the partially shared DSPARB
    registers), but still decopuling the pipes from each other seems like a
    good idea.
    
    Eventually we'll want to perform the watermark update in two phases
    around the plane update to avoid underruns due to the single buffered
    watermark registers. But that's still in limbo for ILK+ too, so I've not
    gone that far yet for VLV/CHV either.
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarClint Taylor <Clinton.A.Taylor@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    262cd2e1
intel_drv.h 48.1 KB