Commit 9987a6f3 authored by Hawking Zhang's avatar Hawking Zhang Committed by Alex Deucher
Browse files

drm/amdgpu: Init partition_mode and xcc_mask for GFX_IMU_PARTITION_SWITCH



Set partition_mode and physical xcc mask fields in
GFX_IMU_PARTITION_SWITCH register

v2: cleanup (Alex)

Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: default avatarLikun Gao <Likun.Gao@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e2a6a4e6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@ struct amdgpu_imu_funcs {
    void (*program_rlc_ram)(struct amdgpu_device *adev);
    int (*wait_for_reset_status)(struct amdgpu_device *adev);
    int (*switch_compute_partition)(struct amdgpu_device *adev,
				    int num_xccs_per_xcp);
				    int num_xccs_per_xcp,
				    int compute_partition_mode);
};

struct imu_rlc_ram_golden {
+3 −1
Original line number Diff line number Diff line
@@ -134,11 +134,13 @@ static int imu_v12_1_load_microcode(struct amdgpu_device *adev)
}

static int imu_v12_1_switch_compute_partition(struct amdgpu_device *adev,
					      int num_xccs_per_xcp)
					      int num_xccs_per_xcp,
					      int compute_partition_mode)
{
	int ret;

	if (adev->psp.funcs) {
		/*TODO: revisit asp interface once it's avaialble */
		ret = psp_spatial_partition(&adev->psp,
					    NUM_XCC(adev->gfx.xcc_mask) /
						    num_xccs_per_xcp);
+1 −1
Original line number Diff line number Diff line
@@ -652,7 +652,7 @@ static int soc_v1_0_switch_partition_mode(struct amdgpu_xcp_mgr *xcp_mgr,
	num_xcc_per_xcp = __soc_v1_0_get_xcc_per_xcp(xcp_mgr, mode);
	if (adev->gfx.imu.funcs &&
	    adev->gfx.imu.funcs->switch_compute_partition)
		adev->gfx.imu.funcs->switch_compute_partition(xcp_mgr->adev, num_xcc_per_xcp);
		adev->gfx.imu.funcs->switch_compute_partition(xcp_mgr->adev, num_xcc_per_xcp, mode);

	/* Init info about new xcps */
	*num_xcps = num_xcc / num_xcc_per_xcp;