Get your point. I don’t know why the test is passed however will revise later.
I definitely want the know if KFD is enabled before device init. Any suggestion? Or do you mind if the pdev is passed to probe in other way? — Sincerely Yours, Pixel On 30/10/2017, 4:20 PM, "Oded Gabbay" <[email protected]> wrote: >On Mon, Oct 30, 2017 at 9:57 AM, Pixel Ding <[email protected]> wrote: >> From: pding <[email protected]> >> >> Move kfd probe prior to device init. Release exclusive mode >> after hw_init if kfd is not enabled. >> >> Signed-off-by: pding <[email protected]> >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++ >> drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 +++-- >> 2 files changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> index 400dfaa..e46ec51 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> @@ -1716,6 +1716,9 @@ static int amdgpu_init(struct amdgpu_device *adev) >> adev->ip_blocks[i].status.hw = true; >> } >> >> + if (amdgpu_sriov_vf(adev) && !adev->kfd) >> + amdgpu_virt_release_full_gpu(adev, true); >> + >> return 0; >> } >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >> index 3e9760d..e91907c 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c >> @@ -138,6 +138,8 @@ int amdgpu_driver_load_kms(struct drm_device *dev, >> unsigned long flags) >> !pci_is_thunderbolt_attached(dev->pdev)) >> flags |= AMD_IS_PX; >> >> + amdgpu_amdkfd_device_probe(adev); >> + >> /* amdgpu_device_init should report only fatal error >> * like memory allocation failure or iomapping failure, >> * or memory manager initialization failure, it must >> @@ -170,7 +172,6 @@ int amdgpu_driver_load_kms(struct drm_device *dev, >> unsigned long flags) >> "Error during ACPI methods call\n"); >> } >> >> - amdgpu_amdkfd_device_probe(adev); >> amdgpu_amdkfd_device_init(adev); >> >> if (amdgpu_device_is_px(dev)) { >> @@ -182,7 +183,7 @@ int amdgpu_driver_load_kms(struct drm_device *dev, >> unsigned long flags) >> pm_runtime_put_autosuspend(dev->dev); >> } >> >> - if (amdgpu_sriov_vf(adev)) >> + if (amdgpu_sriov_vf(adev) && adev->kfd) >> amdgpu_virt_release_full_gpu(adev, true); >> >> out: >> -- >> 2.9.5 >> >> _______________________________________________ >> amd-gfx mailing list >> [email protected] >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx > >The amdkfd probe function uses the pdev field inside adev. That field >is initialized in device init, so you can't call amdkfd probe before >that function. >Oded _______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
