1. 20 6月, 2016 2 次提交
  2. 13 6月, 2016 2 次提交
    • A
      drm/i915: Support for pread/pwrite from/to non shmem backed objects · b50a5371
      Ankitprasad Sharma 提交于
      This patch adds support for extending the pread/pwrite functionality
      for objects not backed by shmem. The access will be made through
      gtt interface. This will cover objects backed by stolen memory as well
      as other non-shmem backed objects.
      
      v2: Drop locks around slow_user_access, prefault the pages before
      access (Chris)
      
      v3: Rebased to the latest drm-intel-nightly (Ankit)
      
      v4: Moved page base & offset calculations outside the copy loop,
      corrected data types for size and offset variables, corrected if-else
      braces format (Tvrtko/kerneldocs)
      
      v5: Enabled pread/pwrite for all non-shmem backed objects including
      without tiling restrictions (Ankit)
      
      v6: Using pwrite_fast for non-shmem backed objects as well (Chris)
      
      v7: Updated commit message, Renamed i915_gem_gtt_read to i915_gem_gtt_copy,
      added pwrite slow path for non-shmem backed objects (Chris/Tvrtko)
      
      v8: Updated v7 commit message, mutex unlock around pwrite slow path for
      non-shmem backed objects (Tvrtko)
      
      v9: Corrected check during pread_ioctl, to avoid shmem_pread being
      called for non-shmem backed objects (Tvrtko)
      
      v10: Moved the write_domain check to needs_clflush and tiling mode check
      to pwrite_fast (Chris)
      
      v11: Use pwrite_fast fallback for all objects (shmem and non-shmem backed),
      call fast_user_write regardless of pagefault in previous iteration
      
      v12: Use page-by-page copy for slow user access too (Chris)
      
      v13: Handled EFAULT, Avoid use of WARN_ON, put_fence only if whole obj
      pinned (Chris)
      
      v14: Corrected datatypes/initializations (Tvrtko)
      
      Testcase: igt/gem_stolen, igt/gem_pread, igt/gem_pwrite
      Signed-off-by: NAnkitprasad Sharma <ankitprasad.r.sharma@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1465548783-19712-1-git-send-email-ankitprasad.r.sharma@intel.com
      b50a5371
    • A
      drm/i915: Use insert_page for pwrite_fast · 4f1959ee
      Ankitprasad Sharma 提交于
      In pwrite_fast, map an object page by page if obj_ggtt_pin fails. First,
      we try a nonblocking pin for the whole object (since that is fastest if
      reused), then failing that we try to grab one page in the mappable
      aperture. It also allows us to handle objects larger than the mappable
      aperture (e.g. if we need to pwrite with vGPU restricting the aperture
      to a measely 8MiB or something like that).
      
      v2: Pin pages before starting pwrite, Combined duplicate loops (Chris)
      
      v3: Combined loops based on local patch by Chris (Chris)
      
      v4: Added i915 wrapper function for drm_mm_insert_node_in_range (Chris)
      
      v5: Renamed wrapper function for drm_mm_insert_node_in_range (Chris)
      
      v5: Added wrapper for drm_mm_remove_node() (Chris)
      
      v6: Added get_pages call before pinning the pages (Tvrtko)
      Added remove_mappable_node() wrapper for drm_mm_remove_node() (Chris)
      
      v7: Added size argument for insert_mappable_node (Tvrtko)
      
      v8: Do not put_pages after pwrite, do memset of node in the wrapper
      function (insert_mappable_node) (Chris)
      
      v9: Rebase (Ankit)
      Signed-off-by: NAnkitprasad Sharma <ankitprasad.r.sharma@intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      4f1959ee
  3. 07 6月, 2016 1 次提交
  4. 06 6月, 2016 1 次提交
  5. 24 5月, 2016 2 次提交
  6. 23 5月, 2016 5 次提交
  7. 20 5月, 2016 4 次提交
  8. 17 5月, 2016 1 次提交
  9. 14 5月, 2016 1 次提交
  10. 13 5月, 2016 2 次提交
  11. 11 5月, 2016 1 次提交
  12. 10 5月, 2016 1 次提交
    • V
      drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms · ac840ae5
      Ville Syrjälä 提交于
      Move the intel_enable_gtt() call to happen before we touch the GTT
      during resume. Right now it's done way too late. Before
      commit ebb7c78d ("agp/intel-gtt: Only register fake agp driver for gen1")
      it was actually done earlier on account of also getting called from
      the resume hook of the fake agp driver. With the fake agp driver
      no longer getting registered we must move the call up.
      
      The symptoms I've seen on my 830 machine include lowmem corruption,
      other kinds of memory corruption, and straight up hung machine during
      or just after resume. Not really sure what causes the memory corruption,
      but so far I've not seen any with this fix.
      
      I think we shouldn't really need to call this during init, but we have
      been doing that so I've decided to keep the call. However moving that
      call earlier could be prudent as well. Doing it right after the
      intel-gtt probe seems appropriate.
      
      Also tested this on 946gz,elk,ilk and all seemed quite happy with
      this change.
      
      v2: Reorder init_hw vs. enable_hw functions (Chris)
      
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: drm-intel-fixes@lists.freedesktop.org
      Fixes: ebb7c78d ("agp/intel-gtt: Only register fake agp driver for gen1")
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1462559755-353-1-git-send-email-ville.syrjala@linux.intel.comReviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      ac840ae5
  13. 09 5月, 2016 1 次提交
  14. 04 5月, 2016 1 次提交
  15. 30 4月, 2016 1 次提交
  16. 29 4月, 2016 1 次提交
  17. 28 4月, 2016 13 次提交