1. 05 Aug, 2013 36 commits
  2. 04 Aug, 2013 4 commits
    • Stéphane Marchesin's avatar
      b3ae96a8
    • Chris Wilson's avatar
      drm/i915: Use the same pte_encoding for ppgtt as for gtt · 08c45263
      Chris Wilson authored
      The PTE layouts are the same for both ppgtt and gtt, so we can simplify
      the setup for ppgtt by copying the encoding function pointer from gtt.
      This prevents bugs where we update one function pointer, but forget the
      other.
      
      For instance,
      
      commit 4d15c145
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Thu Jul 4 11:02:06 2013 -0700
      
          drm/i915: Use eLLC/LLC by default when available
      
      only extends the gtt to use eLLC/LLC cacheing and forgets to also update
      the ppgtt function pointer.
      
      v2: Actually mention the bug being fixed (Kenneth)
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarKenneth Graunke <kenneth@whitecape.org>
      Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      08c45263
    • Chris Wilson's avatar
      drm/i915: Squelch repeated reasoning for why FBC cannot be activated · 29ebf90f
      Chris Wilson authored
      Almost invariably the reason why FBC cannot be turned on is the same
      every time (disabled via parameter, too many pipes, pipe too large etc)
      as modesetting and framebuffer configuration changes less frequently
      than trying to enable FBC.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      29ebf90f
    • Daniel Vetter's avatar
      drm/i915: clean up crtc timings computation · 135c81b8
      Daniel Vetter authored
      In the old days of the crtc helpers we've only had the encoder and
      crtc ->mode_fixup callbacks. So when the lvds connector wanted to
      adjust the crtc timings it had to set a driver-private mode flag to
      tell the crtc mode fixup code to not overwrite them with the generic
      ones.
      
      When converting things to the new infrastructure I've kept the entire
      logic and only moved the flag to pipe_config->timings_set. But this
      logic is pretty tricky and already caused regressions:
      
      commit 21d8a475
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Fri Jul 12 08:07:30 2013 +0200
      
          drm/i915: fix pfit regression for non-autoscaled resolutions
      
      So take advantage of the flexibility our own modeset infrastructure
      affords us and prefill default crtc timings. This allows us to rip out
      ->timings_set. Note that we overwrite things again when retrying the
      pipe config computation due to bandwidth constraints to avoid bogus
      crtc timings if the encoder only does relative adjustments (which is
      how the pfit code works). Only a theoretical concern though since
      platforms where we retry (pch-split platforms) do not need
      adjustements (since only the old gmch pfit needs that). But let's
      better be safe than sorry.
      
      Since we now initialize the crtc timings before calling the
      encoder->compute_config functions the crtc initialization in the gmch
      pfit code is now redudant and so can be removed.
      
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Add a paragraph to the commit message to explain why we can
      ditch the crtc timings initialization call from the gmch pfit code, to
      answer a question from Rodrigo's review.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      135c81b8