1. 23 8月, 2013 1 次提交
  2. 22 8月, 2013 3 次提交
    • V
      drm/i915: Only unmask required PM interrupts · fd547d25
      Vinit Azad 提交于
      Un-masking all PM interrupts causes hardware to generate
      interrupts regardless of whether the interrupts are enabled
      on the DE side. Since turbo only need up/down threshold and
      rc6 timeout interrupt, mask all other interrupts bits to avoid
      unnecessary overhead/wake up.
      
      Note that our interrupt handler isn't being fired since we do set the
      IER bits properly (IIR bits aren't set). The overhead isn't because
      our driver is reacting to these interrupts, but because hardware keeps
      generating internal messages when PMINTRMSK doesn't mask out the
      up/down EI interrupts (which happen periodically).
      
      Change-Id: I6c947df6fd5f60584d39b9e8b8c89faa51a5e827
      Signed-off-by: NVinit Azad <vinit.azad@intel.com>
      [danvet: Add follow-up explanation of the precise effects from Vinit
      as a note to the commit message.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      fd547d25
    • P
      drm/i915: clarify Haswell power well bit names · 6aedd1f5
      Paulo Zanoni 提交于
      Whenever I need to work with the HSW_PWER_WELL_* register bits I have
      to look at the documentation to find out which bit is to request the
      power well and which one shows its current state. Rename the bits so I
      won't need to look the docs every time.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6aedd1f5
    • S
      drm/i915: tune the RC6 threshold for stability · 351aa566
      Stéphane Marchesin 提交于
      It's basically the same deal as the RC6+ issues on ivy bridge
      except this time with RC6 on sandy bridge. Like last time the
      core of the issue is that the timings don't work 100% with our
      voltage regulator. So from time to time, the kernel will print
      a warning message about the GPU not getting out of RC6. In
      particular, I found this fairly easy to reproduce during
      suspend/resume.
      
      Changing the threshold to 125000 instead of 50000 seems to fix
      the issue. The previous patch used 150000 but as it turns out
      this doesn't work everywhere. After getting such a machine, I
      bisected the highest value which works, which is 125000, so here
      it is.
      
      I also measured the idle power usage before/after this patch and
      didn't see a difference on a sandy bridge laptop. On haswell and
      up, it makes a big difference, so we want to keep it at 50k
      there. It also seems like haswell doesn't have the RC6 issues
      that sandy bridge has so the 50k value is fine.
      Signed-off-by: NStéphane Marchesin <marcheu@chromium.org>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      351aa566
  3. 10 8月, 2013 2 次提交
  4. 08 8月, 2013 10 次提交
  5. 06 8月, 2013 17 次提交
  6. 05 8月, 2013 1 次提交
  7. 25 7月, 2013 1 次提交
    • C
      drm/i915: Colocate all GT access routines in the same file · 907b28c5
      Chris Wilson 提交于
      Currently, the register access code is split between i915_drv.c and
      intel_pm.c. It only bares a superficial resemblance to the reset of the
      powermanagement code, so move it all into its own file. This is to ease
      further patches to enforce serialised register access.
      
      v2: Scan for random abuse of I915_WRITE_NOTRACE
      v3: Take the opportunity to rename the GT functions as uncore. Uncore is
      the term used by the hardware design (and bspec) for all functions
      outside of the GPU (and CPU) cores in what is also known as the System
      Agent.
      v4: Rebase onto SNB rc6 fixes
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: Wrestle patch into applying and inline
      intel_uncore_early_sanitize (plus move the old comment to the new
      function). Also keep the _santize postfix for intel_uncore_sanitize.]
      [danvet: Squash in fixup spotted by Chris on irc: We need to call
      intel_pm_init before intel_uncore_sanitize since the later will call
      cancel_work on the delayed rps setup work the former initializes.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      907b28c5
  8. 21 7月, 2013 1 次提交
    • D
      drm/i915: fix up gt init sequence fallout · 181d1b9e
      Daniel Vetter 提交于
      The regression fix for gen6+ rps fallout
      
      commit 7dcd2677
      Author: Konstantin Khlebnikov <khlebnikov@openvz.org>
      Date:   Wed Jul 17 10:22:58 2013 +0400
      
          drm/i915: fix long-standing SNB regression in power consumption after resume
      
      unintentionally also changed the init sequence ordering between
      gt_init and gt_reset - we need to reset BIOS damage like leftover
      forcewake references before we run our own code. Otherwise we can get
      nasty dmesg noise like
      
      [drm:__gen6_gt_force_wake_mt_get] *ERROR* Timed out waiting for forcewake old ack to clear.
      
      again. Since _reset suggests that we first need to have stuff
      initialized (which isn't the case here) call it sanitze instead.
      
      While at it also block out the rps disable introduced by the above
      commit on ilk: We don't have any knowledge of ilk rps being broken in
      similar ways. And the disable functions uses the default hw state
      which is only read out when we're enabling rps. So essentially we've
      been writing random grabage into that register.
      Reported-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: stable@vger.kernel.org
      Tested-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      181d1b9e
  9. 17 7月, 2013 1 次提交
    • K
      drm/i915: fix long-standing SNB regression in power consumption after resume v2 · 7dcd2677
      Konstantin Khlebnikov 提交于
      This patch fixes regression in power consumtion of sandy bridge gpu, which
      exists since v3.6 Sometimes after resuming from s2ram gpu starts thinking that
      it's extremely busy. After that it never reaches rc6 state.
      
      Bug exists since kernel v3.6:
      
      commit b4ae3f22
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Thu Jun 14 11:04:48 2012 -0700
      
          drm/i915: load boot context at driver init time
      
      For some reason RC6 is already enabled at the beginning of resuming process.
      Following initliaztion breaks some internal state and confuses RPS engine.
      This patch disables RC6 at the beginnig of resume and initialization.
      
      I've rearranged initialization sequence, because intel_disable_gt_powersave()
      needs initialized force_wake_get/put and some locks from the dev_priv.
      
      Note: The culprit in the initialization sequence seems to be the write
      to MBCTL added in the above mentioned commit. The first version of
      this patch just held a forcewake reference across the clock gating
      init functions, which seems to have been enought to gather quite a few
      positive test reports. But since that smelled a bit like ad-hoc
      duct-tape v2 now just disables rps/rc6 across the entire hw setup.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=54089
      References: https://bugzilla.kernel.org/show_bug.cgi?id=58971
      References: https://patchwork.kernel.org/patch/2827634/ (patch v1)
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: Add note about v1 vs. v2 of this patch and use standard
      layout for the commit citation. Also add the tested-bys from v1 and a
      cc: stable.]
      Cc: stable@vger.kernel.org (Note: tiny conflict due to the addition of
      the backlight lock in 3.11)
      Tested-by: Alexander Kaltsas <alexkaltsas@gmail.com> (v1)
      Tested-by: rocko <rockorequin@hotmail.com> (v1)
      Tested-by: JohnMB <johnmbryant@sky.com> (v1)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7dcd2677
  10. 16 7月, 2013 3 次提交