提交 de33a329 编写于 作者: J Jack Xiao 提交者: Alex Deucher

drm/amdgpu: use the whole doorbell space for mes

Use the whole doorbell space for mes. Each queue in one process occupies
one doorbell slot to ring the queue submitting.
Signed-off-by: NJack Xiao <Jack.Xiao@amd.com>
Acked-by: NChristian König <christian.koenig@amd.com>
Reviewed-by: NHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 56443402
...@@ -1044,7 +1044,12 @@ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev) ...@@ -1044,7 +1044,12 @@ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)
adev->doorbell.base = pci_resource_start(adev->pdev, 2); adev->doorbell.base = pci_resource_start(adev->pdev, 2);
adev->doorbell.size = pci_resource_len(adev->pdev, 2); adev->doorbell.size = pci_resource_len(adev->pdev, 2);
adev->doorbell.num_doorbells = min_t(u32, adev->doorbell.size / sizeof(u32), if (adev->enable_mes) {
adev->doorbell.num_doorbells =
adev->doorbell.size / sizeof(u32);
} else {
adev->doorbell.num_doorbells =
min_t(u32, adev->doorbell.size / sizeof(u32),
adev->doorbell_index.max_assignment+1); adev->doorbell_index.max_assignment+1);
if (adev->doorbell.num_doorbells == 0) if (adev->doorbell.num_doorbells == 0)
return -EINVAL; return -EINVAL;
...@@ -1057,6 +1062,7 @@ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev) ...@@ -1057,6 +1062,7 @@ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)
*/ */
if (adev->asic_type >= CHIP_VEGA10) if (adev->asic_type >= CHIP_VEGA10)
adev->doorbell.num_doorbells += 0x400; adev->doorbell.num_doorbells += 0x400;
}
adev->doorbell.ptr = ioremap(adev->doorbell.base, adev->doorbell.ptr = ioremap(adev->doorbell.base,
adev->doorbell.num_doorbells * adev->doorbell.num_doorbells *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册