diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 4bf9bd96a46e..3751d262de68 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #endif | 46 | #endif |
47 | #include "vi.h" | 47 | #include "vi.h" |
48 | #include "bif/bif_4_1_d.h" | 48 | #include "bif/bif_4_1_d.h" |
49 | #include <linux/pci.h> | ||
49 | 50 | ||
50 | static int amdgpu_debugfs_regs_init(struct amdgpu_device *adev); | 51 | static int amdgpu_debugfs_regs_init(struct amdgpu_device *adev); |
51 | static void amdgpu_debugfs_regs_cleanup(struct amdgpu_device *adev); | 52 | static void amdgpu_debugfs_regs_cleanup(struct amdgpu_device *adev); |
@@ -1181,11 +1182,37 @@ int amdgpu_ip_block_version_cmp(struct amdgpu_device *adev, | |||
1181 | return 1; | 1182 | return 1; |
1182 | } | 1183 | } |
1183 | 1184 | ||
1185 | static void amdgpu_whether_enable_virtual_display(struct amdgpu_device *adev) | ||
1186 | { | ||
1187 | adev->enable_virtual_display = false; | ||
1188 | |||
1189 | if (amdgpu_virtual_display) { | ||
1190 | struct drm_device *ddev = adev->ddev; | ||
1191 | const char *pci_address_name = pci_name(ddev->pdev); | ||
1192 | char *pciaddstr, *pciaddstr_tmp, *pciaddname; | ||
1193 | |||
1194 | pciaddstr = kstrdup(amdgpu_virtual_display, GFP_KERNEL); | ||
1195 | pciaddstr_tmp = pciaddstr; | ||
1196 | while ((pciaddname = strsep(&pciaddstr_tmp, ";"))) { | ||
1197 | if (!strcmp(pci_address_name, pciaddname)) { | ||
1198 | adev->enable_virtual_display = true; | ||
1199 | break; | ||
1200 | } | ||
1201 | } | ||
1202 | |||
1203 | DRM_INFO("virtual display string:%s, %s:virtual_display:%d\n", | ||
1204 | amdgpu_virtual_display, pci_address_name, | ||
1205 | adev->enable_virtual_display); | ||
1206 | |||
1207 | kfree(pciaddstr); | ||
1208 | } | ||
1209 | } | ||
1210 | |||
1184 | static int amdgpu_early_init(struct amdgpu_device *adev) | 1211 | static int amdgpu_early_init(struct amdgpu_device *adev) |
1185 | { | 1212 | { |
1186 | int i, r; | 1213 | int i, r; |
1187 | 1214 | ||
1188 | DRM_INFO("virtual display enabled:%d\n", amdgpu_virtual_display); | 1215 | amdgpu_whether_enable_virtual_display(adev); |
1189 | 1216 | ||
1190 | switch (adev->asic_type) { | 1217 | switch (adev->asic_type) { |
1191 | case CHIP_TOPAZ: | 1218 | case CHIP_TOPAZ: |