drm/amdgpu:add callback in cgs for sriov detect
authorFrank Min <Frank.Min@amd.com>
Wed, 27 Apr 2016 12:04:58 +0000 (20:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Oct 2016 18:38:22 +0000 (14:38 -0400)
Signed-off-by: Frank Min <Frank.Min@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
drivers/gpu/drm/amd/include/cgs_common.h

index 44f565465b0975a296a61dfd03aa8c6b3e0e132e..1950c25557de2e085e2a974d9a305bd0fd1cdce7 100644 (file)
@@ -853,6 +853,12 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
        return 0;
 }
 
+static int amdgpu_cgs_is_virtualization_enabled(void *cgs_device)
+{
+       CGS_FUNC_ADEV;
+       return amdgpu_sriov_vf(adev);
+}
+
 static int amdgpu_cgs_query_system_info(struct cgs_device *cgs_device,
                                        struct cgs_system_info *sys_info)
 {
@@ -1206,6 +1212,7 @@ static const struct cgs_ops amdgpu_cgs_ops = {
        amdgpu_cgs_notify_dpm_enabled,
        amdgpu_cgs_call_acpi_method,
        amdgpu_cgs_query_system_info,
+       amdgpu_cgs_is_virtualization_enabled
 };
 
 static const struct cgs_os_ops amdgpu_cgs_os_ops = {
index df7c18b6a02a199bc9eda3fdec4f2406f5aabdf8..9695c2ebd92a3518f5da6f4268371d5d64d0e933 100755 (executable)
@@ -619,6 +619,8 @@ typedef int (*cgs_call_acpi_method)(struct cgs_device *cgs_device,
 typedef int (*cgs_query_system_info)(struct cgs_device *cgs_device,
                                struct cgs_system_info *sys_info);
 
+typedef int (*cgs_is_virtualization_enabled_t)(void *cgs_device);
+
 struct cgs_ops {
        /* memory management calls (similar to KFD interface) */
        cgs_gpu_mem_info_t gpu_mem_info;
@@ -670,6 +672,7 @@ struct cgs_ops {
        cgs_call_acpi_method call_acpi_method;
        /* get system info */
        cgs_query_system_info query_system_info;
+       cgs_is_virtualization_enabled_t is_virtualization_enabled;
 };
 
 struct cgs_os_ops; /* To be define in OS-specific CGS header */
@@ -773,4 +776,6 @@ struct cgs_device
        CGS_CALL(get_pci_resource, cgs_device, resource_type, size, offset, \
        resource_base)
 
+#define cgs_is_virtualization_enabled(cgs_device) \
+               CGS_CALL(is_virtualization_enabled, cgs_device)
 #endif /* _CGS_COMMON_H */