[PATCH v2] Fix the possible watermark miswriting for skl+

Chris Wilson chris at chris-wilson.co.uk
Tue Nov 13 16:40:57 UTC 2018


Quoting Stanislav Lisovskiy (2018-11-13 14:31:38)
> Currently whenever we attempt to recalculate
> watermarks, we assign dirty_pipes to zero,
> then compare current wm results to the recalculated
> one and if they changed we set correspondent dirty_pipes
> bit again.
> This can lead to situation, when we are clearing dirty_pipes,
> same wm results twice in a row and not setting dirty_pipes
> => so that watermarks are not actually updated, which then might
> lead to fifo underruns, crc mismatch and other issues.
> 
> Instead, whenever we detect that wm results are changed,
> need to set correspondent dirty_pipes bit and clear it
> only once the change is written, but not clear it everytime
> we attempt to recalculate those in skl_compute_wm.

Ok, but are not dirty_pipes being recomputed for each commit wrt to the
current HW state. Should dirty_pipes not be 0 at the start of compute_wm
naturally due to it not being used before in the atomic commit sequence?
-Chris


More information about the dri-devel mailing list