Kconfig 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config QCOM_KGSL
  3. tristate "Qualcomm Technologies, Inc. 3D Graphics driver"
  4. depends on ARCH_QCOM
  5. depends on NVMEM_QCOM_QFPROM || QCOM_QFPROM
  6. select QCOM_MDT_LOADER
  7. select INTERVAL_TREE
  8. select TRACE_GPU_MEM
  9. help
  10. 3D graphics driver for the Adreno family of GPUs from QTI.
  11. Required to use hardware accelerated OpenGL, compute and Vulkan
  12. on QTI targets. This includes power management, memory management,
  13. and scheduling for the Adreno GPUs.
  14. config DEVFREQ_GOV_QCOM_ADRENO_TZ
  15. tristate "Qualcomm Technologies, Inc. GPU frequency governor"
  16. depends on PM_DEVFREQ
  17. help
  18. GPU frequency governor for the Adreno GPU. Sets the frequency
  19. using an "on demand" algorithm in conjunction with other
  20. components on Adreno platforms. This is not useful for non-Adreno
  21. devices.
  22. config DEVFREQ_GOV_QCOM_GPUBW_MON
  23. tristate "Qualcomm Technologies, Inc. GPU bandwidth governor"
  24. depends on DEVFREQ_GOV_QCOM_ADRENO_TZ
  25. help
  26. This governor works together with the Adreno GPU governor to
  27. select bus frequency votes using an "on-demand" algorithm.
  28. This governor will not be useful for non-Adreno based
  29. targets.
  30. config QCOM_KGSL_FENCE_TRACE
  31. bool "Enable built-in tracing for adreno fence timeouts"
  32. help
  33. A boolean flag used to create a KGSL-specific tracing instance
  34. under <tracefs>/tracing/instances/kgsl-fence that can be used
  35. for debugging timeouts for fences between KGSL-contexts and
  36. sync-point blocks. If unsure, say 'N' here.
  37. config QCOM_ADRENO_DEFAULT_GOVERNOR
  38. string "devfreq governor for the adreno core"
  39. default "msm-adreno-tz"
  40. config QCOM_KGSL_CORESIGHT
  41. bool "Enable coresight support for the Adreno GPU"
  42. depends on CORESIGHT
  43. default y
  44. help
  45. When enabled, the Adreno GPU is available as a source for Coresight
  46. data. On a6xx targets there are two sources available for the GX and
  47. CX domains respectively. Debug kernels should say 'Y' here.
  48. config QCOM_KGSL_IOCOHERENCY_DEFAULT
  49. bool "Enable I/O coherency on cached GPU memory by default"
  50. default y if ARCH_LAHAINA
  51. help
  52. Say 'Y' here to enable I/O cache coherency by default on targets that
  53. support hardware I/O coherency. If enabled all cached GPU memory
  54. will use I/O coherency regardless of the user flags. If not enabled
  55. the user can still selectively enable I/O coherency with a flag.
  56. config QCOM_KGSL_IDLE_TIMEOUT
  57. int
  58. default 80
  59. help
  60. GPU idle timeout for Adreno GPU. This value decides after how
  61. long the GPU will go into slumber. A higher value will mean that
  62. the GPU is powered ON for a longer duration which will have
  63. power costs.
  64. config QCOM_KGSL_CONTEXT_DEBUG
  65. bool "Log kgsl context information for all processes"
  66. help
  67. When enabled, total number of KGSL contexts, number of attached and
  68. detached contexts are dumped into kernel log for all the processes.
  69. This gives insight about the number of contexts held by each process.
  70. config QCOM_KGSL_SORT_POOL
  71. bool "Sort pool page list based on physical address"
  72. default y
  73. help
  74. When enabled, the pool page list is sorted based on physical
  75. addresses. This can be turned on for targets where better DDR
  76. efficiency is attained on accesses for adjacent memory.
  77. config QCOM_KGSL_QDSS_STM
  78. bool "Enable support for QDSS STM for Adreno GPU"
  79. depends on CORESIGHT
  80. help
  81. When enabled, the Adreno GPU QDSS STM support is enabled. GPU QDSS STM
  82. memory will be mapped to GPU and QDSS clock needed to access this memory
  83. is voted. Debug kernels should say 'Y' here.
  84. config QCOM_KGSL_USE_SHMEM
  85. bool "Enable using shmem for memory allocations"
  86. depends on SHMEM
  87. help
  88. Say 'Y' to enable using shmem for memory allocations. If enabled,
  89. there will be no support for the memory pools and higher order pages.
  90. But using shmem will help in making kgsl pages available for
  91. reclaiming.
  92. config QCOM_KGSL_PROCESS_RECLAIM
  93. bool "Make driver pages available for reclaim"
  94. select QCOM_KGSL_USE_SHMEM
  95. help
  96. Say 'Y' to make driver pages available for reclaiming. If enabled,
  97. shmem will be used for allocation. kgsl would know the process
  98. foreground/background activity through the sysfs entry exposed per
  99. process. Based on this kgsl can unpin given number of pages from
  100. background processes and make them available to the shrinker.
  101. config QCOM_KGSL_HIBERNATION
  102. bool "Enable Hibernation support in KGSL"
  103. depends on HIBERNATION
  104. help
  105. Say 'Y' to enable hibernation support in kgsl. If enabled, kgsl
  106. will register necessary power manager callbacks to support
  107. hibernation.