drm/i915: Disable specific watermark levels when latency is zero
Return UINT_MAX for the calculated WM level if the latency is zero. This will lead to marking the WM level as disabled. I'm not sure if latency==0 should mean that we want to disable the level. But that's the implication I got from the fact that we don't even enable the watermark code of the SSKDP register is 0. v2: Use WARN() to scare people Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
26ec971e30
Коммит
3312ba65ca
|
@ -2131,6 +2131,9 @@ static uint32_t ilk_wm_method1(uint32_t pixel_rate, uint8_t bytes_per_pixel,
|
||||||
{
|
{
|
||||||
uint64_t ret;
|
uint64_t ret;
|
||||||
|
|
||||||
|
if (WARN(latency == 0, "Latency value missing\n"))
|
||||||
|
return UINT_MAX;
|
||||||
|
|
||||||
ret = (uint64_t) pixel_rate * bytes_per_pixel * latency;
|
ret = (uint64_t) pixel_rate * bytes_per_pixel * latency;
|
||||||
ret = DIV_ROUND_UP_ULL(ret, 64 * 10000) + 2;
|
ret = DIV_ROUND_UP_ULL(ret, 64 * 10000) + 2;
|
||||||
|
|
||||||
|
@ -2143,6 +2146,9 @@ static uint32_t ilk_wm_method2(uint32_t pixel_rate, uint32_t pipe_htotal,
|
||||||
{
|
{
|
||||||
uint32_t ret;
|
uint32_t ret;
|
||||||
|
|
||||||
|
if (WARN(latency == 0, "Latency value missing\n"))
|
||||||
|
return UINT_MAX;
|
||||||
|
|
||||||
ret = (latency * pixel_rate) / (pipe_htotal * 10000);
|
ret = (latency * pixel_rate) / (pipe_htotal * 10000);
|
||||||
ret = (ret + 1) * horiz_pixels * bytes_per_pixel;
|
ret = (ret + 1) * horiz_pixels * bytes_per_pixel;
|
||||||
ret = DIV_ROUND_UP(ret, 64) + 2;
|
ret = DIV_ROUND_UP(ret, 64) + 2;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче