Print a warnning message if the system can't access
the resize bar register when using large bar.

Signed-off-by: Ma Jun <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 4b694696930e..e7aedb4bd66e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1417,6 +1417,12 @@ void amdgpu_device_wb_free(struct amdgpu_device *adev, 
u32 wb)
                __clear_bit(wb, adev->wb.used);
 }
 
+static inline void amdgpu_find_rb_register(struct amdgpu_device *adev)
+{
+       if (!pci_find_ext_capability(adev->pdev, PCI_EXT_CAP_ID_REBAR))
+               DRM_WARN("System can't access the resize bar register,please 
check!!\n");
+}
+
 /**
  * amdgpu_device_resize_fb_bar - try to resize FB BAR
  *
@@ -1444,8 +1450,10 @@ int amdgpu_device_resize_fb_bar(struct amdgpu_device 
*adev)
 
        /* skip if the bios has already enabled large BAR */
        if (adev->gmc.real_vram_size &&
-           (pci_resource_len(adev->pdev, 0) >= adev->gmc.real_vram_size))
+           (pci_resource_len(adev->pdev, 0) >= adev->gmc.real_vram_size)) {
+               amdgpu_find_rb_register(adev);
                return 0;
+       }
 
        /* Check if the root BUS has 64bit memory resources */
        root = adev->pdev->bus;
-- 
2.34.1

Reply via email to