1. 05 11月, 2020 1 次提交
  2. 13 9月, 2020 2 次提交
  3. 23 8月, 2020 1 次提交
  4. 31 7月, 2020 2 次提交
  5. 19 5月, 2020 2 次提交
  6. 03 1月, 2020 1 次提交
  7. 05 11月, 2019 1 次提交
    • A
      drm/msm/adreno: Add support for Adreno 510 GPU · e20c9284
      AngeloGioacchino Del Regno 提交于
      The Adreno 510 GPU is a stripped version of the Adreno 5xx,
      found in low-end SoCs like 8x56 and 8x76, which has 256K of
      GMEM, with no GPMU nor ZAP.
      Also, since the Adreno 5xx part of this driver seems to be
      developed with high-end Adreno GPUs in mind, and since this
      is a lower end one, add a comment making clear which GPUs
      which support is not implemented yet is not using the GPMU
      related hw init code, so that future developers will not go
      crazy with that.
      
      By the way, the lower end Adreno GPUs with no GPMU are:
      A505/A506/A510 (usually no ZAP firmware)
      A508/A509/A512 (usually with ZAP firmware)
      Signed-off-by: NAngeloGioacchino Del Regno <kholk11@gmail.com>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      e20c9284
  8. 04 9月, 2019 1 次提交
  9. 19 6月, 2019 3 次提交
  10. 21 4月, 2019 1 次提交
    • J
      drm/msm/a6xx: Add zap shader load · abccb9fe
      Jordan Crouse 提交于
      The a6xx GPU powers on in secure mode which restricts what memory it can
      write to. To get out of secure mode the GPU driver can write to
      REG_A6XX_RBBM_SECVID_TRUST_CNTL but on targets that are "secure" that
      register region is blocked and writes will cause the system to go down.
      
      For those targets we need to execute a special sequence that involves
      loadinga special shader that clears the GPU registers and use a PM4
      sequence to pull the GPU out of secure. Add support for loading the zap
      shader and executing the secure sequence. For targets that do not support
      SCM or the specific SCM sequence this should fail and we would fall back
      to writing the register.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      abccb9fe
  11. 20 4月, 2019 1 次提交
  12. 12 12月, 2018 4 次提交
  13. 04 10月, 2018 1 次提交
  14. 11 8月, 2018 2 次提交
  15. 25 7月, 2018 2 次提交
  16. 04 5月, 2018 1 次提交
  17. 19 3月, 2018 1 次提交
    • A
      drm/msm: fix building without debugfs · 288e5c88
      Arnd Bergmann 提交于
      The adreno driver stopped building when CONFIG_DEBUGFS is disabled:
      
      drivers/gpu/drm/msm/adreno/adreno_device.c: In function 'adreno_load_gpu':
      drivers/gpu/drm/msm/adreno/adreno_device.c:153:16: error: 'const struct msm_gpu_funcs' has no member named 'debugfs_init'
        if (gpu->funcs->debugfs_init) {
                      ^~
      drivers/gpu/drm/msm/adreno/adreno_device.c:154:13: error: 'const struct msm_gpu_funcs' has no member named 'debugfs_init'
         gpu->funcs->debugfs_init(gpu, dev->primary);
                   ^~
      
      This adds an #ifdef around the code that references the hidden
      pointer.
      
      Fixes: 331dc0bc ("drm/msm: add a5xx specific debugfs")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      288e5c88
  18. 20 2月, 2018 3 次提交
  19. 10 1月, 2018 4 次提交
  20. 03 1月, 2018 1 次提交
  21. 14 12月, 2017 2 次提交
  22. 28 10月, 2017 1 次提交
    • 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
  23. 16 6月, 2017 2 次提交
    • 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: 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