*/
 static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)
 {
+       amdgpu_asic_init_doorbell_index(adev);
+
        /* No doorbell on SI hardware generation */
        if (adev->asic_type < CHIP_BONAIRE) {
                adev->doorbell.base = 0;
        DRM_INFO("register mmio base: 0x%08X\n", (uint32_t)adev->rmmio_base);
        DRM_INFO("register mmio size: %u\n", (unsigned)adev->rmmio_size);
 
-       /* doorbell bar mapping */
-       amdgpu_device_doorbell_init(adev);
-
        /* io port mapping */
        for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
                if (pci_resource_flags(adev->pdev, i) & IORESOURCE_IO) {
        if (r)
                return r;
 
+       /* doorbell bar mapping and doorbell index init*/
+       amdgpu_device_doorbell_init(adev);
+
        /* if we have > 1 VGA cards, then disable the amdgpu VGA resources */
        /* this will fail for cards that aren't VGA class devices, just
         * ignore it */