OSDN Git Service

drm/amdgpu: Add vbios attribute only if supported
authorLijo Lazar <lijo.lazar@amd.com>
Thu, 15 Jun 2023 08:43:23 +0000 (14:13 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Jun 2023 19:35:26 +0000 (15:35 -0400)
Not all devices carry VBIOS version information. Add the device
attribute only if supported.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index 9ba4817..f4e3c13 100644 (file)
@@ -1791,6 +1791,15 @@ const struct attribute_group amdgpu_vbios_version_attr_group = {
        .attrs = amdgpu_vbios_version_attrs
 };
 
+int amdgpu_atombios_sysfs_init(struct amdgpu_device *adev)
+{
+       if (adev->mode_info.atom_context)
+               return devm_device_add_group(adev->dev,
+                                            &amdgpu_vbios_version_attr_group);
+
+       return 0;
+}
+
 /**
  * amdgpu_atombios_fini - free the driver info and callbacks for atombios
  *
index 4153d52..b639a80 100644 (file)
@@ -217,5 +217,6 @@ int amdgpu_atombios_get_data_table(struct amdgpu_device *adev,
 
 void amdgpu_atombios_fini(struct amdgpu_device *adev);
 int amdgpu_atombios_init(struct amdgpu_device *adev);
+int amdgpu_atombios_sysfs_init(struct amdgpu_device *adev);
 
 #endif
index e25f085..eda0a59 100644 (file)
@@ -4018,6 +4018,11 @@ fence_driver_init:
        /* Get a log2 for easy divisions. */
        adev->mm_stats.log2_max_MBps = ilog2(max(1u, max_MBps));
 
+       r = amdgpu_atombios_sysfs_init(adev);
+       if (r)
+               drm_err(&adev->ddev,
+                       "registering atombios sysfs failed (%d).\n", r);
+
        r = amdgpu_pm_sysfs_init(adev);
        if (r)
                DRM_ERROR("registering pm sysfs failed (%d).\n", r);
index 3b711ba..2483950 100644 (file)
@@ -2899,12 +2899,10 @@ static struct pci_error_handlers amdgpu_pci_err_handler = {
 
 extern const struct attribute_group amdgpu_vram_mgr_attr_group;
 extern const struct attribute_group amdgpu_gtt_mgr_attr_group;
-extern const struct attribute_group amdgpu_vbios_version_attr_group;
 
 static const struct attribute_group *amdgpu_sysfs_groups[] = {
        &amdgpu_vram_mgr_attr_group,
        &amdgpu_gtt_mgr_attr_group,
-       &amdgpu_vbios_version_attr_group,
        NULL,
 };