drm/amdgpu: Show current compute partition on VF
Enable sysfs node for current compute partition mode on VFs also. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Vignesh Chander <Vignesh.Chander@amd.com> Tested-by: Vignesh Chander <Vignesh.Chander@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -1604,21 +1604,46 @@ static DEVICE_ATTR(available_compute_partition, 0444,
|
||||
|
||||
int amdgpu_gfx_sysfs_init(struct amdgpu_device *adev)
|
||||
{
|
||||
struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
|
||||
bool xcp_switch_supported;
|
||||
int r;
|
||||
|
||||
if (!xcp_mgr)
|
||||
return 0;
|
||||
|
||||
xcp_switch_supported =
|
||||
(xcp_mgr->funcs && xcp_mgr->funcs->switch_partition_mode);
|
||||
|
||||
if (!xcp_switch_supported)
|
||||
dev_attr_current_compute_partition.attr.mode &=
|
||||
~(S_IWUSR | S_IWGRP | S_IWOTH);
|
||||
|
||||
r = device_create_file(adev->dev, &dev_attr_current_compute_partition);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = device_create_file(adev->dev, &dev_attr_available_compute_partition);
|
||||
if (xcp_switch_supported)
|
||||
r = device_create_file(adev->dev,
|
||||
&dev_attr_available_compute_partition);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void amdgpu_gfx_sysfs_fini(struct amdgpu_device *adev)
|
||||
{
|
||||
struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
|
||||
bool xcp_switch_supported;
|
||||
|
||||
if (!xcp_mgr)
|
||||
return;
|
||||
|
||||
xcp_switch_supported =
|
||||
(xcp_mgr->funcs && xcp_mgr->funcs->switch_partition_mode);
|
||||
device_remove_file(adev->dev, &dev_attr_current_compute_partition);
|
||||
device_remove_file(adev->dev, &dev_attr_available_compute_partition);
|
||||
|
||||
if (xcp_switch_supported)
|
||||
device_remove_file(adev->dev,
|
||||
&dev_attr_available_compute_partition);
|
||||
}
|
||||
|
||||
int amdgpu_gfx_sysfs_isolation_shader_init(struct amdgpu_device *adev)
|
||||
|
||||
@@ -1165,12 +1165,9 @@ static int gfx_v9_4_3_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
|
||||
if (!amdgpu_sriov_vf(adev)) {
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
}
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
gfx_v9_4_3_alloc_ip_dump(adev);
|
||||
|
||||
@@ -1201,8 +1198,7 @@ static int gfx_v9_4_3_sw_fini(struct amdgpu_ip_block *ip_block)
|
||||
gfx_v9_4_3_mec_fini(adev);
|
||||
amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
|
||||
gfx_v9_4_3_free_microcode(adev);
|
||||
if (!amdgpu_sriov_vf(adev))
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
|
||||
Reference in New Issue
Block a user