Takashi Iwai 529945
From 6389902072db658366ec53711a83d711364b7330 Mon Sep 17 00:00:00 2001
Takashi Iwai 529945
From: Imre Deak <imre.deak@intel.com>
Takashi Iwai 529945
Date: Tue, 9 Jan 2018 14:20:40 +0200
Takashi Iwai 529945
Subject: [PATCH] drm/i915: Fix using BIT_ULL() vs. BIT() for power domain masks
Takashi Iwai 529945
Git-commit: 6389902072db658366ec53711a83d711364b7330
Takashi Iwai 529945
Patch-mainline: v4.16-rc1
Takashi Iwai 529945
References: FATE#322643 bsc#1055900
Takashi Iwai fbe9d2
No-fix: 17bd6e66d8f677b1b250d098097fbed6e70175ef
Takashi Iwai 529945
Takashi Iwai 529945
The power domain masks are 64 bit wide, so we need BIT_ULL() when
Takashi Iwai 529945
setting bits in them, these ones were missed during converting from 32
Takashi Iwai 529945
to 64 bit masks. All 3 enums are <32 atm, so this didn't cause a real
Takashi Iwai 529945
problem.
Takashi Iwai 529945
Takashi Iwai 529945
Fixes: d8fc70b7367b ("drm/i915: Make power domain masks 64 bit long")
Takashi Iwai 529945
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Takashi Iwai 529945
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Takashi Iwai 529945
Signed-off-by: Imre Deak <imre.deak@intel.com>
Takashi Iwai 529945
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Takashi Iwai 529945
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Takashi Iwai 529945
Link: https://patchwork.freedesktop.org/patch/msgid/20180109122040.19425-1-imre.deak@intel.com
Takashi Iwai 529945
(cherry picked from commit 17bd6e66d8f677b1b250d098097fbed6e70175ef)
Takashi Iwai 529945
Takashi Iwai 529945
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Takashi Iwai 529945
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 529945
Takashi Iwai 529945
---
Takashi Iwai 529945
 drivers/gpu/drm/i915/intel_display.c |    6 +++---
Takashi Iwai 529945
 1 file changed, 3 insertions(+), 3 deletions(-)
Takashi Iwai 529945
Takashi Iwai 529945
--- a/drivers/gpu/drm/i915/intel_display.c
Takashi Iwai 529945
+++ b/drivers/gpu/drm/i915/intel_display.c
Takashi Iwai 529945
@@ -5661,8 +5661,8 @@ static u64 get_crtc_power_domains(struct
Takashi Iwai 529945
 	if (!crtc_state->base.active)
Takashi Iwai 529945
 		return 0;
Takashi Iwai 529945
 
Takashi Iwai 529945
-	mask = BIT(POWER_DOMAIN_PIPE(pipe));
Takashi Iwai 529945
-	mask |= BIT(POWER_DOMAIN_TRANSCODER(transcoder));
Takashi Iwai 529945
+	mask = BIT_ULL(POWER_DOMAIN_PIPE(pipe));
Takashi Iwai 529945
+	mask |= BIT_ULL(POWER_DOMAIN_TRANSCODER(transcoder));
Takashi Iwai 529945
 	if (crtc_state->pch_pfit.enabled ||
Takashi Iwai 529945
 	    crtc_state->pch_pfit.force_thru)
Takashi Iwai 529945
 		mask |= BIT_ULL(POWER_DOMAIN_PIPE_PANEL_FITTER(pipe));
Takashi Iwai 529945
@@ -5674,7 +5674,7 @@ static u64 get_crtc_power_domains(struct
Takashi Iwai 529945
 	}
Takashi Iwai 529945
 
Takashi Iwai 529945
 	if (HAS_DDI(dev_priv) && crtc_state->has_audio)
Takashi Iwai 529945
-		mask |= BIT(POWER_DOMAIN_AUDIO);
Takashi Iwai 529945
+		mask |= BIT_ULL(POWER_DOMAIN_AUDIO);
Takashi Iwai 529945
 
Takashi Iwai 529945
 	if (crtc_state->shared_dpll)
Takashi Iwai 529945
 		mask |= BIT_ULL(POWER_DOMAIN_PLLS);