]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
Merge tag 'v5.3-rc1' into regulator-5.3
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_virt.c
index 7d484fad3909015d956125995be9ff535450ea70..59dd204498c52dff4bc1d1e62ecefa34e419d87f 100644 (file)
  *
  */
 
+#include <linux/module.h>
+
+#include <drm/drm_drv.h>
+
 #include "amdgpu.h"
 
 bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev)
@@ -386,7 +390,8 @@ static uint32_t parse_clk(char *buf, bool min)
                 if (!ptr)
                         break;
                 ptr+=2;
-                clk = simple_strtoul(ptr, NULL, 10);
+               if (kstrtou32(ptr, 10, &clk))
+                       return 0;
         } while (!min);
 
         return clk * 100;
@@ -426,3 +431,47 @@ uint32_t amdgpu_virt_get_mclk(struct amdgpu_device *adev, bool lowest)
        return clk;
 }
 
+void amdgpu_virt_init_reg_access_mode(struct amdgpu_device *adev)
+{
+       struct amdgpu_virt *virt = &adev->virt;
+
+       if (virt->ops && virt->ops->init_reg_access_mode)
+               virt->ops->init_reg_access_mode(adev);
+}
+
+bool amdgpu_virt_support_psp_prg_ih_reg(struct amdgpu_device *adev)
+{
+       bool ret = false;
+       struct amdgpu_virt *virt = &adev->virt;
+
+       if (amdgpu_sriov_vf(adev)
+               && (virt->reg_access_mode & AMDGPU_VIRT_REG_ACCESS_PSP_PRG_IH))
+               ret = true;
+
+       return ret;
+}
+
+bool amdgpu_virt_support_rlc_prg_reg(struct amdgpu_device *adev)
+{
+       bool ret = false;
+       struct amdgpu_virt *virt = &adev->virt;
+
+       if (amdgpu_sriov_vf(adev)
+               && (virt->reg_access_mode & AMDGPU_VIRT_REG_ACCESS_RLC)
+               && !(amdgpu_sriov_runtime(adev)))
+               ret = true;
+
+       return ret;
+}
+
+bool amdgpu_virt_support_skip_setting(struct amdgpu_device *adev)
+{
+       bool ret = false;
+       struct amdgpu_virt *virt = &adev->virt;
+
+       if (amdgpu_sriov_vf(adev)
+               && (virt->reg_access_mode & AMDGPU_VIRT_REG_SKIP_SEETING))
+               ret = true;
+
+       return ret;
+}
This page took 0.035083 seconds and 4 git commands to generate.