From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/6] drm/i915: HSW FBC WaFbcDisableDpfcClockGating Date: Wed, 24 Apr 2013 20:41:06 +0300 Message-ID: <20130424174106.GU4469@intel.com> References: <1366739541-4565-1-git-send-email-rodrigo.vivi@gmail.com> <1366739541-4565-7-git-send-email-rodrigo.vivi@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id 72F0AE5CF2 for ; Wed, 24 Apr 2013 10:41:30 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1366739541-4565-7-git-send-email-rodrigo.vivi@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Tue, Apr 23, 2013 at 02:52:21PM -0300, Rodrigo Vivi wrote: > Display register 46500h bit 23 must be set to 1b for the entire time that > Frame Buffer Compression is enabled. > = > v2: Ville suggested to enable it back when disabling fbc to avoid wasting > power. > = > Cc: Ville Syrj=E4l=E4 > Signed-off-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/i915_reg.h | 3 +++ > drivers/gpu/drm/i915/intel_pm.c | 7 +++++++ > 2 files changed, 10 insertions(+) > = > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_= reg.h > index cb2d74c..bd2f64d 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -871,6 +871,9 @@ > _HSW_PIPE_SLICE_CHICKEN_1_A, + \ > _HSW_PIPE_SLICE_CHICKEN_1_B) > = > +#define HSW_CLKGATE_DISABLE_PART_1 0x46500 > +#define HSW_DPFC_GATING_DISABLE (1<<23) > + > /* > * GPIO regs > */ > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel= _pm.c > index f81b25f..7e8caba 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -247,6 +247,11 @@ static void ironlake_disable_fbc(struct drm_device *= dev) > I915_WRITE(ILK_DSPCLK_GATE_D, > ~ILK_DPFCUNIT_CLOCK_GATE_DISABLE); > = > + if(IS_HASWELL(dev)) > + /* WaFbcDisableDpfcClockGating */ > + I915_WRITE(HSW_CLKGATE_DISABLE_PART_1, > + ~HSW_DPFC_GATING_DISABLE); Should be '0' or maybe better do RMW instead in case someone has to touch this register from somwhere else. Same issue in IVB patch btw, just didn't spot it then. > + > DRM_DEBUG_KMS("disabled FBC\n"); > } > } > @@ -284,6 +289,8 @@ static void gen7_enable_fbc(struct drm_crtc *crtc, un= signed long interval) > /* WaFbcAsynchFlipDisableFbcQueue */ > I915_WRITE(HSW_PIPE_SLICE_CHICKEN_1(intel_crtc->pipe), > HSW_BYPASS_FBC_QUEUE); > + /* WaFbcDisableDpfcClockGating */ > + I915_WRITE(HSW_CLKGATE_DISABLE_PART_1, HSW_DPFC_GATING_DISABLE); > } > = > I915_WRITE(SNB_DPFC_CTL_SA, > -- = > 1.8.1.4 -- = Ville Syrj=E4l=E4 Intel OTC