1. 05 Jul, 2018 1 commit
    • Lucas Stach's avatar
      drm/etnaviv: bring back progress check in job timeout handler · 2c83a726
      Lucas Stach authored
      When the hangcheck handler was replaced by the DRM scheduler timeout
      handling we dropped the forward progress check, as this might allow
      clients to hog the GPU for a long time with a big job.
      
      It turns out that even reasonably well behaved clients like the
      Armada Xorg driver occasionally trip over the 500ms timeout. Bring
      back the forward progress check to get rid of the userspace regression.
      
      We would still like to fix userspace to submit smaller batches
      if possible, but that is for another day.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 6d7a20c0
      
       (drm/etnaviv: replace hangcheck with scheduler timeout)
      Reported-by: default avatarRussell King <linux@armlinux.org.uk>
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      2c83a726
  2. 18 May, 2018 2 commits
  3. 09 Mar, 2018 4 commits
  4. 12 Feb, 2018 4 commits
  5. 02 Jan, 2018 4 commits
  6. 10 Oct, 2017 3 commits
  7. 05 May, 2017 1 commit
    • Lucas Stach's avatar
      drm/etnaviv: implement cooling support for new GPU cores · d79fd1cc
      Lucas Stach authored
      
      
      GPU cores with the DYNAMIC_FREQUENCY_SCALING feature bit set expect the
      platform to provide the clock scaling and ignore any requests to use the
      internal FSCALE divider. Writes to this register still work, but don't
      have any effect on the GPU clock frequency.
      
      Save the initial core and shader clock frequency and ask the platform
      to provide a slower clock when cooling is requested.
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      d79fd1cc
  8. 29 Mar, 2017 2 commits
  9. 02 Feb, 2017 2 commits
    • Lucas Stach's avatar
      drm/etnaviv: add cmdbuf suballocator · e66774dd
      Lucas Stach authored
      
      
      There are 3 big benefits to suballocating a single big DMA buffer
      for command submission:
      
      1. Avoid hammering CMA. The old way of allocating and freeing a DMA
         buffer for each submission was hitting some of the real slow
         pathes in CMA, as this allocator was not designed for a concurrent
         small buffers load.
      
      2. Less TLB flushes on IOMMUv2. If a new command buffer is mapped into
         the GPU address space the MMU TLBs need to be flushed. By having
         one big buffer statically mapped to the GPU, a lot of those flushes
         can be avoided.
      
      3. No funky workarounds for GC3000. The FE TLB flush on GC3000 isn't
         reliable. To work around that we tried to lay out the cmdbufs in
         the GPU address space in a way to avoid this issue. This hasn't
         always worked if the address space is crowded. A single statically
         mapped buffer avoids the erratum completely.
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      e66774dd
    • Lucas Stach's avatar
      drm/etnaviv: move cmdbuf de-/allocation into own file · ea1f5729
      Lucas Stach authored
      
      
      This will get more complex with the following changes, so move it
      into its own place.
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      ea1f5729
  10. 25 Oct, 2016 1 commit
    • Chris Wilson's avatar
      dma-buf: Rename struct fence to dma_fence · f54d1867
      Chris Wilson authored
      I plan to usurp the short name of struct fence for a core kernel struct,
      and so I need to rename the specialised fence/timeline for DMA
      operations to make room.
      
      A consensus was reached in
      https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html
      
      
      that making clear this fence applies to DMA operations was a good thing.
      Since then the patch has grown a bit as usage increases, so hopefully it
      remains a good thing!
      
      (v2...: rebase, rerun spatch)
      v3: Compile on msm, spotted a manual fixup that I broke.
      v4: Try again for msm, sorry Daniel
      
      coccinelle script:
      @@
      
      @@
      - struct fence
      + struct dma_fence
      @@
      
      @@
      - struct fence_ops
      + struct dma_fence_ops
      @@
      
      @@
      - struct fence_cb
      + struct dma_fence_cb
      @@
      
      @@
      - struct fence_array
      + struct dma_fence_array
      @@
      
      @@
      - enum fence_flag_bits
      + enum dma_fence_flag_bits
      @@
      
      @@
      (
      - fence_init
      + dma_fence_init
      |
      - fence_release
      + dma_fence_release
      |
      - fence_free
      + dma_fence_free
      |
      - fence_get
      + dma_fence_get
      |
      - fence_get_rcu
      + dma_fence_get_rcu
      |
      - fence_put
      + dma_fence_put
      |
      - fence_signal
      + dma_fence_signal
      |
      - fence_signal_locked
      + dma_fence_signal_locked
      |
      - fence_default_wait
      + dma_fence_default_wait
      |
      - fence_add_callback
      + dma_fence_add_callback
      |
      - fence_remove_callback
      + dma_fence_remove_callback
      |
      - fence_enable_sw_signaling
      + dma_fence_enable_sw_signaling
      |
      - fence_is_signaled_locked
      + dma_fence_is_signaled_locked
      |
      - fence_is_signaled
      + dma_fence_is_signaled
      |
      - fence_is_later
      + dma_fence_is_later
      |
      - fence_later
      + dma_fence_later
      |
      - fence_wait_timeout
      + dma_fence_wait_timeout
      |
      - fence_wait_any_timeout
      + dma_fence_wait_any_timeout
      |
      - fence_wait
      + dma_fence_wait
      |
      - fence_context_alloc
      + dma_fence_context_alloc
      |
      - fence_array_create
      + dma_fence_array_create
      |
      - to_fence_array
      + to_dma_fence_array
      |
      - fence_is_array
      + dma_fence_is_array
      |
      - trace_fence_emit
      + trace_dma_fence_emit
      |
      - FENCE_TRACE
      + DMA_FENCE_TRACE
      |
      - FENCE_WARN
      + DMA_FENCE_WARN
      |
      - FENCE_ERR
      + DMA_FENCE_ERR
      )
       (
       ...
       )
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Acked-by: default avatarSumit Semwal <sumit.semwal@linaro.org>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
      f54d1867
  11. 15 Sep, 2016 3 commits
  12. 02 Jun, 2016 1 commit
  13. 07 Mar, 2016 2 commits
  14. 26 Jan, 2016 1 commit
  15. 15 Dec, 2015 1 commit