1. 30 7月, 2018 2 次提交
  2. 20 2月, 2018 5 次提交
  3. 13 2月, 2018 1 次提交
  4. 11 1月, 2018 1 次提交
  5. 10 1月, 2018 2 次提交
  6. 28 10月, 2017 6 次提交
    • J
      drm/msm: Implement preemption for A5XX targets · b1fc2839
      Jordan Crouse 提交于
      Implement preemption for A5XX targets - this allows multiple
      ringbuffers for different priorities with automatic preemption
      of a lower priority ringbuffer if a higher one is ready.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      b1fc2839
    • J
      drm/msm: Support multiple ringbuffers · f97decac
      Jordan Crouse 提交于
      Add the infrastructure to support the idea of multiple ringbuffers.
      Assign each ringbuffer an id and use that as an index for the various
      ring specific operations.
      
      The biggest delta is to support legacy fences. Each fence gets its own
      sequence number but the legacy functions expect to use a unique integer.
      To handle this we return a unique identifier for each submission but
      map it to a specific ring/sequence under the covers. Newer users use
      a dma_fence pointer anyway so they don't care about the actual sequence
      ID or ring.
      
      The actual mechanics for multiple ringbuffers are very target specific
      so this code just allows for the possibility but still only defines
      one ringbuffer for each target family.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f97decac
    • J
      drm/msm: Move memptrs to msm_gpu · cd414f3d
      Jordan Crouse 提交于
      When we move to multiple ringbuffers we're going to store the data
      in the memptrs on a per-ring basis. In order to prepare for that
      move the current memptrs from the adreno namespace into msm_gpu.
      This is way cleaner and immediately lets us kill off some sub
      functions so there is much less cost later when we do move to
      per-ring structs.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      cd414f3d
    • R
      drm/msm/adreno: deal with linux-firmware fw paths · 2c41ef1b
      Rob Clark 提交于
      When firmware was added to linux-firmware, it was put in a qcom sub-
      directory, unlike what we'd been using before.  For a300_pfp.fw and
      a300_pm4.fw symlinks were created, but we'd prefer not to have to do
      this in the future.  So add support to look in both places when
      loading firmware.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      2c41ef1b
    • R
      drm/msm/adreno: split out helper to load fw · e8f3de96
      Rob Clark 提交于
      Prep work for the next patch.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      e8f3de96
    • R
      drm/msm/adreno: load gpu at probe/bind time · eec874ce
      Rob Clark 提交于
      Previously, in an effort to defer initializing the gpu until firmware
      was available (ie. rootfs mounted), the gpu was not loaded at when the
      subdevice was bound.  Which resulted that clks/etc were requested in a
      place that devm couldn't really help unwind if something failed.
      
      Instead move request_firmware() to gpu->hw_init() and construct the gpu
      earlier in adreno_bind().  To avoid the rest of the driver needing to
      be aware of a gpu that hasn't managed to load firmware and hw_init()
      yet, stash the gpu ptr in the adreno device's drvdata, and don't set
      priv->gpu() until hw_init() succeeds.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      eec874ce
  7. 23 8月, 2017 3 次提交
  8. 02 8月, 2017 7 次提交
  9. 17 6月, 2017 1 次提交
  10. 16 6月, 2017 4 次提交
    • R
      drm/msm: pass address-space to _get_iova() and friends · 8bdcd949
      Rob Clark 提交于
      No functional change, that will come later.  But this will make it
      easier to deal with dynamically created address spaces (ie. per-
      process pagetables for gpu).
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      8bdcd949
    • R
      drm/msm: fix locking inconsistency for gpu->hw_init() · cb1e3818
      Rob Clark 提交于
      Most, but not all, paths where calling the with struct_mutex held.  The
      fast-path in msm_gem_get_iova() (plus some sub-code-paths that only run
      the first time) was masking this issue.
      
      So lets just always hold struct_mutex for hw_init().  And sprinkle some
      WARN_ON()'s and might_lock() to avoid this sort of problem in the
      future.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      cb1e3818
    • J
      drm/msm: Remove idle function hook · e895c7bd
      Jordan Crouse 提交于
      There isn't any generic code that uses ->idle so remove it.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      e895c7bd
    • J
      drm/msm: gpu: Enable zap shader for A5XX · 7c65817e
      Jordan Crouse 提交于
      The A5XX GPU powers on in "secure" mode. In secure mode the GPU can
      only render to buffers that are marked as secure and inaccessible
      to the kernel and user through a series of hardware protections. In
      practice secure mode is used to draw things like a UI on a secure
      video frame.
      
      In order to switch out of secure mode the GPU executes a special
      shader that clears out the GMEM and other sensitve registers and
      then writes a register. Because the kernel can't be trusted the
      shader binary is signed and verified and programmed by the
      secure world. To do this we need to read the MDT header and the
      segments from the firmware location and put them in memory and
      present them for approval.
      
      For targets without secure support there is an out: if the
      secure world doesn't support secure then there are no hardware
      protections and we can freely write the SECVID_TRUST register from
      the CPU. We don't have 100% confidence that we can query the
      secure capabilities at run time but we have enough calls that
      need to go right to give us some confidence that we're at least doing
      something useful.
      
      Of course if we guess wrong you trigger a permissions violation
      which usually ends up in a system crash but thats a problem
      that shows up immediately.
      
      [v2: use child device per Bjorn]
      [v3: use generic MDT loader per Bjorn]
      [v4: use managed dma functions and ifdefs for the MDT loader]
      [v5: Add depends for QCOM_MDT_LOADER]
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Acked-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      [robclark: fix Kconfig to use select instead of depends + #if IS_ENABLED()]
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      7c65817e
  11. 08 4月, 2017 4 次提交
  12. 04 4月, 2017 2 次提交
  13. 07 2月, 2017 2 次提交