drm/amdgpu: use IP discovery table for renoir
[platform/kernel/linux-rpi.git] / drivers / gpu / drm / amd / amdgpu / soc15.c
index c7c9e07..623745b 100644 (file)
@@ -670,14 +670,25 @@ static uint32_t soc15_get_rev_id(struct amdgpu_device *adev)
 
 int soc15_set_ip_blocks(struct amdgpu_device *adev)
 {
+       int r;
+
        /* Set IP register base before any HW register access */
        switch (adev->asic_type) {
        case CHIP_VEGA10:
        case CHIP_VEGA12:
        case CHIP_RAVEN:
-       case CHIP_RENOIR:
                vega10_reg_base_init(adev);
                break;
+       case CHIP_RENOIR:
+               if (amdgpu_discovery) {
+                       r = amdgpu_discovery_reg_base_init(adev);
+                       if (r) {
+                               DRM_WARN("failed to init reg base from ip discovery table, "
+                                        "fallback to legacy init method\n");
+                               vega10_reg_base_init(adev);
+                       }
+               }
+               break;
        case CHIP_VEGA20:
                vega20_reg_base_init(adev);
                break;