1. 12 12月, 2017 1 次提交
  2. 11 12月, 2017 1 次提交
  3. 09 5月, 2017 1 次提交
  4. 23 1月, 2017 1 次提交
  5. 07 1月, 2017 1 次提交
  6. 19 8月, 2016 1 次提交
  7. 13 6月, 2016 1 次提交
  8. 11 2月, 2016 1 次提交
  9. 10 2月, 2016 1 次提交
  10. 29 6月, 2015 1 次提交
  11. 26 6月, 2015 1 次提交
  12. 28 1月, 2015 1 次提交
    • C
      agp/intel: Serialise after GTT updates · 983d308c
      Chris Wilson 提交于
      An interesting bug occurs on Pineview through which the root cause is
      that the writes of the PTE values into the GTT is not serialised with
      subsequent memory access through the GTT (when using WC updates of the
      PTE values). This is despite there being a posting read after the GTT
      update. However, by changing the address of the posting read, the memory
      access is indeed serialised correctly.
      
      Whilst we are manipulating the memory barriers, we can remove the
      compiler :memory restraint on the intermediate PTE writes knowing that
      we explicitly perform a posting read afterwards.
      
      v2: Replace posting reads with explicit write memory barriers - in
      particular this is advantages in case of single page objects. Update
      comments to mention this issue is only with WC writes.
      
      Testcase: igt/gem_exec_big #pnv
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88191
      Tested-by: huax.lu@intel.com (v1)
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      983d308c
  13. 23 12月, 2014 1 次提交
  14. 19 9月, 2014 1 次提交
  15. 08 2月, 2014 1 次提交
    • P
      drivers/char: delete non-required instances of include <linux/init.h> · 4c020b03
      Paul Gortmaker 提交于
      None of these files are actually using any __init type directives
      and hence don't need to include <linux/init.h>.  Most are just a
      left over from __devinit and __cpuinit removal, or simply due to
      code getting copied from one driver to the next.
      
      Cc: David Airlie <airlied@linux.ie>
      Cc: Matt Mackall <mpm@selenic.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Corey Minyard <minyard@acm.org>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Peter Huewe <peterhuewe@gmx.de>
      Cc: Ashley Lai <ashley@ashleylai.com>
      Cc: Marcel Selhorst <tpmdd@selhorst.net>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4c020b03
  16. 08 1月, 2014 5 次提交
  17. 09 11月, 2013 1 次提交
    • V
      drm/i915: Make AGP support optional · 00fe639a
      Ville Syrjälä 提交于
      We only depend on the intel-gtt module for GTT frobbign on older gens.
      The intel_agp module is optional, except for UMS and some old XvMC
      userland on gen3. So make AGP support optional. As before, we will
      fail the i915 init for UMS and gen3 KMS the same as before if
      intel_agp isn't around.
      
      intel-gtt.c is left with a somewhat ugly ifdef mess, but I'm going
      to save that for a later cleaning.
      
      At least my gen2 still works with the patch and CONFIG_AGP=n.
      
      v2: Make i915 depend on X86 and PCI, and intel-gtt depend on PCI
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      00fe639a
  18. 20 2月, 2013 1 次提交
  19. 15 2月, 2013 1 次提交
  20. 31 1月, 2013 1 次提交
  21. 20 1月, 2013 4 次提交
    • B
      agp/intel: Add gma_bus_addr · e5c65377
      Ben Widawsky 提交于
      It is no longer used in the i915 code, so isolate it from the shared
      struct.
      
      This was originally part of:
      commit 0e275518f325418d559c05327775bff894b237f7
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Mon Jan 14 13:35:33 2013 -0800
      
          agp/intel: decouple more of the agp-i915 sharing
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      
      That commit had some other hunks which can't be used due to issues
      Daniel found in previous commits.
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: drop squash notice from the commit since it's imo ok to keep
      this one separate.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e5c65377
    • B
      drm/i915: Needs_dmar, not · 8d2e6308
      Ben Widawsky 提交于
      The reasoning behind our code taking two paths depending upon whether or
      not we may have been configured for IOMMU isn't clear to me. It should
      always be safe to use the pci mapping functions as they are designed to
      abstract the decision we were handling in i915.
      
      Aside from simpler code, removing another member for the intel_gtt
      struct is a nice motivation.
      
      I ran this by Chris, and he wasn't concerned about the extra kzalloc,
      and memory references vs. page_to_phys calculation in the case without
      IOMMU.
      
      v2: Update commit message
      
      v3: Remove needs_dmar addition from Zhenyu upstream
      
      This reverts (and then other stuff)
      commit 20652097
      Author: Zhenyu Wang <zhenyuw@linux.intel.com>
      Date:   Thu Dec 13 23:47:47 2012 +0800
      
          drm/i915: Fix missed needs_dmar setting
      
      Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> (v2)
      Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: Squash in follow-up fix to remove the bogus hunk which
      deleted the dma_mask configuration for gen6+.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8d2e6308
    • B
      drm/i915: Remove scratch page from shared · 9c61a32d
      Ben Widawsky 提交于
      We already had a mapping in both (minus the phys_addr in AGP).
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9c61a32d
    • B
      drm/i915: Cut out the infamous ILK w/a from AGP layer · a81cc00c
      Ben Widawsky 提交于
      And, move it to where the rest of the logic is.
      
      There is some slight functionality changes. There was extra paranoid
      checks in AGP code making sure we never do idle maps on gen2 parts. That
      was not duplicated as the simple PCI id check should do the right thing.
      
      v2: use IS_GEN5 && IS_MOBILE check instead. For now, this is the same as
      IS_IRONLAKE_M but is more future proof. The workaround docs hint that
      more than one platform may be effected, but we've never seen such a
      platform in the wild. (Rodrigo, Daniel)
      
      Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> (v1)
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a81cc00c
  22. 20 12月, 2012 1 次提交
  23. 12 11月, 2012 2 次提交
    • B
      drm/i915: Kill off now unused gen6+ AGP code · 009946f8
      Ben Widawsky 提交于
      v2: Accidently removed an ILK case in i9xx_setup (Nicely found by Chris)
      
      CC: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by [v1] : Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      009946f8
    • B
      drm/i915: Stop using AGP layer for GEN6+ · e76e9aeb
      Ben Widawsky 提交于
      As a quick hack we make the old intel_gtt structure mutable so we can
      fool a bunch of the existing code which depends on elements in that data
      structure. We can/should try to remove this in a subsequent patch.
      
      This should preserve the old gtt init behavior which upon writing these
      patches seems incorrect. The next patch will fix these things.
      
      The one exception is VLV which doesn't have the preserved flush control
      write behavior. Since we want to do that for all GEN6+ stuff, we'll
      handle that in a later patch. Mainstream VLV support doesn't actually
      exist yet anyway.
      
      v2: Update the comment to remove the "voodoo"
      Check that the last pte written matches what we readback
      
      v3: actually kill cache_level_to_agp_type since most of the flags will
      disappear in an upcoming patch
      
      v4: v3 was actually not what we wanted (Daniel)
      Make the ggtt bind assertions better and stricter (Chris)
      Fix some uncaught errors at gtt init (Chris)
      Some other random stuff that Chris wanted
      
      v5: check for i==0 in gen6_ggtt_bind_object to shut up gcc (Ben)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by [v4]: Chris Wilson <chris@chris-wilson.co.uk>
      [danvet: Make the cache_level -> agp_flags conversion for pre-gen6 a
      tad more robust by mapping everything != CACHE_NONE to the cached agp
      flag - we have a 1:1 uncached mapping, but different modes of
      cacheable (at least on later generations). Suggested by Chris Wilson.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e76e9aeb
  24. 12 10月, 2012 1 次提交
  25. 20 9月, 2012 2 次提交
    • C
      agp/intel: Use a write-combining map for updating PTEs · edef7e68
      Chris Wilson 提交于
      Rewriting the PTE entries using an WC mapping is roughly an order of
      magnitude faster than through the uncached mapping. This makes an
      observable difference on workloads that cycle through large numbers of
      buffers, for example Chromium using ShmPixmaps where virtually all the
      CPU time is currently spent rebinding the userptr.
      
      v2: Limit the WC mapping to older generations as we have observed that
      the TLB invalidation on SandyBridge+ is unreliable with WC updates.
      See i-g-t/tests/gem_gtt_cpu_tlb
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      edef7e68
    • C
      drm/i915: Replace the array of pages with a scatterlist · 9da3da66
      Chris Wilson 提交于
      Rather than have multiple data structures for describing our page layout
      in conjunction with the array of pages, we can migrate all users over to
      a scatterlist.
      
      One major advantage, other than unifying the page tracking structures,
      this offers is that we replace the vmalloc'ed array (which can be up to
      a megabyte in size) with a chain of individual pages which helps reduce
      memory pressure.
      
      The disadvantage is that we then do not have a simple array to iterate,
      or to access randomly. The common case for this is in the relocation
      processing, which will typically fit within a single scatterlist page
      and so be almost the same cost as the simple array. For iterating over
      the array, the extra function call could be optimised away, but in
      reality is an insignificant cost of either binding the pages, or
      performing the pwrite/pread.
      
      v2: Fix drm_clflush_sg() to not invoke wbinvd as well! And fix the
      trivial compile error from rebasing.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9da3da66
  26. 17 8月, 2012 1 次提交
  27. 07 8月, 2012 1 次提交
  28. 21 6月, 2012 2 次提交
  29. 13 6月, 2012 2 次提交