mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
drm/amdgpu: Group gfx sysfs functions
Make amdgpu_gfx_sysfs_init/fini functions as common entry points for all gfx related sysfs nodes. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
12e5df81bb
commit
047767ddc9
|
|
@ -1602,7 +1602,7 @@ static DEVICE_ATTR(current_compute_partition, 0644,
|
|||
static DEVICE_ATTR(available_compute_partition, 0444,
|
||||
amdgpu_gfx_get_available_compute_partition, NULL);
|
||||
|
||||
int amdgpu_gfx_sysfs_init(struct amdgpu_device *adev)
|
||||
static int amdgpu_gfx_sysfs_xcp_init(struct amdgpu_device *adev)
|
||||
{
|
||||
struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
|
||||
bool xcp_switch_supported;
|
||||
|
|
@ -1629,7 +1629,7 @@ int amdgpu_gfx_sysfs_init(struct amdgpu_device *adev)
|
|||
return r;
|
||||
}
|
||||
|
||||
void amdgpu_gfx_sysfs_fini(struct amdgpu_device *adev)
|
||||
static void amdgpu_gfx_sysfs_xcp_fini(struct amdgpu_device *adev)
|
||||
{
|
||||
struct amdgpu_xcp_mgr *xcp_mgr = adev->xcp_mgr;
|
||||
bool xcp_switch_supported;
|
||||
|
|
@ -1646,25 +1646,47 @@ void amdgpu_gfx_sysfs_fini(struct amdgpu_device *adev)
|
|||
&dev_attr_available_compute_partition);
|
||||
}
|
||||
|
||||
int amdgpu_gfx_sysfs_isolation_shader_init(struct amdgpu_device *adev)
|
||||
static int amdgpu_gfx_sysfs_isolation_shader_init(struct amdgpu_device *adev)
|
||||
{
|
||||
int r;
|
||||
|
||||
r = device_create_file(adev->dev, &dev_attr_enforce_isolation);
|
||||
if (r)
|
||||
return r;
|
||||
if (adev->gfx.enable_cleaner_shader)
|
||||
r = device_create_file(adev->dev, &dev_attr_run_cleaner_shader);
|
||||
|
||||
r = device_create_file(adev->dev, &dev_attr_run_cleaner_shader);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return 0;
|
||||
return r;
|
||||
}
|
||||
|
||||
void amdgpu_gfx_sysfs_isolation_shader_fini(struct amdgpu_device *adev)
|
||||
static void amdgpu_gfx_sysfs_isolation_shader_fini(struct amdgpu_device *adev)
|
||||
{
|
||||
device_remove_file(adev->dev, &dev_attr_enforce_isolation);
|
||||
device_remove_file(adev->dev, &dev_attr_run_cleaner_shader);
|
||||
if (adev->gfx.enable_cleaner_shader)
|
||||
device_remove_file(adev->dev, &dev_attr_run_cleaner_shader);
|
||||
}
|
||||
|
||||
int amdgpu_gfx_sysfs_init(struct amdgpu_device *adev)
|
||||
{
|
||||
int r;
|
||||
|
||||
r = amdgpu_gfx_sysfs_xcp_init(adev);
|
||||
if (r) {
|
||||
dev_err(adev->dev, "failed to create xcp sysfs files");
|
||||
return r;
|
||||
}
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
if (r)
|
||||
dev_err(adev->dev, "failed to create isolation sysfs files");
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void amdgpu_gfx_sysfs_fini(struct amdgpu_device *adev)
|
||||
{
|
||||
amdgpu_gfx_sysfs_xcp_fini(adev);
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
}
|
||||
|
||||
int amdgpu_gfx_cleaner_shader_sw_init(struct amdgpu_device *adev,
|
||||
|
|
|
|||
|
|
@ -579,8 +579,6 @@ void amdgpu_gfx_cleaner_shader_sw_fini(struct amdgpu_device *adev);
|
|||
void amdgpu_gfx_cleaner_shader_init(struct amdgpu_device *adev,
|
||||
unsigned int cleaner_shader_size,
|
||||
const void *cleaner_shader_ptr);
|
||||
int amdgpu_gfx_sysfs_isolation_shader_init(struct amdgpu_device *adev);
|
||||
void amdgpu_gfx_sysfs_isolation_shader_fini(struct amdgpu_device *adev);
|
||||
void amdgpu_gfx_enforce_isolation_handler(struct work_struct *work);
|
||||
void amdgpu_gfx_enforce_isolation_ring_begin_use(struct amdgpu_ring *ring);
|
||||
void amdgpu_gfx_enforce_isolation_ring_end_use(struct amdgpu_ring *ring);
|
||||
|
|
|
|||
|
|
@ -4853,9 +4853,10 @@ static int gfx_v10_0_sw_init(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v10_0_alloc_ip_dump(adev);
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -4907,7 +4908,7 @@ static int gfx_v10_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
gfx_v10_0_rlc_backdoor_autoload_buffer_fini(adev);
|
||||
|
||||
gfx_v10_0_free_microcode(adev);
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
kfree(adev->gfx.ip_dump_compute_queues);
|
||||
|
|
|
|||
|
|
@ -1708,7 +1708,7 @@ static int gfx_v11_0_sw_init(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v11_0_alloc_ip_dump(adev);
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
|
|
@ -1773,7 +1773,7 @@ static int gfx_v11_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v11_0_free_microcode(adev);
|
||||
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
kfree(adev->gfx.ip_dump_compute_queues);
|
||||
|
|
|
|||
|
|
@ -1466,7 +1466,7 @@ static int gfx_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v12_0_alloc_ip_dump(adev);
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
|
|
@ -1529,7 +1529,7 @@ static int gfx_v12_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v12_0_free_microcode(adev);
|
||||
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
kfree(adev->gfx.ip_dump_compute_queues);
|
||||
|
|
|
|||
|
|
@ -2402,7 +2402,7 @@ static int gfx_v9_0_sw_init(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v9_0_alloc_ip_dump(adev);
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
r = amdgpu_gfx_sysfs_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
|
|
@ -2443,7 +2443,7 @@ static int gfx_v9_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
}
|
||||
gfx_v9_0_free_microcode(adev);
|
||||
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
kfree(adev->gfx.ip_dump_compute_queues);
|
||||
|
|
|
|||
|
|
@ -1171,10 +1171,6 @@ static int gfx_v9_4_3_sw_init(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
gfx_v9_4_3_alloc_ip_dump(adev);
|
||||
|
||||
r = amdgpu_gfx_sysfs_isolation_shader_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1199,7 +1195,6 @@ static int gfx_v9_4_3_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
|
||||
gfx_v9_4_3_free_microcode(adev);
|
||||
amdgpu_gfx_sysfs_fini(adev);
|
||||
amdgpu_gfx_sysfs_isolation_shader_fini(adev);
|
||||
|
||||
kfree(adev->gfx.ip_dump_core);
|
||||
kfree(adev->gfx.ip_dump_compute_queues);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user