1. 20 5月, 2014 5 次提交
  2. 16 5月, 2014 5 次提交
  3. 14 5月, 2014 3 次提交
  4. 13 5月, 2014 1 次提交
  5. 06 5月, 2014 2 次提交
    • V
      drm/i915: Merge LP1+ watermarks in safer way · d52fea5b
      Ville Syrjälä 提交于
      On ILK when we disable a particular watermark level, we must
      maintain the actual watermark values for that level for some time
      (until the next vblank possibly). Otherwise we risk underruns.
      
      In order to achieve that result we must merge the LP1+ watermarks a
      bit differently since we must also merge levels that are to be
      disabled. We must also make sure we don't overflow the fields in the
      watermark registers in case the calculated watermarks come out too
      big to fit.
      
      As early as possbile we mark all computed watermark levels as
      disabled if they would exceed the register maximums. We make sure
      to leave the actual watermarks for such levels zeroed out. Then during
      merging, we take the maxium values for every level, regardless if
      they're disabled or not. That may seem a bit pointless since at the
      moment all the watermark levels we merge should have their values
      zeroed if the level is already disabled. However soon we will be
      dealing with intermediate watermarks that, in addition to the new
      watermark values, also contain the previous watermark values, and so
      levels that are disabled may no longer be zeroed out.
      
      v2: Split the patch in two (Paulo)
          Use if() instead of & when merging ->enable (Paulo)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      [danvet: Fix commit message as noted by Paulo.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d52fea5b
    • V
      drm/i915: Make sure computed watermarks never overflow the registers · a3cb4048
      Ville Syrjälä 提交于
      When we calculate the watermarks for a pipe make sure we leave any
      level fully zeroed out if it would exceed any of the maximum values
      that fit in the registers.
      
      This will be important later when we start to use also disabled
      watermark levels during LP1+ merging.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a3cb4048
  6. 05 5月, 2014 12 次提交
  7. 10 4月, 2014 2 次提交
    • D
      drm/i915: Disable self-refresh for untiled fbs on i915gm · 2ab1bc9d
      Daniel Vetter 提交于
      Apparently it doesn't work. X-tiled self-refresh works flawlessly
      otoh. Apparently X still works correctly with linear framebuffers, so
      might just be an issue with the initial modeset. It's unclear whether
      this just borked wm setup from our side or a hw restriction, but just
      disabling gets things going.
      
      Note that this regression was only brought to light with
      
      commit 3f2dc5ac
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Fri Jan 10 14:06:47 2014 +0200
      
          drm/i915: Fix 915GM self-refresh enable/disable
      
      before that self-refresh for i915GM didn't work at all.
      
      Kudos to Ville for spotting a little bug in the original patch I've
      attached to the bug.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76103Tested-by: NKrzysztof Mazur <krzysiek@podlesie.net>
      Cc: Krzysztof Mazur <krzysiek@podlesie.net>
      Cc: stable@vger.kernel.org
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      [Jani: rebase on top of drm-next with primary plane support.]
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      2ab1bc9d
    • D
      Revert "drm/i915: fix infinite loop at gen6_update_ring_freq" · fc1744ff
      Daniel Vetter 提交于
      This reverts commit 4b28a1f3.
      
      This patch duct-tapes over some issue in the current bdw rps patches
      which must wait with enabling rc6/rps until the very first batch has
      been submitted by userspace.
      
      But those patches aren't merged yet, and for upstream we need to have
      an in-kernel emission of the very first batch. I shouldn't have
      merged this patch so let's revert it again.
      
      Also Imre noticed that even when rps is set up normally there's a
      small window (due to the 1s delay of the async rps init work) where we
      could runtime suspend already and blow up all over the place. Imre has
      a proper fix to block runtime pm until the rps init work has
      successfully completed.
      
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      fc1744ff
  8. 09 4月, 2014 5 次提交
  9. 04 4月, 2014 2 次提交
  10. 02 4月, 2014 3 次提交
    • P
      drm/i915: fix infinite loop at gen6_update_ring_freq · 4b28a1f3
      Paulo Zanoni 提交于
      If I boot my Broadwell machine to X on a system with Mesa Gallium
      llvmpipe instead of i965, then kill X and try to run pm_pc8.c, when we
      disable PC8 and call gen6_update_ring_freq(), we will get stuck on an
      infinite loop because the frequencies are zero and the variables are
      unsigned. This happens because we never ran any batch, so we did not
      enable RC6, so the variables are zero. If I run gem_exec_nop before
      running pm_pc8, everything works as expected because gem_exec_nop
      makes RC6 be enabled.
      
      This commit should prevent the infinite loop, which IMHO is already a
      good reason to be merged, but it is not the proper fix to the "RC6 is
      not being enabled" problem.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4b28a1f3
    • M
      drm: Replace crtc fb with primary plane fb (v3) · f4510a27
      Matt Roper 提交于
      Now that CRTC's have a primary plane, there's no need to track the
      framebuffer in the CRTC.  Replace all references to the CRTC fb with the
      primary plane's fb.
      
      This patch was generated by the Coccinelle semantic patching tool using
      the following rules:
      
              @@ struct drm_crtc C; @@
              -   (C).fb
              +   C.primary->fb
      
              @@ struct drm_crtc *C; @@
              -   (C)->fb
              +   C->primary->fb
      
      v3: Generate patch via coccinelle.  Actual removal of crtc->fb has been
          moved to a subsequent patch.
      
      v2: Fixup several lingering crtc->fb instances that were missed in the
          first patch iteration.  [Rob Clark]
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      f4510a27
    • M
      drm/i915: Restrict plane loops to only operate on overlay planes (v2) · af2b653b
      Matt Roper 提交于
      Ensure that existing driver loops over all planes do not change behavior
      when we begin adding new types of planes (primary and cursor) to the DRM
      plane list in future patches.
      
      v2: Switch to using drm_for_each_legacy_plane()
      
      Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      af2b653b