ring = &adev->vcn.inst[i].ring_enc[0];
                ring->use_doorbell = true;
-               ring->doorbell_index =
-                       (adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
-                       9 * vcn_inst;
+
+               if (!amdgpu_sriov_vf(adev))
+                       ring->doorbell_index =
+                               (adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
+                               9 * vcn_inst;
+               else
+                       ring->doorbell_index =
+                               (adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
+                               32 * vcn_inst;
+
                ring->vm_hub = AMDGPU_MMHUB0(adev->vcn.inst[i].aid_id);
                sprintf(ring->name, "vcn_unified_%d", adev->vcn.inst[i].aid_id);
                r = amdgpu_ring_init(adev, ring, 512, &adev->vcn.inst->irq, 0,