drm/amdgpu:alloc mqd backup
this is required for restoring the mqds after GPU reset. Signed-off-by: Monk Liu <Monk.Liu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Xiangliang Yu <Xiangliang.Yu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
223049cd54
commit
9b49c3ab06
@ -783,6 +783,7 @@ struct amdgpu_mec {
|
|||||||
u32 num_pipe;
|
u32 num_pipe;
|
||||||
u32 num_mec;
|
u32 num_mec;
|
||||||
u32 num_queue;
|
u32 num_queue;
|
||||||
|
struct vi_mqd *mqd_backup[AMDGPU_MAX_COMPUTE_RINGS + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct amdgpu_kiq {
|
struct amdgpu_kiq {
|
||||||
|
@ -7315,6 +7315,11 @@ static int gfx_v8_0_compute_mqd_soft_init(struct amdgpu_device *adev)
|
|||||||
dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r);
|
dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* prepare MQD backup */
|
||||||
|
adev->gfx.mec.mqd_backup[AMDGPU_MAX_COMPUTE_RINGS] = kmalloc(sizeof(struct vi_mqd), GFP_KERNEL);
|
||||||
|
if (!adev->gfx.mec.mqd_backup[AMDGPU_MAX_COMPUTE_RINGS])
|
||||||
|
dev_warn(adev->dev, "no memory to create MQD backup for ring %s\n", ring->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create MQD for each KCQ */
|
/* create MQD for each KCQ */
|
||||||
@ -7329,6 +7334,11 @@ static int gfx_v8_0_compute_mqd_soft_init(struct amdgpu_device *adev)
|
|||||||
dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r);
|
dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* prepare MQD backup */
|
||||||
|
adev->gfx.mec.mqd_backup[i] = kmalloc(sizeof(struct vi_mqd), GFP_KERNEL);
|
||||||
|
if (!adev->gfx.mec.mqd_backup[i])
|
||||||
|
dev_warn(adev->dev, "no memory to create MQD backup for ring %s\n", ring->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user