Creating a queue could fail due to various reasons and returning
-EINVAL does not suffice in case where fw does not support the uq's

It's better to add a one time log that saves unnecessary debug effort.

Signed-off-by: Sunil Khatri <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index 4c6e080671a7..f16af852725a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -659,6 +659,24 @@ amdgpu_userq_create(struct drm_file *filp, union 
drm_amdgpu_userq *args)
 
        uq_funcs = adev->userq_funcs[args->in.ip_type];
        if (!uq_funcs) {
+               switch (args->in.ip_type) {
+               case AMDGPU_HW_IP_GFX:
+               case AMDGPU_HW_IP_COMPUTE:
+                       dev_warn_once(adev->dev,
+                                     "Usermode queues for GFX/COMPUTE is not 
supported by the fw "
+                                     "on this ASIC (me: %u, pfp: %u, mec: %u, 
mes: %u)\n",
+                                     adev->gfx.me_fw_version, 
adev->gfx.pfp_fw_version,
+                                     adev->gfx.mec_fw_version, 
adev->mes.fw_version[0]);
+                       break;
+               case AMDGPU_HW_IP_DMA:
+                       dev_warn_once(adev->dev,
+                                     "Usermode queues for SDMA is not 
supported by the fw "
+                                     "on this ASIC (sdma: %u)\n",
+                                     adev->sdma.instance[0].fw_version);
+                       break;
+               default:
+                       break;
+               }
                r = -EINVAL;
                goto err_pm_runtime;
        }
-- 
2.34.1

Reply via email to