Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rebase commits from rk-6.1-rk1 to rk-6.1-rkr3 #200

Merged
merged 249 commits into from
Jul 18, 2024

Commits on Jul 1, 2024

  1. scripts: install dtbo files to kernel packages

    Signed-off-by: Stephen Chen <[email protected]>
    RadxaStephen authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    4e2f623 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5a209b8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5ac7ae2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    28ba801 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f4860c2 View commit details
    Browse the repository at this point in the history
  6. input: touchscreen: add Raspberry Pi touchscreen IC FT5426 driver

    Signed-off-by: Stephen Chen <[email protected]>
    RadxaStephen authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8cba6c5 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2b808ee View commit details
    Browse the repository at this point in the history
  8. drm: panel: add radxa display 8hd panel

    Signed-off-by: Stephen Chen <[email protected]>
    RadxaStephen authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    5a3c86c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c48dfdb View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0ff98cd View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    13d77b3 View commit details
    Browse the repository at this point in the history
  12. cma: Enable reserved-memory on orangepi5

    Signed-off-by: Zhang Rui <[email protected]>
    autoexpect authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    a277872 View commit details
    Browse the repository at this point in the history
  13. mekotronics: stmmac: hack LED_FIX

    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3c4008c View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    b939c10 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    3f42cf5 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    6be2302 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    727a069 View commit details
    Browse the repository at this point in the history
  18. arm64: dts: Add device trees for NanoPi R6S and R6C

    arm64: dts: Add device trees for NanoPi R6S and R6C
    
    arm64: dts: Add device trees for NanoPi R6S and R6C
    
    arm64: dts: Add device trees for NanoPi R6S and R6C
    efectn authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    e7dbe36 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    24bad6c View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    7f6f60c View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    92a0fab View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    bf4cca6 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    6ebc6bc View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    dcf63d6 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    36d2b16 View commit details
    Browse the repository at this point in the history
  26. arm64: dts: Reduce DMC upthreshold

    efectn authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    50388c8 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    937ba96 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    3b415ef View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    b07774a View commit details
    Browse the repository at this point in the history
  30. khadas: arm64: dts: khadas edge 2 [rpardini rework]

    - rework:
      - rk3588-rk806-single-khadas.dtsi instead of hacking common dtsi
      - arm64: dts: rk3588s-khadas-edge2: remove chosen node
      - drop useless nvr-demo / chosen-thingy dtsi
    - squashed, scripts/packaging/etc removed, grouped by directory
    - source
      - https://github.com/khadas/linux/commits/khadas-edges-5.10.y
      - khadas/linux@85a8b25
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    d843b7d View commit details
    Browse the repository at this point in the history
  31. khadas: drivers/watchdog

    - squashed, scripts/packaging/etc removed, grouped by directory
    - source
      - https://github.com/khadas/linux/commits/khadas-edges-5.10.y
      - khadas/linux@85a8b25
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    eeb5eef View commit details
    Browse the repository at this point in the history
  32. khadas: drivers/net

    - squashed, scripts/packaging/etc removed, grouped by directory
    - source
      - https://github.com/khadas/linux/commits/khadas-edges-5.10.y
      - khadas/linux@85a8b25
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3866258 View commit details
    Browse the repository at this point in the history
  33. khadas: drivers/usb/core

    - squashed, scripts/packaging/etc removed, grouped by directory
    - source
      - https://github.com/khadas/linux/commits/khadas-edges-5.10.y
      - khadas/linux@85a8b25
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    587e9c8 View commit details
    Browse the repository at this point in the history
  34. khadas: drivers/leds

    - squashed, scripts/packaging/etc removed, grouped by directory
    - source
      - https://github.com/khadas/linux/commits/khadas-edges-5.10.y
      - khadas/linux@85a8b25
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8d04eb3 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    261a6ef View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    df2acb0 View commit details
    Browse the repository at this point in the history
  37. arm64: dts: rk3588: swap cursor and display plane

    Signed-off-by: ZHANG Yuntian <[email protected]>
    RadxaYuntian authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    87ecf04 View commit details
    Browse the repository at this point in the history
  38. amr64: dts: rock 5b: enable usb wakeup

    Signed-off-by: Feng Zhang <[email protected]>
    vamrs-feng authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    bf9db89 View commit details
    Browse the repository at this point in the history
  39. arm64: dts: rock 5b: es8316 uses multicodecs card driver

    Signed-off-by: Feng Zhang <[email protected]>
    vamrs-feng authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    460e8c6 View commit details
    Browse the repository at this point in the history
  40. arm64: dts: rock 5b: move display configuration to overlay

    Signed-off-by: Alvin Xie <[email protected]>
    Radxa-Alvin authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    f800aa6 View commit details
    Browse the repository at this point in the history
  41. arm64: dts: rock 5b: move camera configuration to overlay

    Signed-off-by: Alvin Xie <[email protected]>
    Radxa-Alvin authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    68fcebf View commit details
    Browse the repository at this point in the history
  42. add radxa rock 5b gpiod label support

    Signed-off-by: nascs <[email protected]>
    nascs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    1e3e70a View commit details
    Browse the repository at this point in the history
  43. arm64: dts: rock 5b: update user leds configuration

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    c131296 View commit details
    Browse the repository at this point in the history
  44. arm64: dts: rock 5b: use broadcom bluetooth protocol

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    2dc6caf View commit details
    Browse the repository at this point in the history
  45. fix hdmi cec

    amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    22e34a1 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    518d1d4 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    11e5cbb View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    f72ba28 View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    2d9aa49 View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    eb6bed7 View commit details
    Browse the repository at this point in the history
  51. usb: typec: tcpm: add devicetree property faster-pd-negotiation to ma…

    …ke pd negotiation faster
    amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    80d424d View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    5174eb7 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    2d1516f View commit details
    Browse the repository at this point in the history
  54. arm64: dts: NanoPC-T6: Enable onboard pwm-fan node

    Signed-off-by: Molly Sophia <[email protected]>
    MollySophia authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    52650ea View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    62ca5b2 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    a8c3087 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    99ff1ac View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    28af0f9 View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    712e746 View commit details
    Browse the repository at this point in the history
  60. arm64: dts: Add overlays to Makefile and remove unnecessary ROCK4 ove…

    …rlays
    
    arm64: dts: Add overlays to Makefile and remove unnecessary ROCK4 overlays
    efectn authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    cf50bb5 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    fb5e75f View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    3310e90 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    0a42d20 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    f09a508 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    7f91e8f View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    ce424db View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    25903fc View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    331fbfb View commit details
    Browse the repository at this point in the history
  69. Enable HS400ES on Rock 5B

    ginkage authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    4a8dba5 View commit details
    Browse the repository at this point in the history
  70. Enable HS400ES on Rock 5A

    ginkage authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    4e08fd7 View commit details
    Browse the repository at this point in the history
  71. arm64: dts: add opi5b device tree again

    * arm64: dts: add opi5b device tree and disable sfc node
    
    * arm64: dts: enable sdhci node only for opi5b
    
    * arm64: dts: opi5: fix sdhci disabled typo
    
    * arm64: dts: opi5b: fix compile error
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    a013175 View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    affc531 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    962b741 View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    72cbc36 View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    6d8e287 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    190c451 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    6fce9ad View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    26c2468 View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    0dbae17 View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    0860df6 View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    c028434 View commit details
    Browse the repository at this point in the history
  82. sound: rockchip: fix dp sound issue

    Signed-off-by: Nick Xie <[email protected]>
    Change-Id: I465e68bb493ad4c403883c2b7117976a1dfcf1d9
    numbqq authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    326d9ee View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    0576f51 View commit details
    Browse the repository at this point in the history
  84. Store caches at this repository

    * Update compile.yaml
    
    * Update compile.yaml
    
    * Update compile.yaml
    
    * Update compile.yaml
    igorpecovnik authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    1cad54e View commit details
    Browse the repository at this point in the history
  85. Add workflow_dispatch trigger

    igorpecovnik authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    c9d0d0d View commit details
    Browse the repository at this point in the history
  86. Switch away from organisation

    igorpecovnik authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    eff85f0 View commit details
    Browse the repository at this point in the history
  87. Configuration menu
    Copy the full SHA
    21d982d View commit details
    Browse the repository at this point in the history
  88. Configuration menu
    Copy the full SHA
    4ed0429 View commit details
    Browse the repository at this point in the history
  89. media: rockchip: hdmirx: hdmirx_audio_startup always return 0 PulseAu…

    …dio would fail to load alsa card if hdmirx_audio_startup return error
    amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    288f7e4 View commit details
    Browse the repository at this point in the history
  90. Configuration menu
    Copy the full SHA
    406ee3b View commit details
    Browse the repository at this point in the history
  91. Upload build artefacts

    igorpecovnik authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    ee14da9 View commit details
    Browse the repository at this point in the history
  92. Configuration menu
    Copy the full SHA
    053288b View commit details
    Browse the repository at this point in the history
  93. Configuration menu
    Copy the full SHA
    0dac63c View commit details
    Browse the repository at this point in the history
  94. meko: remove silly indentation changes; bring back amazingfate's hdmi…

    …in-sound changes in the v10
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    b09d966 View commit details
    Browse the repository at this point in the history
  95. meko: vk2c21 LCD driver for the R58X-PRO

    - from `blueberry_edge_patch_230617` from vendor
    - fixed Chinese GB18030 encoding
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    f68b181 View commit details
    Browse the repository at this point in the history
  96. meko: add new DTs to Makefile

    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    0dc8ba2 View commit details
    Browse the repository at this point in the history
  97. meko: es8311: v10, preserve "arm64: dts: rockchip: rk3588: Use mclkou…

    …t_i2sx" from 005807f
    
    - v12 from vendor already has the same change
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    1709d97 View commit details
    Browse the repository at this point in the history
  98. meko: v12 MeiZhuo: drop DP changes from vendor

    - keep only LCD & GPIO keys
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    91887e5 View commit details
    Browse the repository at this point in the history
  99. Configuration menu
    Copy the full SHA
    15ea1eb View commit details
    Browse the repository at this point in the history
  100. Configuration menu
    Copy the full SHA
    dd04c69 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    21592e8 View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    ac96b3e View commit details
    Browse the repository at this point in the history
  103. Configuration menu
    Copy the full SHA
    b769b90 View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    91ad37b View commit details
    Browse the repository at this point in the history
  105. Configuration menu
    Copy the full SHA
    53e95c9 View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    62d33bf View commit details
    Browse the repository at this point in the history
  107. Configuration menu
    Copy the full SHA
    8d045ba View commit details
    Browse the repository at this point in the history
  108. Configuration menu
    Copy the full SHA
    3790233 View commit details
    Browse the repository at this point in the history
  109. arm64: dts: cm5: add at24c16

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    902e71b View commit details
    Browse the repository at this point in the history
  110. arm64: dts: cm5 io: add user led

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    76b82f6 View commit details
    Browse the repository at this point in the history
  111. arm64: dts: cm5 io: change i2c7m0 to i2c8m2 for es8316

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    6aad877 View commit details
    Browse the repository at this point in the history
  112. Configuration menu
    Copy the full SHA
    c280781 View commit details
    Browse the repository at this point in the history
  113. Configuration menu
    Copy the full SHA
    0113e5e View commit details
    Browse the repository at this point in the history
  114. Configuration menu
    Copy the full SHA
    a802c49 View commit details
    Browse the repository at this point in the history
  115. Configuration menu
    Copy the full SHA
    36d7529 View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    3fec309 View commit details
    Browse the repository at this point in the history
  117. Configuration menu
    Copy the full SHA
    507d14f View commit details
    Browse the repository at this point in the history
  118. add fxblox-rk1 board dts

    mahdichi authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    c8b06c9 View commit details
    Browse the repository at this point in the history
  119. Configuration menu
    Copy the full SHA
    bf5c0ae View commit details
    Browse the repository at this point in the history
  120. Configuration menu
    Copy the full SHA
    119d77e View commit details
    Browse the repository at this point in the history
  121. Configuration menu
    Copy the full SHA
    3326ee2 View commit details
    Browse the repository at this point in the history
  122. Configuration menu
    Copy the full SHA
    7864340 View commit details
    Browse the repository at this point in the history
  123. Revert "net: wireless: rockchip_wlan: bcmdhd: Enable CONFIG_BCMDHD_RE…

    …QUEST_FW"
    
    This reverts commit 1659a56.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    59b8d7f View commit details
    Browse the repository at this point in the history
  124. Configuration menu
    Copy the full SHA
    3f6abea View commit details
    Browse the repository at this point in the history
  125. arm64: dts: Add device tree for ArmSoM-w3

    jack authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    eddf576 View commit details
    Browse the repository at this point in the history
  126. Configuration menu
    Copy the full SHA
    7895a18 View commit details
    Browse the repository at this point in the history
  127. arm64: dts: odroid-m1: add ODROID-M1 dt from 4.19 vendor sources

    - taken from https://github.com/hardkernel/linux/tree/odroidm1-4.19.y sha1 89b88ec44cb98ec17b8460cc3c0127fcb1f7b159
    - added the infamous delete chosen
    - moved stuff HK did to common rk3568-linux.dtsi to their own dtsi
    - change `RK_GPIO0` -> `0`
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    06eccc6 View commit details
    Browse the repository at this point in the history
  128. arm64: dts: odroid-m1: add vp0 and gpu props for panfrost

    - suggested by amazingfate
    - from way back in February; armbian/build#4794 (comment)
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    6d569ea View commit details
    Browse the repository at this point in the history
  129. Configuration menu
    Copy the full SHA
    45e505d View commit details
    Browse the repository at this point in the history
  130. Configuration menu
    Copy the full SHA
    498f874 View commit details
    Browse the repository at this point in the history
  131. Configuration menu
    Copy the full SHA
    e14250d View commit details
    Browse the repository at this point in the history
  132. Configuration menu
    Copy the full SHA
    7a72c5d View commit details
    Browse the repository at this point in the history
  133. Configuration menu
    Copy the full SHA
    92f6c80 View commit details
    Browse the repository at this point in the history
  134. Configuration menu
    Copy the full SHA
    9fb6b1a View commit details
    Browse the repository at this point in the history
  135. Configuration menu
    Copy the full SHA
    0d4f5d5 View commit details
    Browse the repository at this point in the history
  136. Configuration menu
    Copy the full SHA
    12856d6 View commit details
    Browse the repository at this point in the history
  137. video: rockchip: rga3: fix 10b compact in win0/1 cannot be changed fr…

    …om user space
    
    Signed-off-by: nyanmisaka <[email protected]>
    nyanmisaka authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    07a56db View commit details
    Browse the repository at this point in the history
  138. add h28k dts

    sputnik2019 authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3b0faa3 View commit details
    Browse the repository at this point in the history
  139. Revert "arm64: dts: rockchip: add GPIO nodes for NanoPi R6 and NanoPC…

    … T6"
    
    This reverts commit a3b4862.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    546be99 View commit details
    Browse the repository at this point in the history
  140. Configuration menu
    Copy the full SHA
    620b9c8 View commit details
    Browse the repository at this point in the history
  141. Configuration menu
    Copy the full SHA
    00c07eb View commit details
    Browse the repository at this point in the history
  142. arm64: dts: Add support for YY3568

    efectn authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8eff030 View commit details
    Browse the repository at this point in the history
  143. Add several overlays for YY3568

    efectn authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3a82eb1 View commit details
    Browse the repository at this point in the history
  144. arm64: dts: mekotronics: enable avsd; add missing sound-dai-cells to …

    …v12's hdmirx_ctrler
    
    - source: vendor drop `blueberry_edge_patch_230810`
    rpardini authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    da2882d View commit details
    Browse the repository at this point in the history
  145. Configuration menu
    Copy the full SHA
    bb0e8b6 View commit details
    Browse the repository at this point in the history
  146. Configuration menu
    Copy the full SHA
    91adb58 View commit details
    Browse the repository at this point in the history
  147. video: rockchip: rga3: fix compatibility with legacy global alpha config

    Fixes a typo in 7291693, which broke compatibility with librga API 1.9.x
    and older when using DST over blend/composite and premultiplied alpha.
    
    Signed-off-by: nyanmisaka <[email protected]>
    nyanmisaka authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    b2251fc View commit details
    Browse the repository at this point in the history
  148. Configuration menu
    Copy the full SHA
    24b3a09 View commit details
    Browse the repository at this point in the history
  149. arm64: dts: rk3588-armsom-w3.dts detele chosen

    jack authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    c718101 View commit details
    Browse the repository at this point in the history
  150. arm64: dts: turing-rk1: configure extcon attribute

    Configure the extcon attribute to support software
    switching Device/Host mode.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    ccef2e2 View commit details
    Browse the repository at this point in the history
  151. arm64: dts: move status led configuration to radxa cm5

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    32df73e View commit details
    Browse the repository at this point in the history
  152. arm64: dts: cm5 io: add dp sound

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    69e4f91 View commit details
    Browse the repository at this point in the history
  153. arm64: dts: cm5 io: modify vcc5v0_host gpio

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    85a9d3a View commit details
    Browse the repository at this point in the history
  154. arm64: dts: delete duplicate gpio-leds nodes

    The gpio-leds node is defined in cm5 dtsi
    
    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    0a555cf View commit details
    Browse the repository at this point in the history
  155. arm64: dts: turing-rk1: use HS200 mode for eMMC

    On the production RK1 boards a new eMMC chip was selected,
    for some reason it causes I/O errors when writing data to
    the eMMC. So for now we need to use HS200 mode to avoid
    this issue.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    92f95c9 View commit details
    Browse the repository at this point in the history
  156. Configuration menu
    Copy the full SHA
    8d74ac1 View commit details
    Browse the repository at this point in the history
  157. arm64: dts: turing-rk1: add usb pinctrl and missing regulators

    - Fixes usb causing a kernel panic when rebooting the system
    - Add missing regulators from rk3588-evb7-lp4-v10-linux.dts
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    458eb65 View commit details
    Browse the repository at this point in the history
  158. Configuration menu
    Copy the full SHA
    c51b681 View commit details
    Browse the repository at this point in the history
  159. Revert "arm64: dts: turing-rk1: use HS200 mode for eMMC"

    This reverts commit dc9ef48.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fcde64f View commit details
    Browse the repository at this point in the history
  160. Configuration menu
    Copy the full SHA
    bf98a76 View commit details
    Browse the repository at this point in the history
  161. Configuration menu
    Copy the full SHA
    0d9a995 View commit details
    Browse the repository at this point in the history
  162. Configuration menu
    Copy the full SHA
    5ae2877 View commit details
    Browse the repository at this point in the history
  163. Configuration menu
    Copy the full SHA
    bb91a00 View commit details
    Browse the repository at this point in the history
  164. Configuration menu
    Copy the full SHA
    8933efa View commit details
    Browse the repository at this point in the history
  165. Configuration menu
    Copy the full SHA
    7649460 View commit details
    Browse the repository at this point in the history
  166. Configuration menu
    Copy the full SHA
    530fc11 View commit details
    Browse the repository at this point in the history
  167. add hinlink ht2 dts

    hoochiwetech authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    62035ee View commit details
    Browse the repository at this point in the history
  168. Configuration menu
    Copy the full SHA
    c452291 View commit details
    Browse the repository at this point in the history
  169. Configuration menu
    Copy the full SHA
    364e3a4 View commit details
    Browse the repository at this point in the history
  170. arm64: dts: add rock 5 itx

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8073409 View commit details
    Browse the repository at this point in the history
  171. Configuration menu
    Copy the full SHA
    8735545 View commit details
    Browse the repository at this point in the history
  172. Configuration menu
    Copy the full SHA
    aa70d97 View commit details
    Browse the repository at this point in the history
  173. Configuration menu
    Copy the full SHA
    720dbe8 View commit details
    Browse the repository at this point in the history
  174. Add armsom-sige7 device tree

    Z-Keven authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    42c2c6a View commit details
    Browse the repository at this point in the history
  175. Configuration menu
    Copy the full SHA
    8bcc886 View commit details
    Browse the repository at this point in the history
  176. Configuration menu
    Copy the full SHA
    095379d View commit details
    Browse the repository at this point in the history
  177. arm64: dts: rk3588-fxblox-rk1: add edp and user leds (armbian#134)

    * rk3588-fxblox-rk1a dd edp and user leds to dts
    
    * Update rk3588-fxblox-rk1.dts
    mahdichi authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3ba82e1 View commit details
    Browse the repository at this point in the history
  178. Configuration menu
    Copy the full SHA
    a1745ee View commit details
    Browse the repository at this point in the history
  179. add mangopi m28k dts

    sputnik2019 authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    06366ce View commit details
    Browse the repository at this point in the history
  180. Configuration menu
    Copy the full SHA
    1ab51dd View commit details
    Browse the repository at this point in the history
  181. Configuration menu
    Copy the full SHA
    02e48d5 View commit details
    Browse the repository at this point in the history
  182. Added device tree overlays files for armsom-sige7 board: camera-imx41…

    …5-4k.dtbo and display-10hd.dtbo
    Z-Keven authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    b730420 View commit details
    Browse the repository at this point in the history
  183. Configuration menu
    Copy the full SHA
    9678ca7 View commit details
    Browse the repository at this point in the history
  184. Configuration menu
    Copy the full SHA
    5de846f View commit details
    Browse the repository at this point in the history
  185. arm64: dts: rock-5a: pull down data-strobe to fix emmc compatibility

    Pull down the emmc-data-strobe to fix some emmc compatibility.
    nyanmisaka authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    397a627 View commit details
    Browse the repository at this point in the history
  186. arm64: dts: rockchip: Radxa ROCK 5 ITX DTS patch (armbian#146)

    * arm64: dts: rock 5 itx: add power led and user led
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock 5 itx: modify vbus5v0_typec enable gpio
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock 5 itx: add pwm-fan node
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock 5 itx: modify bt gpio pinctrl
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock 5 itx: modify dp sound card name
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock5 itx: remove useless node
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock5 itx: add hdmi0_phy_pll
    
    Fix dp0 display abnormality when hdmi1 and dp0 are displayed at the same
    time.
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock 5 itx: modify hp_det pinctrl pull down
    
    Since F_AUDIO's headphones don't have a detect pin, force the detect pin low.
    
    Signed-off-by: Ken Wang <[email protected]>
    
    * arm64: dts: rock5itx: enable vdd_0v75_s0 when suspend
    
    Fix automatic wakeup after suspend.
    
    Signed-off-by: Ken Wang <[email protected]>
    
    ---------
    
    Signed-off-by: Ken Wang <[email protected]>
    Co-authored-by: Ken Wang <[email protected]>
    2 people authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    30df35e View commit details
    Browse the repository at this point in the history
  187. Configuration menu
    Copy the full SHA
    e512fd4 View commit details
    Browse the repository at this point in the history
  188. Configuration menu
    Copy the full SHA
    a41dbc3 View commit details
    Browse the repository at this point in the history
  189. Update armsom-sige7 device tree

    Z-Keven authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    a5732a8 View commit details
    Browse the repository at this point in the history
  190. Configuration menu
    Copy the full SHA
    225e11e View commit details
    Browse the repository at this point in the history
  191. drm: Allow DRM_IOCTL_MODE_CREATE_DUMB on render nodes

    Due to a change in Mesa, the render node ends up being picked
    instead of the primary node when using Exynos DRM kmsro. In turn,
    this results in that dumb buffers cannot be allocated with
    DRM_IOCTL_MODE_CREATE_DUMB, so many applications crash. This works
    around that by allowing dumb buffers to be created by render nodes.
    
    Mesa issue: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5510
    Newbytee authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    5ce6552 View commit details
    Browse the repository at this point in the history
  192. Configuration menu
    Copy the full SHA
    f0e0f65 View commit details
    Browse the repository at this point in the history
  193. Revert "MALI: rockchip: upgrade bifrost DDK to g21p0-01eac0, from g18…

    …p0-01eac0"
    
    This reverts commit b72fff5.
    Joshua-Riek authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    e0a96f4 View commit details
    Browse the repository at this point in the history
  194. Configuration menu
    Copy the full SHA
    657d7e2 View commit details
    Browse the repository at this point in the history
  195. arm64: dts: nanopi-6-common: Add several features based on vendor dtsi

    https://github.com/friendlyarm/kernel-rockchip/
    The following commits from the vendor dtsi file have been used:
    
    ARM64: dts: rockchip: enable crypto node for nanopi5/6
    Signed-off-by: jensen <[email protected]>
    
    arm64: dts: rockchip: update ir-key-table for nanopi6
    Signed-off-by: jensen <[email protected]>
    
    ARM64: dts: rockchip: apply the EVB changes to nanopi5/6
    Signed-off-by: jensen <[email protected]>
    
    ARM64: dts: rockchip: enable watchdog for nanopi5/6
    Signed-off-by: jensen <[email protected]>
    
    Some documentation for the watchdog can be found here:
    https://wiki.t-firefly.com/en/ROC-RK3588-PC/usage_watchdog.html
    
    Watchdog and crypto has been successfully tested on CM3588.
    ColorfulRhino authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3dc8290 View commit details
    Browse the repository at this point in the history
  196. arm64: dts: Add support for FriendlyElec CM3588

    Tested and working:
    
    - all 4 NVMe port, including their respective activity LEDs (NVMe tested with hdparm)
    - HDMI 4k@60 (tested with Gnome desktop), more will likely work too
    - LAN
    - 2xUSB3, 1xUSB2 (USB-C and OTG/DP mode untested)
    - hardware buttons (power, reset)
    - hardware acceleration for video encoding/decoding (tested with jellyfin-ffmpeg6)
    ColorfulRhino authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    f4fdaff View commit details
    Browse the repository at this point in the history
  197. Configuration menu
    Copy the full SHA
    59ce87e View commit details
    Browse the repository at this point in the history
  198. Configuration menu
    Copy the full SHA
    f818e0c View commit details
    Browse the repository at this point in the history
  199. Configuration menu
    Copy the full SHA
    832dca9 View commit details
    Browse the repository at this point in the history
  200. arm64: dts: cm5 io: add gpiod label

    Signed-off-by: Nascs <[email protected]>
    nascs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    ccf2f32 View commit details
    Browse the repository at this point in the history
  201. arm64: dts: cm5 io: update type-c configuration

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3ad85a3 View commit details
    Browse the repository at this point in the history
  202. arm64: dts: cm5: enable usb wakeup

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    4c901ef View commit details
    Browse the repository at this point in the history
  203. arm64: dts: cm5 io: update gpiod gpio-line-names

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    e1573a9 View commit details
    Browse the repository at this point in the history
  204. arm64: dts: cm5: modify vdd_0v75_s0 regulator-microvolt

    Increased compatibility with different monitors.
    
    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3cfbdfd View commit details
    Browse the repository at this point in the history
  205. arm46: dts: cm5: enable hdmi0 cec

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    7450ce9 View commit details
    Browse the repository at this point in the history
  206. arm64: dts: cm5: enable emmc hs400 mode

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    9b6b9b4 View commit details
    Browse the repository at this point in the history
  207. Configuration menu
    Copy the full SHA
    867d10a View commit details
    Browse the repository at this point in the history
  208. arm64: dts: Add board bananapim7

    bananapim7 and armsom-sige7 are the same board
    amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    d257c33 View commit details
    Browse the repository at this point in the history
  209. Configuration menu
    Copy the full SHA
    1c13e66 View commit details
    Browse the repository at this point in the history
  210. Configuration menu
    Copy the full SHA
    8731c00 View commit details
    Browse the repository at this point in the history
  211. Configuration menu
    Copy the full SHA
    b7d0366 View commit details
    Browse the repository at this point in the history
  212. Configuration menu
    Copy the full SHA
    d50c96d View commit details
    Browse the repository at this point in the history
  213. Configuration menu
    Copy the full SHA
    d47b163 View commit details
    Browse the repository at this point in the history
  214. Configuration menu
    Copy the full SHA
    491851f View commit details
    Browse the repository at this point in the history
  215. dt-bindings: gpu: mali-valhall-csf: Add support for Arm Mali CSF GPUs

    Arm has introduced a new v10 GPU architecture that replaces the Job Manager
    interface with a new Command Stream Frontend. It adds firmware driven
    command stream queues that can be used by kernel and user space to submit
    jobs to the GPU.
    
    Add the initial schema for the device tree that is based on support for
    RK3588 SoC. The minimum number of clocks is one for the IP, but on Rockchip
    platforms they will tend to expose the semi-independent clocks for better
    power management.
    
    v5:
    - Move the opp-table node under the gpu node
    
    v4:
    - Fix formatting issue
    
    v3:
    - Cleanup commit message to remove redundant text
    - Added opp-table property and re-ordered entries
    - Clarified power-domains and power-domain-names requirements for RK3588.
    - Cleaned up example
    
    Note: power-domains and power-domain-names requirements for other platforms
    are still work in progress, hence the bindings are left incomplete here.
    
    v2:
    - New commit
    
    Signed-off-by: Liviu Dudau <[email protected]>
    Cc: Krzysztof Kozlowski <[email protected]>
    Cc: Rob Herring <[email protected]>
    Cc: Conor Dooley <[email protected]>
    Cc: [email protected]
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Rob Herring <[email protected]>
    
    drm: execution context for GEM buffers v7
    
    This adds the infrastructure for an execution context for GEM buffers
    which is similar to the existing TTMs execbuf util and intended to replace
    it in the long term.
    
    The basic functionality is that we abstracts the necessary loop to lock
    many different GEM buffers with automated deadlock and duplicate handling.
    
    v2: drop xarray and use dynamic resized array instead, the locking
        overhead is unnecessary and measurable.
    v3: drop duplicate tracking, radeon is really the only one needing that.
    v4: fixes issues pointed out by Danilo, some typos in comments and a
        helper for lock arrays of GEM objects.
    v5: some suggestions by Boris Brezillon, especially just use one retry
        macro, drop loop in prepare_array, use flags instead of bool
    v6: minor changes suggested by Thomas, Boris and Danilo
    v7: minor typos pointed out by checkpatch.pl fixed
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Reviewed-by: Danilo Krummrich <[email protected]>
    Tested-by: Danilo Krummrich <[email protected]>
    Acked-by: Alex Deucher <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm: manager to keep track of GPUs VA mappings
    
    Add infrastructure to keep track of GPU virtual address (VA) mappings
    with a decicated VA space manager implementation.
    
    New UAPIs, motivated by Vulkan sparse memory bindings graphics drivers
    start implementing, allow userspace applications to request multiple and
    arbitrary GPU VA mappings of buffer objects. The DRM GPU VA manager is
    intended to serve the following purposes in this context.
    
    1) Provide infrastructure to track GPU VA allocations and mappings,
       using an interval tree (RB-tree).
    
    2) Generically connect GPU VA mappings to their backing buffers, in
       particular DRM GEM objects.
    
    3) Provide a common implementation to perform more complex mapping
       operations on the GPU VA space. In particular splitting and merging
       of GPU VA mappings, e.g. for intersecting mapping requests or partial
       unmap requests.
    
    Acked-by: Thomas Hellström <[email protected]>
    Acked-by: Matthew Brost <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Tested-by: Matthew Brost <[email protected]>
    Tested-by: Donald Robson <[email protected]>
    Suggested-by: Dave Airlie <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm: manager: Fix printk format for size_t
    
    sizeof() returns a size_t which may be different to an unsigned long.
    Use the correct format specifier of '%zu' to prevent compiler warnings.
    
    Fixes: e6303f323b1a ("drm: manager to keep track of GPUs VA mappings")
    Reviewed-by: Danilo Krummrich <[email protected]>
    Signed-off-by: Steven Price <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuva_mgr: remove unused prev pointer in __drm_gpuva_sm_map()
    
    The prev pointer in __drm_gpuva_sm_map() was used to implement automatic
    merging of mappings. Since automatic merging did not make its way
    upstream, remove this leftover.
    
    Fixes: e6303f323b1a ("drm: manager to keep track of GPUs VA mappings")
    Signed-off-by: Danilo Krummrich <[email protected]>
    Reviewed-by: Dave Airlie <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: rename struct drm_gpuva_manager to struct drm_gpuvm
    
    Rename struct drm_gpuva_manager to struct drm_gpuvm including
    corresponding functions. This way the GPUVA manager's structures align
    very well with the documentation of VM_BIND [1] and VM_BIND locking [2].
    
    It also provides a better foundation for the naming of data structures
    and functions introduced for implementing a common dma-resv per GPU-VM
    including tracking of external and evicted objects in subsequent
    patches.
    
    [1] Documentation/gpu/drm-vm-bind-async.rst
    [2] Documentation/gpu/drm-vm-bind-locking.rst
    
    Cc: Thomas Hellström <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Acked-by: Dave Airlie <[email protected]>
    Acked-by: Christian König <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: allow building as module
    
    HB:
    drivers/gpu/drm/nouveau/Kconfig
    skipped because there is no gpuvm support of nouveau in 6.1
    
    Currently, the DRM GPUVM does not have any core dependencies preventing
    a module build.
    
    Also, new features from subsequent patches require helpers (namely
    drm_exec) which can be built as module.
    
    Reviewed-by: Christian König <[email protected]>
    Reviewed-by: Dave Airlie <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: convert WARN() to drm_WARN() variants
    
    HB:
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    skipped since 6.1 does not support gpuvm on nv
    
    Use drm_WARN() and drm_WARN_ON() variants to indicate drivers the
    context the failing VM resides in.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: don't always WARN in drm_gpuvm_check_overflow()
    
    Don't always WARN in drm_gpuvm_check_overflow() and separate it into a
    drm_gpuvm_check_overflow() and a dedicated
    drm_gpuvm_warn_check_overflow() variant.
    
    This avoids printing warnings due to invalid userspace requests.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: export drm_gpuvm_range_valid()
    
    Drivers may use this function to validate userspace requests in advance,
    hence export it.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: add common dma-resv per struct drm_gpuvm
    
    hb:
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    skipped
    
    Provide a common dma-resv for GEM objects not being used outside of this
    GPU-VM. This is used in a subsequent patch to generalize dma-resv,
    external and evicted object handling and GEM validation.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: add drm_gpuvm_flags to drm_gpuvm
    
    HB:
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    skipped
    
    Introduce flags for struct drm_gpuvm, this required by subsequent
    commits.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: reference count drm_gpuvm structures
    
    HB:
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    skipped
    
    Implement reference counting for struct drm_gpuvm.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: add an abstraction for a VM / BO combination
    
    HB:
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    skipped
    
    Add an abstraction layer between the drm_gpuva mappings of a particular
    drm_gem_object and this GEM object itself. The abstraction represents a
    combination of a drm_gem_object and drm_gpuvm. The drm_gem_object holds
    a list of drm_gpuvm_bo structures (the structure representing this
    abstraction), while each drm_gpuvm_bo contains list of mappings of this
    GEM object.
    
    This has multiple advantages:
    
    1) We can use the drm_gpuvm_bo structure to attach it to various lists
       of the drm_gpuvm. This is useful for tracking external and evicted
       objects per VM, which is introduced in subsequent patches.
    
    2) Finding mappings of a certain drm_gem_object mapped in a certain
       drm_gpuvm becomes much cheaper.
    
    3) Drivers can derive and extend the structure to easily represent
       driver specific states of a BO for a certain GPUVM.
    
    The idea of this abstraction was taken from amdgpu, hence the credit for
    this idea goes to the developers of amdgpu.
    
    Cc: Christian König <[email protected]>
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: track/lock/validate external/evicted objects
    
    Currently the DRM GPUVM offers common infrastructure to track GPU VA
    allocations and mappings, generically connect GPU VA mappings to their
    backing buffers and perform more complex mapping operations on the GPU VA
    space.
    
    However, there are more design patterns commonly used by drivers, which
    can potentially be generalized in order to make the DRM GPUVM represent
    a basis for GPU-VM implementations. In this context, this patch aims
    at generalizing the following elements.
    
    1) Provide a common dma-resv for GEM objects not being used outside of
       this GPU-VM.
    
    2) Provide tracking of external GEM objects (GEM objects which are
       shared with other GPU-VMs).
    
    3) Provide functions to efficiently lock all GEM objects dma-resv the
       GPU-VM contains mappings of.
    
    4) Provide tracking of evicted GEM objects the GPU-VM contains mappings
       of, such that validation of evicted GEM objects is accelerated.
    
    5) Provide some convinience functions for common patterns.
    
    Big thanks to Boris Brezillon for his help to figure out locking for
    drivers updating the GPU VA space within the fence signalling path.
    
    Acked-by: Christian König <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Reviewed-by: Thomas Hellström <[email protected]>
    Suggested-by: Matthew Brost <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: fall back to drm_exec_lock_obj()
    
    Fall back to drm_exec_lock_obj() if num_fences is zero for the
    drm_gpuvm_prepare_* function family.
    
    Otherwise dma_resv_reserve_fences() would actually allocate slots even
    though num_fences is zero.
    
    Cc: Christian König <[email protected]>
    Acked-by: Donald Robson <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/gpuvm: Let drm_gpuvm_bo_put() report when the vm_bo object is destroyed
    
    Some users need to release resources attached to the vm_bo object when
    it's destroyed. In Panthor's case, we need to release the pin ref so
    BO pages can be returned to the system when all GPU mappings are gone.
    
    This could be done through a custom drm_gpuvm::vm_bo_free() hook, but
    this has all sort of locking implications that would force us to expose
    a drm_gem_shmem_unpin_locked() helper, not to mention the fact that
    having a ::vm_bo_free() implementation without a ::vm_bo_alloc() one
    seems odd. So let's keep things simple, and extend drm_gpuvm_bo_put()
    to report when the object is destroyed.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/exec: Pass in initial # of objects
    
    HB: skipped
    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
    drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
    drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c
    drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
    drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
    drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c
    drivers/gpu/drm/amd/amdkfd/kfd_svm.c
    drivers/gpu/drm/imagination/pvr_job.c
    drivers/gpu/drm/nouveau/nouveau_uvmm.c
    
    In cases where the # is known ahead of time, it is silly to do the table
    resize dance.
    
    Signed-off-by: Rob Clark <[email protected]>
    Reviewed-by: Christian König <[email protected]>
    Patchwork: https://patchwork.freedesktop.org/patch/568338/
    
    drm/gem-shmem: When drm_gem_object_init failed, should release object
    
    when goto err_free, the object had init, so it should be release when fail.
    
    Signed-off-by: ChunyouTang <[email protected]>
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm: Remove usage of deprecated DRM_DEBUG_PRIME
    
    drm_print.h says DRM_DEBUG_PRIME is deprecated in favor of
    drm_dbg_prime().
    
    Signed-off-by: Siddh Raman Pant <[email protected]>
    Reviewed-by: Simon Ser <[email protected]>
    Signed-off-by: Simon Ser <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/cd663b1bc42189e55898cddecdb3b73c591b341a.1673269059.git.code@siddh.me
    
    drm/shmem: Cleanup drm_gem_shmem_create_with_handle()
    
    Once we create the handle, the handle owns the reference.  Currently
    nothing was doing anything with the shmem ptr after the handle was
    created, but let's change drm_gem_shmem_create_with_handle() to not
    return the pointer, so-as to not encourage problematic use of this
    function in the future.  As a bonus, it makes the code a bit cleaner.
    
    Signed-off-by: Rob Clark <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Signed-off-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/shmem-helper: Fix locking for drm_gem_shmem_get_pages_sgt()
    
    Other functions touching shmem->sgt take the pages lock, so do that here
    too. drm_gem_shmem_get_pages() & co take the same lock, so move to the
    _locked() variants to avoid recursive locking.
    
    Discovered while auditing locking to write the Rust abstractions.
    
    Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects")
    Fixes: 4fa3d66f132b ("drm/shmem: Do dma_unmap_sg before purging pages")
    Signed-off-by: Asahi Lina <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Signed-off-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/shmem-helper: Switch to use drm_* debug helpers
    
    Ease debugging of a multi-GPU system by using drm_WARN_*() and
    drm_dbg_kms() helpers that print out DRM device name corresponding
    to shmem GEM.
    
    Reviewed-by: Thomas Zimmermann <[email protected]>
    Suggested-by: Thomas Zimmermann <[email protected]>
    Signed-off-by: Dmitry Osipenko <[email protected]>
    Link: https://lore.kernel.org/all/[email protected]/
    
    drm/shmem-helper: Don't use vmap_use_count for dma-bufs
    
    DMA-buf core has its own refcounting of vmaps, use it instead of drm-shmem
    counting. This change prepares drm-shmem for addition of memory shrinker
    support where drm-shmem will use a single dma-buf reservation lock for
    all operations performed over dma-bufs.
    
    Reviewed-by: Thomas Zimmermann <[email protected]>
    Signed-off-by: Dmitry Osipenko <[email protected]>
    Link: https://lore.kernel.org/all/[email protected]/
    
    drm/shmem-helper: Switch to reservation lock
    
    Replace all drm-shmem locks with a GEM reservation lock. This makes locks
    consistent with dma-buf locking convention where importers are responsible
    for holding reservation lock for all operations performed over dma-bufs,
    preventing deadlock between dma-buf importers and exporters.
    
    Suggested-by: Daniel Vetter <[email protected]>
    Acked-by: Thomas Zimmermann <[email protected]>
    Signed-off-by: Dmitry Osipenko <[email protected]>
    Link: https://lore.kernel.org/all/[email protected]/
    
    drm/shmem-helper: Revert accidental non-GPL export
    
    The referenced commit added a wrapper for drm_gem_shmem_get_pages_sgt(),
    but in the process it accidentally changed the export type from GPL to
    non-GPL. Switch it back to GPL.
    
    Reported-by: Dmitry Osipenko <[email protected]>
    Fixes: ddddedaa0db9 ("drm/shmem-helper: Fix locking for drm_gem_shmem_get_pages_sgt()")
    Signed-off-by: Asahi Lina <[email protected]>
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    Revert "drm/shmem-helper: Switch to reservation lock"
    
    This reverts commit 67b7836d4458790f1261e31fe0ce3250989784f0.
    
    The locking appears incomplete. A caller of SHMEM helper's pin
    function never acquires the dma-buf reservation lock. So we get
    
      WARNING: CPU: 3 PID: 967 at drivers/gpu/drm/drm_gem_shmem_helper.c:243 drm_gem_shmem_pin+0x42/0x90 [drm_shmem_helper]
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Acked-by: Dmitry Osipenko <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/shmem-helper: Switch to reservation lock
    
    Replace all drm-shmem locks with a GEM reservation lock. This makes locks
    consistent with dma-buf locking convention where importers are responsible
    for holding reservation lock for all operations performed over dma-bufs,
    preventing deadlock between dma-buf importers and exporters.
    
    Suggested-by: Daniel Vetter <[email protected]>
    Acked-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Emil Velikov <[email protected]>
    Signed-off-by: Dmitry Osipenko <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap()
    
    The dma-buf backend is supposed to provide its own vm_ops, but some
    implementation just have nothing special to do and leave vm_ops
    untouched, probably expecting this field to be zero initialized (this
    is the case with the system_heap implementation for instance).
    Let's reset vma->vm_ops to NULL to keep things working with these
    implementations.
    
    Fixes: 26d3ac3cb04d ("drm/shmem-helpers: Redirect mmap for imported dma-buf")
    Cc: <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Reported-by: Roman Stratiienko <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Tested-by: Roman Stratiienko <[email protected]>
    Reviewed-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    iommu: Allow passing custom allocators to pgtable drivers
    
    This will be useful for GPU drivers who want to keep page tables in a
    pool so they can:
    
    - keep freed page tables in a free pool and speed-up upcoming page
      table allocations
    - batch page table allocation instead of allocating one page at a time
    - pre-reserve pages for page tables needed for map/unmap operations,
      to ensure map/unmap operations don't try to allocate memory in paths
      they're allowed to block or fail
    
    It might also be valuable for other aspects of GPU and similar
    use-cases, like fine-grained memory accounting and resource limiting.
    
    We will extend the Arm LPAE format to support custom allocators in a
    separate commit.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Robin Murphy <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Joerg Roedel <[email protected]>
    
    iommu: Extend LPAE page table format to support custom allocators
    
    We need that in order to implement the VM_BIND ioctl in the GPU driver
    targeting new Mali GPUs.
    
    VM_BIND is about executing MMU map/unmap requests asynchronously,
    possibly after waiting for external dependencies encoded as dma_fences.
    We intend to use the drm_sched framework to automate the dependency
    tracking and VM job dequeuing logic, but this comes with its own set
    of constraints, one of them being the fact we are not allowed to
    allocate memory in the drm_gpu_scheduler_ops::run_job() to avoid this
    sort of deadlocks:
    
    - VM_BIND map job needs to allocate a page table to map some memory
      to the VM. No memory available, so kswapd is kicked
    - GPU driver shrinker backend ends up waiting on the fence attached to
      the VM map job or any other job fence depending on this VM operation.
    
    With custom allocators, we will be able to pre-reserve enough pages to
    guarantee the map/unmap operations we queued will take place without
    going through the system allocator. But we can also optimize
    allocation/reservation by not free-ing pages immediately, so any
    upcoming page table allocation requests can be serviced by some free
    page table pool kept at the driver level.
    
    I might also be valuable for other aspects of GPU and similar
    use-cases, like fine-grained memory accounting and resource limiting.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Robin Murphy <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Joerg Roedel <[email protected]>
    
    drm/sched: Add FIFO sched policy to run queue
    
    When many entities are competing for the same run queue
    on the same scheduler, we observe an unusually long wait
    times and some jobs get starved. This has been observed on GPUVis.
    
    The issue is due to the Round Robin policy used by schedulers
    to pick up the next entity's job queue for execution. Under stress
    of many entities and long job queues within entity some
    jobs could be stuck for very long time in it's entity's
    queue before being popped from the queue and executed
    while for other entities with smaller job queues a job
    might execute earlier even though that job arrived later
    then the job in the long queue.
    
    Fix:
    Add FIFO selection policy to entities in run queue, chose next entity
    on run queue in such order that if job on one entity arrived
    earlier then job on another entity the first job will start
    executing earlier regardless of the length of the entity's job
    queue.
    
    v2:
    Switch to rb tree structure for entities based on TS of
    oldest job waiting in the job queue of an entity. Improves next
    entity extraction to O(1). Entity TS update
    O(log N) where N is the number of entities in the run-queue
    
    Drop default option in module control parameter.
    
    v3:
    Various cosmetical fixes and minor refactoring of fifo update function. (Luben)
    
    v4:
    Switch drm_sched_rq_select_entity_fifo to in order search (Luben)
    
    v5: Fix up drm_sched_rq_select_entity_fifo loop (Luben)
    
    v6: Add missing drm_sched_rq_remove_fifo_locked
    
    v7: Fix ts sampling bug and more cosmetic stuff (Luben)
    
    v8: Fix module parameter string (Luben)
    
    Cc: Luben Tuikov <[email protected]>
    Cc: Christian König <[email protected]>
    Cc: Direct Rendering Infrastructure - Development <[email protected]>
    Cc: AMD Graphics <[email protected]>
    Signed-off-by: Andrey Grodzovsky <[email protected]>
    Tested-by: Yunxiang Li (Teddy) <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: Set the FIFO scheduling policy as the default
    
    The currently default Round-Robin GPU scheduling can result in starvation
    of entities which have a large number of jobs, over entities which have
    a very small number of jobs (single digit).
    
    This can be illustrated in the following diagram, where jobs are
    alphabetized to show their chronological order of arrival, where job A is
    the oldest, B is the second oldest, and so on, to J, the most recent job to
    arrive.
    
        ---> entities
    j | H-F-----A--E--I--
    o | --G-----B-----J--
    b | --------C--------
    s\/ --------D--------
    
    WLOG, assuming all jobs are "ready", then a R-R scheduling will execute them
    in the following order (a slice off of the top of the entities' list),
    
    H, F, A, E, I, G, B, J, C, D.
    
    However, to mitigate job starvation, we'd rather execute C and D before E,
    and so on, given, of course, that they're all ready to be executed.
    
    So, if all jobs are ready at this instant, the order of execution for this
    and the next 9 instances of picking the next job to execute, should really
    be,
    
    A, B, C, D, E, F, G, H, I, J,
    
    which is their chronological order. The only reason for this order to be
    broken, is if an older job is not yet ready, but a younger job is ready, at
    an instant of picking a new job to execute. For instance if job C wasn't
    ready at time 2, but job D was ready, then we'd pick job D, like this:
    
    0 +1 +2  ...
    A, B, D, ...
    
    And from then on, C would be preferred before all other jobs, if it is ready
    at the time when a new job for execution is picked. So, if C became ready
    two steps later, the execution order would look like this:
    
    ......0 +1 +2  ...
    A, B, D, E, C, F, G, H, I, J
    
    This is what the FIFO GPU scheduling algorithm achieves. It uses a
    Red-Black tree to keep jobs sorted in chronological order, where picking
    the oldest job is O(1) (we use the "cached" structure), and balancing the
    tree is O(log n). IOW, it picks the *oldest ready* job to execute now.
    
    The implementation is already in the kernel, and this commit only changes
    the default GPU scheduling algorithm to use.
    
    This was tested and achieves about 1% faster performance over the Round
    Robin algorithm.
    
    Cc: Christian König <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Cc: Direct Rendering Infrastructure - Development <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    Reviewed-by: Christian König <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Christian König <[email protected]>
    
    drm/scheduler: add drm_sched_job_add_resv_dependencies
    
    Add a new function to update job dependencies from a resv obj.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: remove drm_sched_dependency_optimized
    
    Not used any more.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: rework entity flush, kill and fini
    
    This was buggy because when we had to wait for entities which were
    killed as well we would just deadlock.
    
    Instead move all the dependency handling into the callbacks so that
    will all happen asynchronously.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: rename dependency callback into prepare_job
    
    This now matches much better what this is doing.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/amdgpu: revert "implement tdr advanced mode"
    
    This reverts commit e6c6338f393b74ac0b303d567bb918b44ae7ad75.
    
    This feature basically re-submits one job after another to
    figure out which one was the one causing a hang.
    
    This is obviously incompatible with gang-submit which requires
    that multiple jobs run at the same time. It's also absolutely
    not helpful to crash the hardware multiple times if a clean
    recovery is desired.
    
    For testing and debugging environments we should rather disable
    recovery alltogether to be able to inspect the state with a hw
    debugger.
    
    Additional to that the sw implementation is clearly buggy and causes
    reference count issues for the hardware fence.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    
    drm/scheduler: Fix lockup in drm_sched_entity_kill()
    
    The drm_sched_entity_kill() is invoked twice by drm_sched_entity_destroy()
    while userspace process is exiting or being killed. First time it's invoked
    when sched entity is flushed and second time when entity is released. This
    causes a lockup within wait_for_completion(entity_idle) due to how completion
    API works.
    
    Calling wait_for_completion() more times than complete() was invoked is a
    error condition that causes lockup because completion internally uses
    counter for complete/wait calls. The complete_all() must be used instead
    in such cases.
    
    This patch fixes lockup of Panfrost driver that is reproducible by killing
    any application in a middle of 3d drawing operation.
    
    Fixes: 2fdb8a8f07c2 ("drm/scheduler: rework entity flush, kill and fini")
    Signed-off-by: Dmitry Osipenko <[email protected]>
    Reviewed-by: Christian König <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: deprecate drm_sched_resubmit_jobs
    
    This interface is not working as it should.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: track GPU active time per entity
    
    Track the accumulated time that jobs from this entity were active
    on the GPU. This allows drivers using the scheduler to trivially
    implement the DRM fdinfo when the hardware doesn't provide more
    specific information than signalling job completion anyways.
    
    [Bagas: Append missing colon to @elapsed_ns]
    Signed-off-by: Bagas Sanjaya <[email protected]>
    Signed-off-by: Lucas Stach <[email protected]>
    Reviewed-by: Andrey Grodzovsky <[email protected]>
    
    drm/sched: Create wrapper to add a syncobj dependency to job
    
    In order to add a syncobj's fence as a dependency to a job, it is
    necessary to call drm_syncobj_find_fence() to find the fence and then
    add the dependency with drm_sched_job_add_dependency(). So, wrap these
    steps in one single function, drm_sched_job_add_syncobj_dependency().
    
    Reviewed-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Maíra Canal <[email protected]>
    Signed-off-by: Maíra Canal <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: Fix variable name in function description
    
    Compiling AMD GPU drivers displays two warnings:
    
    drivers/gpu/drm/scheduler/sched_main.c:738: warning: Function parameter or member 'file' not described in 'drm_sched_job_add_syncobj_dependency'
    drivers/gpu/drm/scheduler/sched_main.c:738: warning: Excess function
    parameter 'file_private' description in
    'drm_sched_job_add_syncobj_dependency'
    
    Get rid of them by renaming the variable name on the function description
    
    Signed-off-by: Caio Novais <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/scheduler: Add fence deadline support
    
    As the finished fence is the one that is exposed to userspace, and
    therefore the one that other operations, like atomic update, would
    block on, we need to propagate the deadline from from the finished
    fence to the actual hw fence.
    
    v2: Split into drm_sched_fence_set_parent() (ckoenig)
    v3: Ensure a thread calling drm_sched_fence_set_deadline_finished() sees
        fence->parent set before drm_sched_fence_set_parent() does this
        test_bit(DMA_FENCE_FLAG_HAS_DEADLINE_BIT).
    
    Signed-off-by: Rob Clark <[email protected]>
    Acked-by: Luben Tuikov <[email protected]>
    
    Revert "drm/scheduler: track GPU active time per entity"
    
    This reverts commit df622729ddbf as it introduces a use-after-free,
    which isn't easy to fix without going back to the design drawing board.
    
    Reported-by: Danilo Krummrich <[email protected]>
    Signed-off-by: Lucas Stach <[email protected]>
    
    drm/scheduler: Fix UAF race in drm_sched_entity_push_job()
    
    After a job is pushed into the queue, it is owned by the scheduler core
    and may be freed at any time, so we can't write nor read the submit
    timestamp after that point.
    
    Fixes oopses observed with the drm/asahi driver, found with kASAN.
    
    Signed-off-by: Asahi Lina <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Check scheduler ready before calling timeout handling
    
    During an IGT GPU reset test we see the following oops,
    
    [  +0.000003] ------------[ cut here ]------------
    [  +0.000000] WARNING: CPU: 9 PID: 0 at kernel/workqueue.c:1656 __queue_delayed_work+0x6d/0xa0
    [  +0.000004] Modules linked in: iptable_filter bpfilter amdgpu(OE) nls_iso8859_1 snd_hda_codec_realtek snd_hda_codec_generic intel_rapl_msr ledtrig_audio snd_hda_codec_hdmi intel_rapl_common snd_hda_intel edac_mce_amd snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hda_core iommu_v2 gpu_sched(OE) kvm_amd drm_buddy snd_hwdep kvm video drm_ttm_helper snd_pcm ttm snd_seq_midi drm_display_helper snd_seq_midi_event snd_rawmidi cec crct10dif_pclmul ghash_clmulni_intel sha512_ssse3 snd_seq aesni_intel rc_core crypto_simd cryptd binfmt_misc drm_kms_helper rapl snd_seq_device input_leds joydev snd_timer i2c_algo_bit syscopyarea snd ccp sysfillrect sysimgblt wmi_bmof k10temp soundcore mac_hid sch_fq_codel msr parport_pc ppdev drm lp parport ramoops reed_solomon pstore_blk pstore_zone efi_pstore ip_tables x_tables autofs4 hid_generic usbhid hid r8169 ahci xhci_pci gpio_amdpt realtek i2c_piix4 wmi crc32_pclmul xhci_pci_renesas libahci gpio_generic
    [  +0.000070] CPU: 9 PID: 0 Comm: swapper/9 Tainted: G        W OE      6.1.11+ #2
    [  +0.000003] Hardware name: Gigabyte Technology Co., Ltd. AB350-Gaming 3/AB350-Gaming 3-CF, BIOS F7 06/16/2017
    [  +0.000001] RIP: 0010:__queue_delayed_work+0x6d/0xa0
    [  +0.000003] Code: 7a 50 48 01 c1 48 89 4a 30 81 ff 00 20 00 00 75 38 4c 89 cf e8 64 3e 0a 00 5d e9 1e c5 11 01 e8 99 f7 ff ff 5d e9 13 c5 11 01 <0f> 0b eb c1 0f 0b 48 81 7a 38 70 5c 0e 81 74 9f 0f 0b 48 8b 42 28
    [  +0.000002] RSP: 0018:ffffc90000398d60 EFLAGS: 00010007
    [  +0.000002] RAX: ffff88810d589c60 RBX: 0000000000000000 RCX: 0000000000000000
    [  +0.000002] RDX: ffff88810d589c58 RSI: 0000000000000000 RDI: 0000000000002000
    [  +0.000001] RBP: ffffc90000398d60 R08: 0000000000000000 R09: ffff88810d589c78
    [  +0.000002] R10: 72705f305f39765f R11: 7866673a6d72645b R12: ffff88810d589c58
    [  +0.000001] R13: 0000000000002000 R14: 0000000000000000 R15: 0000000000000000
    [  +0.000002] FS:  0000000000000000(0000) GS:ffff8887fee40000(0000) knlGS:0000000000000000
    [  +0.000001] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  +0.000002] CR2: 00005562c4797fa0 CR3: 0000000110da0000 CR4: 00000000003506e0
    [  +0.000002] Call Trace:
    [  +0.000001]  <IRQ>
    [  +0.000001]  mod_delayed_work_on+0x5e/0xa0
    [  +0.000004]  drm_sched_fault+0x23/0x30 [gpu_sched]
    [  +0.000007]  gfx_v9_0_fault.isra.0+0xa6/0xd0 [amdgpu]
    [  +0.000258]  gfx_v9_0_priv_reg_irq+0x29/0x40 [amdgpu]
    [  +0.000254]  amdgpu_irq_dispatch+0x1ac/0x2b0 [amdgpu]
    [  +0.000243]  amdgpu_ih_process+0x89/0x130 [amdgpu]
    [  +0.000245]  amdgpu_irq_handler+0x24/0x60 [amdgpu]
    [  +0.000165]  __handle_irq_event_percpu+0x4f/0x1a0
    [  +0.000003]  handle_irq_event_percpu+0x15/0x50
    [  +0.000001]  handle_irq_event+0x39/0x60
    [  +0.000002]  handle_edge_irq+0xa8/0x250
    [  +0.000003]  __common_interrupt+0x7b/0x150
    [  +0.000002]  common_interrupt+0xc1/0xe0
    [  +0.000003]  </IRQ>
    [  +0.000000]  <TASK>
    [  +0.000001]  asm_common_interrupt+0x27/0x40
    [  +0.000002] RIP: 0010:native_safe_halt+0xb/0x10
    [  +0.000003] Code: 46 ff ff ff cc cc cc cc cc cc cc cc cc cc cc eb 07 0f 00 2d 69 f2 5e 00 f4 e9 f1 3b 3e 00 90 eb 07 0f 00 2d 59 f2 5e 00 fb f4 <e9> e0 3b 3e 00 0f 1f 44 00 00 55 48 89 e5 53 e8 b1 d4 fe ff 66 90
    [  +0.000002] RSP: 0018:ffffc9000018fdc8 EFLAGS: 00000246
    [  +0.000002] RAX: 0000000000004000 RBX: 000000000002e5a8 RCX: 000000000000001f
    [  +0.000001] RDX: 0000000000000001 RSI: ffff888101298800 RDI: ffff888101298864
    [  +0.000001] RBP: ffffc9000018fdd0 R08: 000000527f64bd8b R09: 000000000001dc90
    [  +0.000001] R10: 000000000001dc90 R11: 0000000000000003 R12: 0000000000000001
    [  +0.000001] R13: ffff888101298864 R14: ffffffff832d9e20 R15: ffff888193aa8c00
    [  +0.000003]  ? acpi_idle_do_entry+0x5e/0x70
    [  +0.000002]  acpi_idle_enter+0xd1/0x160
    [  +0.000003]  cpuidle_enter_state+0x9a/0x6e0
    [  +0.000003]  cpuidle_enter+0x2e/0x50
    [  +0.000003]  call_cpuidle+0x23/0x50
    [  +0.000002]  do_idle+0x1de/0x260
    [  +0.000002]  cpu_startup_entry+0x20/0x30
    [  +0.000002]  start_secondary+0x120/0x150
    [  +0.000003]  secondary_startup_64_no_verify+0xe5/0xeb
    [  +0.000004]  </TASK>
    [  +0.000000] ---[ end trace 0000000000000000 ]---
    [  +0.000003] BUG: kernel NULL pointer dereference, address: 0000000000000102
    [  +0.006233] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_low timeout, signaled seq=3, emitted seq=4
    [  +0.000734] #PF: supervisor read access in kernel mode
    [  +0.009670] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process amd_deadlock pid 2002 thread amd_deadlock pid 2002
    [  +0.005135] #PF: error_code(0x0000) - not-present page
    [  +0.000002] PGD 0 P4D 0
    [  +0.000002] Oops: 0000 [#1] PREEMPT SMP NOPTI
    [  +0.000002] CPU: 9 PID: 0 Comm: swapper/9 Tainted: G        W OE      6.1.11+ #2
    [  +0.000002] Hardware name: Gigabyte Technology Co., Ltd. AB350-Gaming 3/AB350-Gaming 3-CF, BIOS F7 06/16/2017
    [  +0.012101] amdgpu 0000:0c:00.0: amdgpu: GPU reset begin!
    [  +0.005136] RIP: 0010:__queue_work+0x1f/0x4e0
    [  +0.000004] Code: 87 cd 11 01 0f 1f 80 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41 55 49 89 d5 41 54 49 89 f4 53 48 83 ec 10 89 7d d4 <f6> 86 02 01 00 00 01 0f 85 6c 03 00 00 e8 7f 36 08 00 8b 45 d4 48
    
    For gfx_rings the schedulers may not be initialized by
    amdgpu_device_init_schedulers() due to ring->no_scheduler flag being set to
    true and thus the timeout_wq is NULL. As a result, since all ASICs call
    drm_sched_fault() unconditionally even for schedulers which have not been
    initialized, it is simpler to use the ready condition which indicates whether
    the given scheduler worker thread runs and whether the timeout_wq of the reset
    domain has been initialized.
    
    Signed-off-by: Vitaly Prosyak <[email protected]>
    Cc: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    
    drm/scheduler: set entity to NULL in drm_sched_entity_pop_job()
    
    It already happend a few times that patches slipped through which
    implemented access to an entity through a job that was already removed
    from the entities queue. Since jobs and entities might have different
    lifecycles, this can potentially cause UAF bugs.
    
    In order to make it obvious that a jobs entity pointer shouldn't be
    accessed after drm_sched_entity_pop_job() was called successfully, set
    the jobs entity pointer to NULL once the job is removed from the entity
    queue.
    
    Moreover, debugging a potential NULL pointer dereference is way easier
    than potentially corrupted memory through a UAF.
    
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/scheduler: properly forward fence errors
    
    When a hw fence is signaled with an error properly forward that to the
    finished fence.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: add drm_sched_entity_error and use rcu for last_scheduled
    
    Switch to using RCU handling for the last scheduled job and add a
    function to return the error code of it.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/scheduler: mark jobs without fence as canceled
    
    When no hw fence is provided for a job that means that the job didn't executed.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/sched: Check scheduler work queue before calling timeout handling
    
    During an IGT GPU reset test we see again oops despite of
    commit 0c8c901aaaebc9 (drm/sched: Check scheduler ready before calling
    timeout handling).
    
    It uses ready condition whether to call drm_sched_fault which unwind
    the TDR leads to GPU reset.
    However it looks the ready condition is overloaded with other meanings,
    for example, for the following stack is related GPU reset :
    
    0  gfx_v9_0_cp_gfx_start
    1  gfx_v9_0_cp_gfx_resume
    2  gfx_v9_0_cp_resume
    3  gfx_v9_0_hw_init
    4  gfx_v9_0_resume
    5  amdgpu_device_ip_resume_phase2
    
    does the following:
    	/* start the ring */
    	gfx_v9_0_cp_gfx_start(adev);
    	ring->sched.ready = true;
    
    The same approach is for other ASICs as well :
    gfx_v8_0_cp_gfx_resume
    gfx_v10_0_kiq_resume, etc...
    
    As a result, our GPU reset test causes GPU fault which calls unconditionally gfx_v9_0_fault
    and then drm_sched_fault. However now it depends on whether the interrupt service routine
    drm_sched_fault is executed after gfx_v9_0_cp_gfx_start is completed which sets the ready
    field of the scheduler to true even  for uninitialized schedulers and causes oops vs
    no fault or when ISR  drm_sched_fault is completed prior  gfx_v9_0_cp_gfx_start and
    NULL pointer dereference does not occur.
    
    Use the field timeout_wq  to prevent oops for uninitialized schedulers.
    The field could be initialized by the work queue of resetting the domain.
    
    v1: Corrections to commit message (Luben)
    
    Fixes: 11b3b9f461c5c4 ("drm/sched: Check scheduler ready before calling timeout handling")
    Signed-off-by: Vitaly Prosyak <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Remove redundant check
    
    The rq pointer points inside the drm_gpu_scheduler structure. Thus
    it can't be NULL.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: c61cdbdbffc1 ("drm/scheduler: Fix hang when sched_entity released")
    Signed-off-by: Vladislav Efanov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Rename to drm_sched_can_queue()
    
    Rename drm_sched_ready() to drm_sched_can_queue(). "ready" can mean many
    things and is thus meaningless in this context. Instead, rename to a name
    which precisely conveys what is being checked.
    
    Cc: Christian König <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    
    drm/sched: Rename to drm_sched_wakeup_if_can_queue()
    
    Rename drm_sched_wakeup() to drm_sched_wakeup_if_canqueue() since the former
    is misleading, as it wakes up the GPU scheduler _only if_ more jobs can be
    queued to the underlying hardware.
    
    This distinction is important to make, since the wake conditional in the GPU
    scheduler thread wakes up when other conditions are also true, e.g. when there
    are jobs to be cleaned. For instance, a user might want to wake up the
    scheduler only because there are more jobs to clean, but whether we can queue
    more jobs is irrelevant.
    
    v2: Separate "canqueue" to "can_queue". (Alex D.)
    
    Cc: Christian König <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Alex Deucher <[email protected]>
    
    drm/scheduler: avoid infinite loop if entity's dependency is a scheduled error fence
    
    [Why]
    drm_sched_entity_add_dependency_cb ignores the scheduled fence and return false.
    If entity's dependency is a scheduler error fence and drm_sched_stop is called
    due to TDR, drm_sched_entity_pop_job will wait for the dependency infinitely.
    
    [How]
    Do not wait or ignore the scheduled error fence, add drm_sched_entity_wakeup
    callback for the dependency with scheduled error fence.
    
    Signed-off-by: ZhenGuo Yin <[email protected]>
    Acked-by: Alex Deucher <[email protected]>
    Reviewed-by: Christian König <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    
    drm/sched: Make sure we wait for all dependencies in kill_jobs_cb()
    
    drm_sched_entity_kill_jobs_cb() logic is omitting the last fence popped
    from the dependency array that was waited upon before
    drm_sched_entity_kill() was called (drm_sched_entity::dependency field),
    so we're basically waiting for all dependencies except one.
    
    In theory, this wait shouldn't be needed because resources should have
    their users registered to the dma_resv object, thus guaranteeing that
    future jobs wanting to access these resources wait on all the previous
    users (depending on the access type, of course). But we want to keep
    these explicit waits in the kill entity path just in case.
    
    Let's make sure we keep all dependencies in the array in
    drm_sched_job_dependency(), so we can iterate over the array and wait
    in drm_sched_entity_kill_jobs_cb().
    
    We also make sure we wait on drm_sched_fence::finished if we were
    originally asked to wait on drm_sched_fence::scheduled. In that case,
    we assume the intent was to delegate the wait to the firmware/GPU or
    rely on the pipelining done at the entity/scheduler level, but when
    killing jobs, we really want to wait for completion not just scheduling.
    
    v2:
    - Don't evict deps in drm_sched_job_dependency()
    
    v3:
    - Always wait for drm_sched_fence::finished fences in
      drm_sched_entity_kill_jobs_cb() when we see a sched_fence
    
    v4:
    - Fix commit message
    - Fix a use-after-free bug
    
    v5:
    - Flag deps on which we should only wait for the scheduled event
      at insertion time
    
    v6:
    - Back to v4 implementation
    - Add Christian's R-b
    
    Cc: Frank Binns <[email protected]>
    Cc: Sarah Walker <[email protected]>
    Cc: Donald Robson <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Sumit Semwal <[email protected]>
    Cc: "Christian König" <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Suggested-by: "Christian König" <[email protected]>
    Reviewed-by: "Christian König" <[email protected]>
    Acked-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/sched: Call drm_sched_fence_set_parent() from drm_sched_fence_scheduled()
    
    Drivers that can delegate waits to the firmware/GPU pass the scheduled
    fence to drm_sched_job_add_dependency(), and issue wait commands to
    the firmware/GPU at job submission time. For this to be possible, they
    need all their 'native' dependencies to have a valid parent since this
    is where the actual HW fence information are encoded.
    
    In drm_sched_main(), we currently call drm_sched_fence_set_parent()
    after drm_sched_fence_scheduled(), leaving a short period of time
    during which the job depending on this fence can be submitted.
    
    Since setting parent and signaling the fence are two things that are
    kinda related (you can't have a parent if the job hasn't been
    scheduled),
    it probably makes sense to pass the parent fence to
    drm_sched_fence_scheduled() and let it call drm_sched_fence_set_parent()
    before it signals the scheduled fence.
    
    Here is a detailed description of the race we are fixing here:
    
    Thread A				Thread B
    
    - calls drm_sched_fence_scheduled()
    - signals s_fence->scheduled which
      wakes up thread B
    
    					- entity dep signaled, checking
    					  the next dep
    					- no more deps waiting
    					- entity is picked for job
    					  submission by drm_gpu_scheduler
    					- run_job() is called
    					- run_job() tries to
    					  collect native fence info from
    					  s_fence->parent, but it's
    					  NULL =>
    					  BOOM, we can't do our native
    					  wait
    
    - calls drm_sched_fence_set_parent()
    
    v2:
    * Fix commit message
    
    v3:
    * Add a detailed description of the race to the commit message
    * Add Luben's R-b
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Cc: Frank Binns <[email protected]>
    Cc: Sarah Walker <[email protected]>
    Cc: Donald Robson <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Sumit Semwal <[email protected]>
    Cc: "Christian König" <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    dma-buf: add dma_fence_timestamp helper
    
    When a fence signals there is a very small race window where the timestamp
    isn't updated yet. sync_file solves this by busy waiting for the
    timestamp to appear, but on other ocassions didn't handled this
    correctly.
    
    Provide a dma_fence_timestamp() helper function for this and use it in
    all appropriate cases.
    
    Another alternative would be to grab the spinlock when that happens.
    
    v2 by teddy: add a wait parameter to wait for the timestamp to show up, in case
       the accurate timestamp is needed and/or the timestamp is not based on
       ktime (e.g. hw timestamp)
    v3 chk: drop the parameter again for unified handling
    
    Signed-off-by: Yunxiang Li <[email protected]>
    Signed-off-by: Christian König <[email protected]>
    Fixes: 1774baa64f93 ("drm/scheduler: Change scheduled fence track v2")
    Reviewed-by: Alex Deucher <[email protected]>
    CC: [email protected]
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/sched: Convert the GPU scheduler to variable number of run-queues
    
    The GPU scheduler has now a variable number of run-queues, which are set
    up at
    drm_sched_init() time. This way, each driver announces how many
    run-queues it
    requires (supports) per each GPU scheduler it creates. Note, that
    run-queues
    correspond to scheduler "priorities", thus if the number of run-queues
    is set
    to 1 at drm_sched_init(), then that scheduler supports a single
    run-queue,
    i.e. single "priority". If a driver further sets a single entity per
    run-queue, then this creates a 1-to-1 correspondence between a scheduler
    and
    a scheduled entity.
    
    Cc: Lucas Stach <[email protected]>
    Cc: Russell King <[email protected]>
    Cc: Qiang Yu <[email protected]>
    Cc: Rob Clark <[email protected]>
    Cc: Abhinav Kumar <[email protected]>
    Cc: Dmitry Baryshkov <[email protected]>
    Cc: Danilo Krummrich <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Cc: Boris Brezillon <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Cc: Christian König <[email protected]>
    Cc: Emma Anholt <[email protected]>
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Signed-off-by: Luben Tuikov <[email protected]>
    Acked-by: Christian König <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    
    drm/sched: Add drm_sched_wqueue_* helpers
    
    Add scheduler wqueue ready, stop, and start helpers to hide the
    implementation details of the scheduler from the drivers.
    
    v2:
      - s/sched_wqueue/sched_wqueue (Luben)
      - Remove the extra white line after the return-statement (Luben)
      - update drm_sched_wqueue_ready comment (Luben)
    
    Cc: Luben Tuikov <[email protected]>
    Signed-off-by: Matthew Brost <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Convert drm scheduler to use a work queue rather than kthread
    
    In Xe, the new Intel GPU driver, a choice has made to have a 1 to 1
    mapping between a drm_gpu_scheduler and drm_sched_entity. At first this
    seems a bit odd but let us explain the reasoning below.
    
    1. In Xe the submission order from multiple drm_sched_entity is not
    guaranteed to be the same completion even if targeting the same hardware
    engine. This is because in Xe we have a firmware scheduler, the GuC,
    which allowed to reorder, timeslice, and preempt submissions. If a using
    shared drm_gpu_scheduler across multiple drm_sched_entity, the TDR falls
    apart as the TDR expects submission order == completion order. Using a
    dedicated drm_gpu_scheduler per drm_sched_entity solve this problem.
    
    2. In Xe submissions are done via programming a ring buffer (circular
    buffer), a drm_gpu_scheduler provides a limit on number of jobs, if the
    limit of number jobs is set to RING_SIZE / MAX_SIZE_PER_JOB we get flow
    control on the ring for free.
    
    A problem with this design is currently a drm_gpu_scheduler uses a
    kthread for submission / job cleanup. This doesn't scale if a large
    number of drm_gpu_scheduler are used. To work around the scaling issue,
    use a worker rather than kthread for submission / job cleanup.
    
    v2:
      - (Rob Clark) Fix msm build
      - Pass in run work queue
    v3:
      - (Boris) don't have loop in worker
    v4:
      - (Tvrtko) break out submit ready, stop, start helpers into own patch
    v5:
      - (Boris) default to ordered work queue
    v6:
      - (Luben / checkpatch) fix alignment in msm_ringbuffer.c
      - (Luben) s/drm_sched_submit_queue/drm_sched_wqueue_enqueue
      - (Luben) Update comment for drm_sched_wqueue_enqueue
      - (Luben) Positive check for submit_wq in drm_sched_init
      - (Luben) s/alloc_submit_wq/own_submit_wq
    v7:
      - (Luben) s/drm_sched_wqueue_enqueue/drm_sched_run_job_queue
    v8:
      - (Luben) Adjust var names / comments
    
    Signed-off-by: Matthew Brost <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Split free_job into own work item
    
    Rather than call free_job and run_job in same work item have a dedicated
    work item for each. This aligns with the design and intended use of work
    queues.
    
    v2:
       - Test for DMA_FENCE_FLAG_TIMESTAMP_BIT before setting
         timestamp in free_job() work item (Danilo)
    v3:
      - Drop forward dec of drm_sched_select_entity (Boris)
      - Return in drm_sched_run_job_work if entity NULL (Boris)
    v4:
      - Replace dequeue with peek and invert logic (Luben)
      - Wrap to 100 lines (Luben)
      - Update comments for *_queue / *_queue_if_ready functions (Luben)
    v5:
      - Drop peek argument, blindly reinit idle (Luben)
      - s/drm_sched_free_job_queue_if_ready/drm_sched_free_job_queue_if_done (Luben)
      - Update work_run_job & work_free_job kernel doc (Luben)
    v6:
      - Do not move drm_sched_select_entity in file (Luben)
    
    Signed-off-by: Matthew Brost <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Add drm_sched_start_timeout_unlocked helper
    
    Also add a lockdep assert to drm_sched_start_timeout.
    
    Signed-off-by: Matthew Brost <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Add a helper to queue TDR immediately
    
    Add a helper whereby a driver can invoke TDR immediately.
    
    v2:
     - Drop timeout args, rename function, use mod delayed work (Luben)
    v3:
     - s/XE/Xe (Luben)
     - present tense in commit message (Luben)
     - Adjust comment for drm_sched_tdr_queue_imm (Luben)
    v4:
     - Adjust commit message (Luben)
    
    Cc: Luben Tuikov <[email protected]>
    Signed-off-by: Matthew Brost <[email protected]>
    Reviewed-by: Luben Tuikov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Rename drm_sched_get_cleanup_job to be more descriptive
    
    "Get cleanup job" makes it sound like helper is returning a job which will
    execute some cleanup, or something, while the kerneldoc itself accurately
    says "fetch the next _finished_ job". So lets rename the helper to be self
    documenting.
    
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Move free worker re-queuing out of the if block
    
    Whether or not there are more jobs to clean up does not depend on the
    existance of the current job, given both drm_sched_get_finished_job and
    drm_sched_free_job_queue_if_done take and drop the job list lock.
    Therefore it is confusing to make it read like there is a dependency.
    
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Rename drm_sched_free_job_queue to be more descriptive
    
    The current name makes it sound like helper will free a queue, while what
    it does is it enqueues the free job worker.
    
    Rename it to drm_sched_run_free_queue to align with existing
    drm_sched_run_job_queue.
    
    Despite that creating an illusion there are two queues, while in reality
    there is only one, at least it creates a consistent naming for the two
    enqueuing helpers.
    
    At the same time simplify the "if done" helper by dropping the suffix and
    adding a double underscore prefix to the one which just enqueues.
    
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Rename drm_sched_run_job_queue_if_ready and clarify kerneldoc
    
    "If ready" is not immediately clear what it means - is the scheduler
    ready or something else? Drop the suffix, clarify kerneldoc, and employ
    the same naming scheme as in drm_sched_run_free_queue:
    
     - drm_sched_run_job_queue   - enqueues if there is something to enqueue
                                   *and* scheduler is ready (can queue)
     - __drm_sched_run_job_queue - low-level helper to simply queue the job
    
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Drop suffix from drm_sched_wakeup_if_can_queue
    
    Because a) helper is exported to other parts of the scheduler and
    b) there isn't a plain drm_sched_wakeup to begin with, I think we can
    drop the suffix and by doing so separate the intimiate knowledge
    between the scheduler components a bit better.
    
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Cc: Luben Tuikov <[email protected]>
    Cc: Matthew Brost <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Luben Tuikov <[email protected]>
    Signed-off-by: Luben Tuikov <[email protected]>
    
    drm/sched: Don't disturb the entity when in RR-mode scheduling
    
    Don't call drm_sched_select_entity() in drm_sched_run_job_queue().  In fact,
    rename __drm_sched_run_job_queue() to just drm_sched_run_job_queue(), and let
    it do just that, schedule the work item for execution.
    
    The problem is that drm_sched_run_job_queue() calls drm_sched_select_entity()
    to determine if the scheduler has an entity ready in one of its run-queues,
    and in the case of the Round-Robin (RR) scheduling, the function
    drm_sched_rq_select_entity_rr() does just that, selects the _next_ entity
    which is ready, sets up the run-queue and completion and returns that
    entity. The FIFO scheduling algorithm is unaffected.
    
    Now, since drm_sched_run_job_work() also calls drm_sched_select_entity(), then
    in the case of RR scheduling, that would result in drm_sched_select_entity()
    having been called twice, which may result in skipping a ready entity if more
    than one entity is ready. This commit fixes this by eliminating the call to
    drm_sched_select_entity() from drm_sched_run_job_queue(), and leaves it only
    in drm_sched_run_job_work().
    
    v2: Rebased on top of Tvrtko's renames series of patches. (Luben)
        Add fixes-tag. (Tvrtko)
    
    Signed-off-by: Luben Tuikov <[email protected]>
    Fixes: f7fe64ad0f22ff ("drm/sched: Split free_job into own work item")
    Reviewed-by: Matthew Brost <[email protected]>
    Reviewed-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/sched: Qualify drm_sched_wakeup() by drm_sched_entity_is_ready()
    
    Don't "wake up" the GPU scheduler unless the entity is ready, as well as we
    can queue to the scheduler, i.e. there is no point in waking up the scheduler
    for the entity unless the entity is ready.
    
    Signed-off-by: Luben Tuikov <[email protected]>
    Fixes: bc8d6a9df99038 ("drm/sched: Don't disturb the entity when in RR-mode scheduling")
    Reviewed-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/sched: implement dynamic job-flow control
    
    Currently, job flow control is implemented simply by limiting the number
    of jobs in flight. Therefore, a scheduler is initialized with a credit
    limit that corresponds to the number of jobs w…
    dliviu authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    21b6984 View commit details
    Browse the repository at this point in the history
  216. Configuration menu
    Copy the full SHA
    93b793d View commit details
    Browse the repository at this point in the history
  217. Configuration menu
    Copy the full SHA
    06d12f5 View commit details
    Browse the repository at this point in the history
  218. Sync Panthor with drm-misc-next by adding missing commits

    drm/panthor: Fix panthor_devfreq kerneldoc
    
    Missing '*' to have a valid kerneldoc prefix.
    
    Reported-by: kernel test robot <[email protected]>
    Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Explicitly include mm.h for the {virt, __phys)_to_pfn() defs
    
    Something on arm[64] must be including <asm/page.h>, but things fail
    to compile on sparc64. Make sure this header is included (through
    linux/mm.h) so this driver can be compile-tested on all supported
    architectures.
    
    Reported-by: kernel test robot <[email protected]>
    Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix the CONFIG_PM=n case
    
    Putting a hard dependency on CONFIG_PM is not possible because of a
    circular dependency issue, and it's actually not desirable either. In
    order to support this use case, we forcibly resume at init time, and
    suspend at unplug time.
    
    v2:
    - Drop the #ifdef CONFIG_PM section around panthor_pm_ops's definition
    
    Reported-by: kernel test robot <[email protected]>
    Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Don't use virt_to_pfn()
    
    virt_to_pfn() isn't available on x86 (except to xen) so breaks
    COMPILE_TEST builds. Avoid its use completely by instead storing the
    struct page pointer allocated in panthor_device_init() and using
    page_to_pfn() instead.
    
    Signed-off-by: Steven Price <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix spelling mistake "readyness" -> "readiness"
    
    There is a spelling mistake in a drm_err message. Fix it.
    
    Signed-off-by: Colin Ian King <[email protected]>
    Acked-by: Liviu Dudau <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix clang -Wunused-but-set-variable in tick_ctx_apply()
    
    Clang warns (or errors with CONFIG_WERROR):
    
      drivers/gpu/drm/panthor/panthor_sched.c:2048:6: error: variable 'csg_mod_mask' set but not used [-Werror,-Wunused-but-set-variable]
       2048 |         u32 csg_mod_mask = 0, free_csg_slots = 0;
            |             ^
      1 error generated.
    
    The variable is an artifact left over from refactoring that occurred
    during the development of the initial series for this driver. Remove it
    to resolve the warning.
    
    Fixes: de85488 ("drm/panthor: Add the scheduler logical block")
    Signed-off-by: Nathan Chancellor <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Justin Stitt <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Cleanup unused variable 'cookie'
    
    Commit 962f88b ("drm/panthor: Drop the dev_enter/exit() sections in
    _irq_suspend/resume()") removed the code that used the 'cookie' variable
    but left the declaration in place. Remove it.
    
    Fixes: 962f88b ("drm/panthor: Drop the dev_enter/exit() sections in _irq_suspend/resume()")
    Cc: Boris Brezillon <[email protected]>
    Cc: Steven Price <[email protected]>
    Signed-off-by: Liviu Dudau <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix some kerneldoc warnings
    
    When compiling with W=1 the build process will flag empty comments,
    misnamed documented variables and incorrect tagging of functions.
    Fix them in one go.
    
    Fixes: de85488 ("drm/panthor: Add the scheduler logical block")
    Cc: Boris Brezillon <[email protected]>
    Cc: Steven Price <[email protected]>
    Signed-off-by: Liviu Dudau <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix a couple -ENOMEM error codes
    
    These error paths forgot to set the error code to -ENOMEM.
    
    Fixes: 647810e ("drm/panthor: Add the MMU/VM logical block")
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix error code in panthor_gpu_init()
    
    This code accidentally returns zero/success on error because of a typo.
    It should be "irq" instead of "ret".  The other thing is that if
    platform_get_irq_byname() were to return zero then the error code would
    be cmplicated.  Fortunately, it does not so we can just change <= to
    < 0.
    
    Fixes: 5cd894e ("drm/panthor: Add the GPU logical block")
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix off by one in panthor_fw_get_cs_iface()
    
    The ->iface.streams[csg_slot][] array has MAX_CS_PER_CSG elements so
    this > comparison needs to be >= to prevent an out of bounds access.
    
    Fixes: 2718d91 ("drm/panthor: Add the FW logical block")
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix NULL vs IS_ERR() bug in panthor_probe()
    
    The devm_drm_dev_alloc() function returns error pointers.
    Update the error handling to check for error pointers instead of NULL.
    
    Fixes: 4bdca11 ("drm/panthor: Add the driver frontend block")
    Signed-off-by: Harshit Mogalapalli <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Don't return NULL from panthor_vm_get_heap_pool()
    
    The kernel doc says this function returns either a valid pointer
    or an ERR_PTR(), but in practice this function can return NULL if
    create=false. Fix the function to match the doc (return
    ERR_PTR(-ENOENT) instead of NULL) and adjust all call-sites
    accordingly.
    
    Fixes: 4bdca11 ("drm/panthor: Add the driver frontend block")
    Signed-off-by: Harshit Mogalapalli <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: clean up some types in panthor_sched_suspend()
    
    These variables should be u32 instead of u64 because they're only
    storing u32 values.  Also static checkers complain when we do:
    
    	suspended_slots &= ~upd_ctx.timedout_mask;
    
    In this code "suspended_slots" is a u64 and "upd_ctx.timedout_mask".  The
    mask clears out the top 32 bits which would likely be a bug if anything
    were stored there.
    
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Boris Brezillon <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    bbrezillon authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    6b6f326 View commit details
    Browse the repository at this point in the history
  219. Configuration menu
    Copy the full SHA
    fae30fc View commit details
    Browse the repository at this point in the history
  220. Configuration menu
    Copy the full SHA
    d0d42ae View commit details
    Browse the repository at this point in the history
  221. Configuration menu
    Copy the full SHA
    e833a93 View commit details
    Browse the repository at this point in the history
  222. Configuration menu
    Copy the full SHA
    a5a8711 View commit details
    Browse the repository at this point in the history
  223. Configuration menu
    Copy the full SHA
    b3ceccb View commit details
    Browse the repository at this point in the history
  224. Configuration menu
    Copy the full SHA
    0938539 View commit details
    Browse the repository at this point in the history
  225. Configuration menu
    Copy the full SHA
    01d6195 View commit details
    Browse the repository at this point in the history
  226. Configuration menu
    Copy the full SHA
    5a67150 View commit details
    Browse the repository at this point in the history
  227. Configuration menu
    Copy the full SHA
    9f3d77f View commit details
    Browse the repository at this point in the history
  228. Configuration menu
    Copy the full SHA
    e5fc215 View commit details
    Browse the repository at this point in the history
  229. arm64: dts: rock5 itx: change user-led2 to hdd-led2 function

    Set trigger to "disk-activity".
    
    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3386d89 View commit details
    Browse the repository at this point in the history
  230. arm64: dts: rock5 itx: modify the vp binding

    binding:
      * vp0 --- dp0
      * vp1 --- hdmi1
    
    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    db77297 View commit details
    Browse the repository at this point in the history
  231. arm64: dts: rock5 itx: delete duplicate nodes

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    c4654ca View commit details
    Browse the repository at this point in the history
  232. arm64: dts: rockchip: rock5itx: use mclkout_i2s0 for es8316

    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    3bdf1a0 View commit details
    Browse the repository at this point in the history
  233. arm64: dts: rockchip: rock-5-itx: update vp plane

    Fix error caused by cursor plane.
    
    Error log:
    [  357.605538] [drm:vop2_plane_atomic_check] *ERROR* Esmart2-win0 is invisible(src: pos[0, 0] rect[64 x 64] dst: pos[3012, 1988406] rect[64 x 64]
    
    Signed-off-by: Ken Wang <[email protected]>
    Ken-Vamrs authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fe98820 View commit details
    Browse the repository at this point in the history
  234. add rk3566-firefly-roc-pc dts

    chainsx authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    8c69ff8 View commit details
    Browse the repository at this point in the history
  235. arm64: dts: rockchip: Enable the missing av1d nodes

    Required by the RKMPP AV1 hardware decoding in
    Chromium (libv4l-rkmpp), FFmpeg and Gstreamer.
    
    Signed-off-by: nyanmisaka <[email protected]>
    nyanmisaka authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    b612298 View commit details
    Browse the repository at this point in the history
  236. Add board firefly-itx-3588j

    SeeleVolleri authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    71b0538 View commit details
    Browse the repository at this point in the history
  237. Configuration menu
    Copy the full SHA
    4a179ad View commit details
    Browse the repository at this point in the history
  238. Sync Panthor with 6.10-rc1

    drm/panthor: Kill the faulty_slots variable in panthor_sched_suspend()
    
    We can use upd_ctx.timedout_mask directly, and the faulty_slots update
    in the flush_caches_failed situation is never used.
    
    Suggested-by: Suggested-by: Steven Price <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Make sure we handle 'unknown group state' case properly
    
    When we check for state values returned by the FW, we only cover part of
    the 0:7 range. Make sure we catch FW inconsistencies by adding a default
    to the switch statement, and flagging the group state as unknown in that
    case.
    
    When an unknown state is detected, we trigger a reset, and consider the
    group as unusable after that point, to prevent the potential corruption
    from creeping in other places if we continue executing stuff on this
    context.
    
    v2:
    - Add Steve's R-b
    - Fix commit message
    
    Reported-by: Dan Carpenter <[email protected]>
    Closes: https://lore.kernel.org/dri-devel/[email protected]/T/#u
    Suggested-by: Steven Price <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix the FW reset logic
    
    In the post_reset function, if the fast reset didn't succeed, we
    are not clearing the fast_reset flag, which prevents firmware
    sections from being reloaded. While at it, use panthor_fw_stop()
    instead of manually writing DISABLE to the MCU_CONTROL register.
    
    Fixes: 2718d91 ("drm/panthor: Add the FW logical block")
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix tiler OOM handling to allow incremental rendering
    
    If the kernel couldn't allocate memory because we reached the maximum
    number of chunks but no render passes are in flight
    (panthor_heap_grow() returning -ENOMEM), we should defer the OOM
    handling to the FW by returning a NULL chunk. The FW will then call
    the tiler OOM exception handler, which is supposed to implement
    incremental rendering (execute an intermediate fragment job to flush
    the pending primitives, release the tiler memory that was used to
    store those primitives, and start over from where it stopped).
    
    Instead of checking for both ENOMEM and EBUSY, make panthor_heap_grow()
    return ENOMEM no matter the reason of this allocation failure, the FW
    doesn't care anyway.
    
    v3:
    - Add R-bs
    
    v2:
    - Make panthor_heap_grow() return -ENOMEM for all kind of allocation
      failures
    - Document the panthor_heap_grow() semantics
    
    Fixes: de85488 ("drm/panthor: Add the scheduler logical block")
    Signed-off-by: Antonino Maniscalco <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Make sure the tiler initial/max chunks are consistent
    
    It doesn't make sense to have a maximum number of chunks smaller than
    the initial number of chunks attached to the context.
    
    Fix the uAPI header to reflect the new constraint, and mention the
    undocumented "initial_chunk_count > 0" constraint while at it.
    
    v3:
    - Add R-b
    
    v2:
    - Fix the check
    
    Fixes: 9cca48f ("drm/panthor: Add the heap logical block")
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Relax the constraints on the tiler chunk size
    
    The field used to store the chunk size if 12 bits wide, and the encoding
    is chunk_size = chunk_header.chunk_size << 12, which gives us a
    theoretical [4k:8M] range. This range is further limited by
    implementation constraints, and all known implementations seem to
    impose a [128k:8M] range, so do the same here.
    
    We also relax the power-of-two constraint, which doesn't seem to
    exist on v10. This will allow userspace to fine-tune initial/max
    tiler memory on memory-constrained devices.
    
    v4:
    - Actually fix the range in the kerneldoc
    
    v3:
    - Add R-bs
    - Fix valid range in the kerneldoc
    
    v2:
    - Turn the power-of-two constraint into a page-aligned constraint to allow
      fine-tune of the initial/max heap memory size
    - Fix the panthor_heap_create() kerneldoc
    
    Fixes: 9cca48f ("drm/panthor: Add the heap logical block")
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Fix an off-by-one in the heap context retrieval logic
    
    The heap ID is used to index the heap context pool, and allocating
    in the [1:MAX_HEAPS_PER_POOL] leads to an off-by-one. This was
    originally to avoid returning a zero heap handle, but given the handle
    is formed with (vm_id << 16) | heap_id, with vm_id > 0, we already can't
    end up with a valid heap handle that's zero.
    
    v4:
    - s/XA_FLAGS_ALLOC1/XA_FLAGS_ALLOC/
    
    v3:
    - Allocate in the [0:MAX_HEAPS_PER_POOL-1] range
    
    v2:
    - New patch
    
    Fixes: 9cca48f ("drm/panthor: Add the heap logical block")
    Reported-by: Eric Smith <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Tested-by: Eric Smith <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Force an immediate reset on unrecoverable faults
    
    If the FW reports an unrecoverable fault, we need to reset the GPU
    before we can start re-using it again.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Keep a ref to the VM at the panthor_kernel_bo level
    
    Avoids use-after-free situations when panthor_fw_unplug() is called
    and the kernel BO was mapped to the FW VM.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Reset the FW VM to NULL on unplug
    
    This way get NULL derefs instead of use-after-free if the FW VM is
    referenced after the device has been unplugged.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Acked-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    
    drm/panthor: Call panthor_sched_post_reset() even if the reset failed
    
    We need to undo what was done in panthor_sched_pre_reset() even if the
    reset failed. We just flag all previously running groups as terminated
    when that happens to unblock things.
    
    Signed-off-by: Boris Brezillon <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Reviewed-by: Liviu Dudau <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    bbrezillon authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fc66253 View commit details
    Browse the repository at this point in the history
  239. Add rtw89 8852be/ce support from linux-6.2 (orangepi5-plus default wi…

    …fi6 pcie card) coming from xunlong commit-id: 96b2d2827a3f1e4719ebdfcac0b2108e8cbae932
    alexl83 authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fd33610 View commit details
    Browse the repository at this point in the history
  240. Configuration menu
    Copy the full SHA
    1da0bc3 View commit details
    Browse the repository at this point in the history
  241. rk3566-roc-pc add sata dtbo

    chainsx authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    24b80b7 View commit details
    Browse the repository at this point in the history
  242. add jlc taishanpi dts

    chainsx authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    d1e9f00 View commit details
    Browse the repository at this point in the history
  243. video: rockchip: rga3: fix 4:2:2 10-bit reading in rga2

    Like 4:2:0 10-bit, rotate_mode needs to be assigned to
    (1 << 6) when scaling is not going to be used in rga2.
    Or the output image is corrupted.
    
    Signed-off-by: nyanmisaka <[email protected]>
    nyanmisaka authored and amazingfate committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    08b884d View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. Configuration menu
    Copy the full SHA
    3d62c39 View commit details
    Browse the repository at this point in the history
  2. Revert "usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bo…

    …otup"
    
    This reverts commit d376ca6.
    
    It's reported that when using Radxa CM5 with RPI CM4 IO board,
    USB2.0 host ports don't work.
    
    By default RK3588 USB DRD DWC3_0 (usb@fc000000) is set in otg mode.
    In hardware, RK3588 TYPEC0_USB20_OTG_ID is pulled down to groud
    by a 2.2k resistor.
    
    It is needed to perform GCTL_CORE_SOFTRESET during bootup.
    
    Signed-off-by: Stephen Chen <[email protected]>
    (cherry picked from commit ec8a9ad)
    Signed-off-by: Joshua Riek <[email protected]>
    RadxaStephen authored and amazingfate committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    17680a7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    91eed95 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7ce8f06 View commit details
    Browse the repository at this point in the history
  5. add FriendlyElec's 6.1-rkr1 NanoPi R5S/R5C/R5S-LTS

    - straight from https://github.com/friendlyarm/kernel-rockchip/tree/nanopi6-v6.1.y
      - at sha1 34cd890017997ea3be9524977b278ed4c21298b9
    rpardini authored and amazingfate committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    baa16f4 View commit details
    Browse the repository at this point in the history
  6. arm64: dts: rockchip: rk3588: remove unused hdptxphy_hdmi_clk0/1 in b…

    …oard devicetree
    
    hdptxphy_hdmi_clk0/1 sub node is removed by commit fa7c72a:
    arm64: dts: rockchip: rk3588: remove unused sub node hdptxphy_hdmi_clk0/1.
    
    So remove them from all the board dts.
    amazingfate committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    ecda768 View commit details
    Browse the repository at this point in the history