diff --git a/drivers/gpu/drm/nouveau/nouveau_calc.c b/drivers/gpu/drm/nouveau/nouveau_calc.c index 3f80db8..5d80e09 100644 --- a/drivers/gpu/drm/nouveau/nouveau_calc.c +++ b/drivers/gpu/drm/nouveau/nouveau_calc.c @@ -323,9 +323,11 @@ nv10CalcArbitration(struct nv_fifo_info *fifo, struct nv_sim_state *arb) min_mclk_extra--; } - /* This correction works around a slight snow effect - * when the TV and VGA outputs are enabled simultaneously. */ - min_clwm = 1024 - cbs + 128 * pclk_freq / 100000; + /* This correction works around the snow effect when + * several heads are scanning out simultaneously. */ + min_clwm = 1024 - cbs + + 184 * m2us / 1000 * crtc_drain_rate / 100000; + if (clwm < min_clwm) clwm = min_clwm;