mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 22:22:08 +02:00
drm/amdgpu: update the handle ptr in hw_init
Update the *handle to amdgpu_ip_block ptr for all functions pointers of hw_init. Also update the ip_block ptr where ever needed as there were cyclic dependency of hw_init on resume. v2: squash in isp fix Signed-off-by: Sunil Khatri <sunil.khatri@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7feb4f3ad8
commit
58608034ed
|
|
@ -222,7 +222,7 @@ static const struct dmi_system_id acp_quirk_table[] = {
|
|||
* @handle: handle used to pass amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int acp_hw_init(void *handle)
|
||||
static int acp_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
u64 acp_base;
|
||||
|
|
@ -230,13 +230,7 @@ static int acp_hw_init(void *handle)
|
|||
u32 count = 0;
|
||||
struct i2s_platform_data *i2s_pdata = NULL;
|
||||
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
|
||||
const struct amdgpu_ip_block *ip_block =
|
||||
amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_ACP);
|
||||
|
||||
if (!ip_block)
|
||||
return -EINVAL;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amd_acp_hw_init(adev->acp.cgs_device,
|
||||
ip_block->version->major, ip_block->version->minor);
|
||||
|
|
|
|||
|
|
@ -2684,7 +2684,7 @@ static int amdgpu_device_ip_hw_init_phase1(struct amdgpu_device *adev)
|
|||
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON ||
|
||||
(amdgpu_sriov_vf(adev) && (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)) ||
|
||||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH) {
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(adev);
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
if (r) {
|
||||
DRM_ERROR("hw_init of IP block <%s> failed %d\n",
|
||||
adev->ip_blocks[i].version->funcs->name, r);
|
||||
|
|
@ -2709,7 +2709,7 @@ static int amdgpu_device_ip_hw_init_phase2(struct amdgpu_device *adev)
|
|||
if (!amdgpu_ip_member_of_hwini(
|
||||
adev, adev->ip_blocks[i].version->type))
|
||||
continue;
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(adev);
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
if (r) {
|
||||
DRM_ERROR("hw_init of IP block <%s> failed %d\n",
|
||||
adev->ip_blocks[i].version->funcs->name, r);
|
||||
|
|
@ -2751,7 +2751,7 @@ static int amdgpu_device_fw_loading(struct amdgpu_device *adev)
|
|||
return r;
|
||||
}
|
||||
} else {
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(adev);
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
if (r) {
|
||||
DRM_ERROR("hw_init of IP block <%s> failed %d\n",
|
||||
adev->ip_blocks[i].version->funcs->name, r);
|
||||
|
|
@ -2865,7 +2865,7 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
|
|||
|
||||
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
|
||||
/* need to do common hw init early so everything is set up for gmc */
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
if (r) {
|
||||
DRM_ERROR("hw_init %d failed %d\n", i, r);
|
||||
goto init_failed;
|
||||
|
|
@ -2882,7 +2882,7 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
|
|||
DRM_ERROR("amdgpu_mem_scratch_init failed %d\n", r);
|
||||
goto init_failed;
|
||||
}
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
|
||||
r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
if (r) {
|
||||
DRM_ERROR("hw_init %d failed %d\n", i, r);
|
||||
goto init_failed;
|
||||
|
|
@ -3626,7 +3626,7 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev)
|
|||
!block->status.valid)
|
||||
continue;
|
||||
|
||||
r = block->version->funcs->hw_init(adev);
|
||||
r = block->version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
DRM_INFO("RE-INIT-early: %s %s\n", block->version->funcs->name, r?"failed":"succeeded");
|
||||
if (r)
|
||||
return r;
|
||||
|
|
@ -3668,7 +3668,7 @@ static int amdgpu_device_ip_reinit_late_sriov(struct amdgpu_device *adev)
|
|||
if (block->version->type == AMD_IP_BLOCK_TYPE_SMC)
|
||||
r = block->version->funcs->resume(&adev->ip_blocks[i]);
|
||||
else
|
||||
r = block->version->funcs->hw_init(adev);
|
||||
r = block->version->funcs->hw_init(&adev->ip_blocks[i]);
|
||||
|
||||
DRM_INFO("RE-INIT-late: %s %s\n", block->version->funcs->name, r?"failed":"succeeded");
|
||||
if (r)
|
||||
|
|
|
|||
|
|
@ -49,17 +49,11 @@ static int isp_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: handle for amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int isp_hw_init(void *handle)
|
||||
static int isp_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_isp *isp = &adev->isp;
|
||||
|
||||
const struct amdgpu_ip_block *ip_block =
|
||||
amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_ISP);
|
||||
|
||||
if (!ip_block)
|
||||
return -EINVAL;
|
||||
|
||||
if (isp->funcs->hw_init != NULL)
|
||||
return isp->funcs->hw_init(isp);
|
||||
|
||||
|
|
|
|||
|
|
@ -2973,10 +2973,10 @@ static int psp_load_fw(struct amdgpu_device *adev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int psp_hw_init(void *handle)
|
||||
static int psp_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int ret;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
mutex_lock(&adev->firmware.mutex);
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -839,9 +839,9 @@ static int umsch_mm_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int umsch_mm_hw_init(void *handle)
|
||||
static int umsch_mm_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = umsch_mm_load_microcode(&adev->umsch_mm);
|
||||
|
|
@ -882,9 +882,7 @@ static int umsch_mm_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int umsch_mm_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return umsch_mm_hw_init(adev);
|
||||
return umsch_mm_hw_init(ip_block);
|
||||
}
|
||||
|
||||
void amdgpu_umsch_fwlog_init(struct amdgpu_umsch_mm *umsch_mm)
|
||||
|
|
|
|||
|
|
@ -555,9 +555,9 @@ static int amdgpu_vkms_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int amdgpu_vkms_hw_init(void *handle)
|
||||
static int amdgpu_vkms_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
switch (adev->asic_type) {
|
||||
#ifdef CONFIG_DRM_AMDGPU_SI
|
||||
|
|
@ -618,13 +618,12 @@ static int amdgpu_vkms_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int amdgpu_vkms_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_vkms_hw_init(adev);
|
||||
r = amdgpu_vkms_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
return drm_mode_config_helper_resume(adev_to_drm(adev));
|
||||
return drm_mode_config_helper_resume(adev_to_drm(ip_block->adev));
|
||||
}
|
||||
|
||||
static bool amdgpu_vkms_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -398,9 +398,9 @@ static int vpe_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int vpe_hw_init(void *handle)
|
||||
static int vpe_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_vpe *vpe = &adev->vpe;
|
||||
int ret;
|
||||
|
||||
|
|
@ -445,9 +445,7 @@ static int vpe_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int vpe_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return vpe_hw_init(adev);
|
||||
return vpe_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static void vpe_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)
|
||||
|
|
|
|||
|
|
@ -2134,9 +2134,9 @@ static int cik_common_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int cik_common_hw_init(void *handle)
|
||||
static int cik_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* move the golden regs per IP block */
|
||||
cik_init_golden_registers(adev);
|
||||
|
|
@ -2162,9 +2162,7 @@ static int cik_common_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int cik_common_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return cik_common_hw_init(adev);
|
||||
return cik_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool cik_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -321,9 +321,9 @@ static int cik_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int cik_ih_hw_init(void *handle)
|
||||
static int cik_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return cik_ih_irq_init(adev);
|
||||
}
|
||||
|
|
@ -346,9 +346,7 @@ static int cik_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int cik_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return cik_ih_hw_init(adev);
|
||||
return cik_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool cik_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -989,10 +989,10 @@ static int cik_sdma_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int cik_sdma_hw_init(void *handle)
|
||||
static int cik_sdma_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = cik_sdma_start(adev);
|
||||
if (r)
|
||||
|
|
@ -1020,11 +1020,9 @@ static int cik_sdma_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int cik_sdma_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
cik_sdma_soft_reset(ip_block);
|
||||
|
||||
return cik_sdma_hw_init(adev);
|
||||
return cik_sdma_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool cik_sdma_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@ static int cz_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int cz_ih_hw_init(void *handle)
|
||||
static int cz_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = cz_ih_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -342,9 +342,7 @@ static int cz_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int cz_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return cz_ih_hw_init(adev);
|
||||
return cz_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool cz_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -2862,10 +2862,10 @@ static int dce_v10_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dce_v10_0_hw_init(void *handle)
|
||||
static int dce_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
dce_v10_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -2928,7 +2928,7 @@ static int dce_v10_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
|
||||
adev->mode_info.bl_level);
|
||||
|
||||
ret = dce_v10_0_hw_init(adev);
|
||||
ret = dce_v10_0_hw_init(ip_block);
|
||||
|
||||
/* turn on the BL */
|
||||
if (adev->mode_info.bl_encoder) {
|
||||
|
|
|
|||
|
|
@ -2989,10 +2989,10 @@ static int dce_v11_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dce_v11_0_hw_init(void *handle)
|
||||
static int dce_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
dce_v11_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -3066,7 +3066,7 @@ static int dce_v11_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
|
||||
adev->mode_info.bl_level);
|
||||
|
||||
ret = dce_v11_0_hw_init(adev);
|
||||
ret = dce_v11_0_hw_init(ip_block);
|
||||
|
||||
/* turn on the BL */
|
||||
if (adev->mode_info.bl_encoder) {
|
||||
|
|
|
|||
|
|
@ -2760,10 +2760,10 @@ static int dce_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dce_v6_0_hw_init(void *handle)
|
||||
static int dce_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* disable vga render */
|
||||
dce_v6_0_set_vga_render_state(adev, false);
|
||||
|
|
@ -2823,7 +2823,7 @@ static int dce_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
|
||||
adev->mode_info.bl_level);
|
||||
|
||||
ret = dce_v6_0_hw_init(adev);
|
||||
ret = dce_v6_0_hw_init(ip_block);
|
||||
|
||||
/* turn on the BL */
|
||||
if (adev->mode_info.bl_encoder) {
|
||||
|
|
|
|||
|
|
@ -2782,10 +2782,10 @@ static int dce_v8_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dce_v8_0_hw_init(void *handle)
|
||||
static int dce_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* disable vga render */
|
||||
dce_v8_0_set_vga_render_state(adev, false);
|
||||
|
|
@ -2846,7 +2846,7 @@ static int dce_v8_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
|
||||
adev->mode_info.bl_level);
|
||||
|
||||
ret = dce_v8_0_hw_init(adev);
|
||||
ret = dce_v8_0_hw_init(ip_block);
|
||||
|
||||
/* turn on the BL */
|
||||
if (adev->mode_info.bl_encoder) {
|
||||
|
|
|
|||
|
|
@ -7366,10 +7366,10 @@ static void gfx_v10_0_disable_gpa_mode(struct amdgpu_device *adev)
|
|||
WREG32_SOC15(GC, 0, mmCPG_PSP_DEBUG, data);
|
||||
}
|
||||
|
||||
static int gfx_v10_0_hw_init(void *handle)
|
||||
static int gfx_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (!amdgpu_emu_mode)
|
||||
gfx_v10_0_init_golden_registers(adev);
|
||||
|
|
@ -7465,7 +7465,7 @@ static int gfx_v10_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v10_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v10_0_hw_init(ip_block->adev);
|
||||
return gfx_v10_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v10_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -4570,10 +4570,10 @@ static void gfx_v11_0_disable_gpa_mode(struct amdgpu_device *adev)
|
|||
WREG32_SOC15(GC, 0, regCPG_PSP_DEBUG, data);
|
||||
}
|
||||
|
||||
static int gfx_v11_0_hw_init(void *handle)
|
||||
static int gfx_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
|
||||
if (adev->gfx.imu.funcs) {
|
||||
|
|
@ -4714,7 +4714,7 @@ static int gfx_v11_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v11_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v11_0_hw_init(ip_block->adev);
|
||||
return gfx_v11_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v11_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -3513,10 +3513,10 @@ static void gfx_v12_0_init_golden_registers(struct amdgpu_device *adev)
|
|||
}
|
||||
}
|
||||
|
||||
static int gfx_v12_0_hw_init(void *handle)
|
||||
static int gfx_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
|
||||
if (adev->gfx.imu.funcs && (amdgpu_dpm > 0)) {
|
||||
|
|
@ -3652,7 +3652,7 @@ static int gfx_v12_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v12_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v12_0_hw_init(ip_block->adev);
|
||||
return gfx_v12_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v12_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -3122,10 +3122,10 @@ static int gfx_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gfx_v6_0_hw_init(void *handle)
|
||||
static int gfx_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gfx_v6_0_constants_init(adev);
|
||||
|
||||
|
|
@ -3162,9 +3162,7 @@ static int gfx_v6_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return gfx_v6_0_hw_init(adev);
|
||||
return gfx_v6_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v6_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -4465,10 +4465,10 @@ static int gfx_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gfx_v7_0_hw_init(void *handle)
|
||||
static int gfx_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gfx_v7_0_constants_init(adev);
|
||||
|
||||
|
|
@ -4508,9 +4508,7 @@ static int gfx_v7_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v7_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return gfx_v7_0_hw_init(adev);
|
||||
return gfx_v7_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v7_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -4783,10 +4783,10 @@ static void gfx_v8_0_cp_enable(struct amdgpu_device *adev, bool enable)
|
|||
gfx_v8_0_cp_compute_enable(adev, enable);
|
||||
}
|
||||
|
||||
static int gfx_v8_0_hw_init(void *handle)
|
||||
static int gfx_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gfx_v8_0_init_golden_registers(adev);
|
||||
gfx_v8_0_constants_init(adev);
|
||||
|
|
@ -4926,7 +4926,7 @@ static int gfx_v8_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v8_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v8_0_hw_init(ip_block->adev);
|
||||
return gfx_v8_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v8_0_check_soft_reset(struct amdgpu_ip_block *ip_block)
|
||||
|
|
|
|||
|
|
@ -3993,10 +3993,10 @@ static void gfx_v9_0_cp_enable(struct amdgpu_device *adev, bool enable)
|
|||
gfx_v9_0_cp_compute_enable(adev, enable);
|
||||
}
|
||||
|
||||
static int gfx_v9_0_hw_init(void *handle)
|
||||
static int gfx_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
amdgpu_gfx_cleaner_shader_init(adev, adev->gfx.cleaner_shader_size,
|
||||
adev->gfx.cleaner_shader_ptr);
|
||||
|
|
@ -4083,7 +4083,7 @@ static int gfx_v9_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v9_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v9_0_hw_init(ip_block->adev);
|
||||
return gfx_v9_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v9_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -2345,10 +2345,10 @@ static void gfx_v9_4_3_xcc_fini(struct amdgpu_device *adev, int xcc_id)
|
|||
gfx_v9_4_3_xcc_cp_compute_enable(adev, false, xcc_id);
|
||||
}
|
||||
|
||||
static int gfx_v9_4_3_hw_init(void *handle)
|
||||
static int gfx_v9_4_3_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
amdgpu_gfx_cleaner_shader_init(adev, adev->gfx.cleaner_shader_size,
|
||||
adev->gfx.cleaner_shader_ptr);
|
||||
|
|
@ -2395,7 +2395,7 @@ static int gfx_v9_4_3_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int gfx_v9_4_3_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
return gfx_v9_4_3_hw_init(ip_block->adev);
|
||||
return gfx_v9_4_3_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool gfx_v9_4_3_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -985,9 +985,9 @@ static int gmc_v10_0_gart_enable(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v10_0_hw_init(void *handle)
|
||||
static int gmc_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
adev->gmc.flush_pasid_uses_kiq = !amdgpu_emu_mode;
|
||||
|
|
@ -1065,13 +1065,12 @@ static int gmc_v10_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v10_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v10_0_hw_init(adev);
|
||||
r = gmc_v10_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -908,9 +908,9 @@ static int gmc_v11_0_gart_enable(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v11_0_hw_init(void *handle)
|
||||
static int gmc_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
adev->gmc.flush_pasid_uses_kiq = !amdgpu_emu_mode;
|
||||
|
|
@ -973,13 +973,12 @@ static int gmc_v11_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v11_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v11_0_hw_init(adev);
|
||||
r = gmc_v11_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -894,10 +894,10 @@ static int gmc_v12_0_gart_enable(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v12_0_hw_init(void *handle)
|
||||
static int gmc_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* The sequence of these two function calls matters.*/
|
||||
gmc_v12_0_init_golden_registers(adev);
|
||||
|
|
@ -957,13 +957,12 @@ static int gmc_v12_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v12_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v12_0_hw_init(adev);
|
||||
r = gmc_v12_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -900,10 +900,10 @@ static int gmc_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v6_0_hw_init(void *handle)
|
||||
static int gmc_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gmc_v6_0_mc_program(adev);
|
||||
|
||||
|
|
@ -949,7 +949,7 @@ static int gmc_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v6_0_hw_init(adev);
|
||||
r = gmc_v6_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
|
|
|
|||
|
|
@ -1074,10 +1074,10 @@ static int gmc_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v7_0_hw_init(void *handle)
|
||||
static int gmc_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gmc_v7_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -1123,13 +1123,12 @@ static int gmc_v7_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v7_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v7_0_hw_init(adev);
|
||||
r = gmc_v7_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1197,10 +1197,10 @@ static int gmc_v8_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v8_0_hw_init(void *handle)
|
||||
static int gmc_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
gmc_v8_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -1254,13 +1254,12 @@ static int gmc_v8_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v8_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v8_0_hw_init(adev);
|
||||
r = gmc_v8_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2308,9 +2308,9 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int gmc_v9_0_hw_init(void *handle)
|
||||
static int gmc_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
bool value;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -2438,13 +2438,12 @@ static int gmc_v9_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int gmc_v9_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = gmc_v9_0_hw_init(adev);
|
||||
r = gmc_v9_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
amdgpu_vmid_reset_all(adev);
|
||||
amdgpu_vmid_reset_all(ip_block->adev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -311,9 +311,9 @@ static int iceland_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int iceland_ih_hw_init(void *handle)
|
||||
static int iceland_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return iceland_ih_irq_init(adev);
|
||||
}
|
||||
|
|
@ -336,9 +336,7 @@ static int iceland_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int iceland_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return iceland_ih_hw_init(adev);
|
||||
return iceland_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool iceland_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -623,10 +623,10 @@ static int ih_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ih_v6_0_hw_init(void *handle)
|
||||
static int ih_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = ih_v6_0_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -653,9 +653,7 @@ static int ih_v6_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int ih_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return ih_v6_0_hw_init(adev);
|
||||
return ih_v6_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool ih_v6_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -602,10 +602,10 @@ static int ih_v6_1_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ih_v6_1_hw_init(void *handle)
|
||||
static int ih_v6_1_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = ih_v6_1_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -632,9 +632,7 @@ static int ih_v6_1_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int ih_v6_1_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return ih_v6_1_hw_init(adev);
|
||||
return ih_v6_1_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool ih_v6_1_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -592,10 +592,10 @@ static int ih_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ih_v7_0_hw_init(void *handle)
|
||||
static int ih_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = ih_v7_0_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -622,9 +622,7 @@ static int ih_v7_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int ih_v7_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return ih_v7_0_hw_init(adev);
|
||||
return ih_v7_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool ih_v7_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -128,9 +128,9 @@ static int jpeg_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v2_0_hw_init(void *handle)
|
||||
static int jpeg_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
|
||||
|
||||
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
||||
|
|
@ -190,13 +190,12 @@ static int jpeg_v2_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int jpeg_v2_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v2_0_hw_init(adev);
|
||||
r = jpeg_v2_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -177,9 +177,9 @@ static int jpeg_v2_5_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v2_5_hw_init(void *handle)
|
||||
static int jpeg_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -258,14 +258,13 @@ static int jpeg_v2_5_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v2_5_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v2_5_hw_init(adev);
|
||||
r = jpeg_v2_5_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,9 +142,9 @@ static int jpeg_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v3_0_hw_init(void *handle)
|
||||
static int jpeg_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
|
||||
|
||||
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
||||
|
|
@ -203,14 +203,13 @@ static int jpeg_v3_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v3_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v3_0_hw_init(adev);
|
||||
r = jpeg_v3_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,9 +154,9 @@ static int jpeg_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v4_0_hw_init(void *handle)
|
||||
static int jpeg_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
|
||||
int r;
|
||||
|
||||
|
|
@ -237,14 +237,13 @@ static int jpeg_v4_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v4_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v4_0_hw_init(adev);
|
||||
r = jpeg_v4_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -302,9 +302,9 @@ static int jpeg_v4_0_3_start_sriov(struct amdgpu_device *adev)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v4_0_3_hw_init(void *handle)
|
||||
static int jpeg_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, j, r, jpeg_inst;
|
||||
|
||||
|
|
@ -407,14 +407,13 @@ static int jpeg_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v4_0_3_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v4_0_3_hw_init(adev);
|
||||
r = jpeg_v4_0_3_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,9 +183,9 @@ static int jpeg_v4_0_5_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v4_0_5_hw_init(void *handle)
|
||||
static int jpeg_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r = 0;
|
||||
|
||||
|
|
@ -264,14 +264,13 @@ static int jpeg_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v4_0_5_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v4_0_5_hw_init(adev);
|
||||
r = jpeg_v4_0_5_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,9 +130,9 @@ static int jpeg_v5_0_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
*/
|
||||
static int jpeg_v5_0_0_hw_init(void *handle)
|
||||
static int jpeg_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
|
||||
int r;
|
||||
|
||||
|
|
@ -200,14 +200,13 @@ static int jpeg_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int jpeg_v5_0_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_jpeg_resume(adev);
|
||||
r = amdgpu_jpeg_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = jpeg_v5_0_0_hw_init(adev);
|
||||
r = jpeg_v5_0_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ MODULE_FIRMWARE("amdgpu/gc_11_5_1_mes1.bin");
|
|||
MODULE_FIRMWARE("amdgpu/gc_11_5_2_mes_2.bin");
|
||||
MODULE_FIRMWARE("amdgpu/gc_11_5_2_mes1.bin");
|
||||
|
||||
static int mes_v11_0_hw_init(void *handle);
|
||||
static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block);
|
||||
static int mes_v11_0_hw_fini(void *handle);
|
||||
static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev);
|
||||
static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev);
|
||||
|
|
@ -1498,6 +1498,7 @@ static void mes_v11_0_kiq_clear(struct amdgpu_device *adev)
|
|||
static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
|
||||
{
|
||||
int r = 0;
|
||||
struct amdgpu_ip_block *ip_block;
|
||||
|
||||
if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
|
||||
|
||||
|
|
@ -1531,7 +1532,13 @@ static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
|
|||
adev->mes.enable_legacy_queue_map = false;
|
||||
|
||||
if (adev->mes.enable_legacy_queue_map) {
|
||||
r = mes_v11_0_hw_init(adev);
|
||||
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_MES);
|
||||
if (unlikely(!ip_block)) {
|
||||
dev_err(adev->dev, "Failed to get MES handle\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
r = mes_v11_0_hw_init(ip_block);
|
||||
if (r)
|
||||
goto failure;
|
||||
}
|
||||
|
|
@ -1560,10 +1567,10 @@ static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int mes_v11_0_hw_init(void *handle)
|
||||
static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->mes.ring[0].sched.ready)
|
||||
goto out;
|
||||
|
|
@ -1644,13 +1651,12 @@ static int mes_v11_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int mes_v11_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = mes_v11_0_hw_init(adev);
|
||||
r = mes_v11_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return amdgpu_mes_resume(adev);
|
||||
return amdgpu_mes_resume(ip_block->adev);
|
||||
}
|
||||
|
||||
static int mes_v11_0_early_init(struct amdgpu_ip_block *ip_block)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ MODULE_FIRMWARE("amdgpu/gc_12_0_1_mes.bin");
|
|||
MODULE_FIRMWARE("amdgpu/gc_12_0_1_mes1.bin");
|
||||
MODULE_FIRMWARE("amdgpu/gc_12_0_1_uni_mes.bin");
|
||||
|
||||
static int mes_v12_0_hw_init(void *handle);
|
||||
static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block);
|
||||
static int mes_v12_0_hw_fini(void *handle);
|
||||
static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev);
|
||||
static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev);
|
||||
|
|
@ -1452,6 +1452,7 @@ static void mes_v12_0_kiq_setting(struct amdgpu_ring *ring)
|
|||
static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
|
||||
{
|
||||
int r = 0;
|
||||
struct amdgpu_ip_block *ip_block;
|
||||
|
||||
if (adev->enable_uni_mes)
|
||||
mes_v12_0_kiq_setting(&adev->mes.ring[AMDGPU_MES_KIQ_PIPE]);
|
||||
|
|
@ -1492,7 +1493,13 @@ static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
|
|||
}
|
||||
|
||||
if (adev->mes.enable_legacy_queue_map) {
|
||||
r = mes_v12_0_hw_init(adev);
|
||||
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_MES);
|
||||
if (unlikely(!ip_block)) {
|
||||
dev_err(adev->dev, "Failed to get MES handle\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
r = mes_v12_0_hw_init(ip_block);
|
||||
if (r)
|
||||
goto failure;
|
||||
}
|
||||
|
|
@ -1522,10 +1529,10 @@ static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int mes_v12_0_hw_init(void *handle)
|
||||
static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->mes.ring[0].sched.ready)
|
||||
goto out;
|
||||
|
|
@ -1608,13 +1615,12 @@ static int mes_v12_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int mes_v12_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = mes_v12_0_hw_init(adev);
|
||||
r = mes_v12_0_hw_init(ip_block);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return amdgpu_mes_resume(adev);
|
||||
return amdgpu_mes_resume(ip_block->adev);
|
||||
}
|
||||
|
||||
static int mes_v12_0_early_init(struct amdgpu_ip_block *ip_block)
|
||||
|
|
|
|||
|
|
@ -602,9 +602,9 @@ static int navi10_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int navi10_ih_hw_init(void *handle)
|
||||
static int navi10_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return navi10_ih_irq_init(adev);
|
||||
}
|
||||
|
|
@ -627,9 +627,7 @@ static int navi10_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int navi10_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return navi10_ih_hw_init(adev);
|
||||
return navi10_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool navi10_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -988,9 +988,9 @@ static int nv_common_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int nv_common_hw_init(void *handle)
|
||||
static int nv_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->nbio.funcs->apply_lc_spc_mode_wa)
|
||||
adev->nbio.funcs->apply_lc_spc_mode_wa(adev);
|
||||
|
|
@ -1038,9 +1038,7 @@ static int nv_common_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int nv_common_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return nv_common_hw_init(adev);
|
||||
return nv_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool nv_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -878,10 +878,10 @@ static int sdma_v2_4_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v2_4_hw_init(void *handle)
|
||||
static int sdma_v2_4_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
sdma_v2_4_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -910,9 +910,7 @@ static int sdma_v2_4_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v2_4_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v2_4_hw_init(adev);
|
||||
return sdma_v2_4_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v2_4_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1164,10 +1164,10 @@ static int sdma_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v3_0_hw_init(void *handle)
|
||||
static int sdma_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
sdma_v3_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -1197,9 +1197,7 @@ static int sdma_v3_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v3_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v3_0_hw_init(adev);
|
||||
return sdma_v3_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v3_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1951,9 +1951,9 @@ static int sdma_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v4_0_hw_init(void *handle)
|
||||
static int sdma_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (adev->flags & AMD_IS_APU)
|
||||
amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_SDMA, false);
|
||||
|
|
@ -2012,7 +2012,7 @@ static int sdma_v4_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
return sdma_v4_0_hw_init(adev);
|
||||
return sdma_v4_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v4_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1467,10 +1467,10 @@ static int sdma_v4_4_2_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v4_4_2_hw_init(void *handle)
|
||||
static int sdma_v4_4_2_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
uint32_t inst_mask;
|
||||
|
||||
inst_mask = GENMASK(adev->sdma.num_instances - 1, 0);
|
||||
|
|
@ -1520,9 +1520,7 @@ static int sdma_v4_4_2_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v4_4_2_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v4_4_2_hw_init(adev);
|
||||
return sdma_v4_4_2_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v4_4_2_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1477,10 +1477,10 @@ static int sdma_v5_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v5_0_hw_init(void *handle)
|
||||
static int sdma_v5_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
sdma_v5_0_init_golden_registers(adev);
|
||||
|
||||
|
|
@ -1511,9 +1511,7 @@ static int sdma_v5_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v5_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v5_0_hw_init(adev);
|
||||
return sdma_v5_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v5_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1382,9 +1382,9 @@ static int sdma_v5_2_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v5_2_hw_init(void *handle)
|
||||
static int sdma_v5_2_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v5_2_start(adev);
|
||||
}
|
||||
|
|
@ -1411,9 +1411,7 @@ static int sdma_v5_2_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v5_2_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v5_2_hw_init(adev);
|
||||
return sdma_v5_2_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v5_2_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1380,9 +1380,9 @@ static int sdma_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v6_0_hw_init(void *handle)
|
||||
static int sdma_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v6_0_start(adev);
|
||||
}
|
||||
|
|
@ -1409,9 +1409,7 @@ static int sdma_v6_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v6_0_hw_init(adev);
|
||||
return sdma_v6_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v6_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1338,9 +1338,9 @@ static int sdma_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int sdma_v7_0_hw_init(void *handle)
|
||||
static int sdma_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v7_0_start(adev);
|
||||
}
|
||||
|
|
@ -1367,9 +1367,7 @@ static int sdma_v7_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int sdma_v7_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return sdma_v7_0_hw_init(adev);
|
||||
return sdma_v7_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool sdma_v7_0_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -2633,9 +2633,9 @@ static void si_fix_pci_max_read_req_size(struct amdgpu_device *adev)
|
|||
pcie_set_readrq(adev->pdev, 512);
|
||||
}
|
||||
|
||||
static int si_common_hw_init(void *handle)
|
||||
static int si_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
si_fix_pci_max_read_req_size(adev);
|
||||
si_init_golden_registers(adev);
|
||||
|
|
@ -2659,9 +2659,7 @@ static int si_common_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int si_common_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return si_common_hw_init(adev);
|
||||
return si_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool si_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -517,9 +517,9 @@ static int si_dma_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int si_dma_hw_init(void *handle)
|
||||
static int si_dma_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return si_dma_start(adev);
|
||||
}
|
||||
|
|
@ -542,9 +542,7 @@ static int si_dma_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int si_dma_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return si_dma_hw_init(adev);
|
||||
return si_dma_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool si_dma_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -186,9 +186,9 @@ static int si_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int si_ih_hw_init(void *handle)
|
||||
static int si_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return si_ih_irq_init(adev);
|
||||
}
|
||||
|
|
@ -211,9 +211,7 @@ static int si_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int si_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return si_ih_hw_init(adev);
|
||||
return si_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool si_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1255,9 +1255,9 @@ static void soc15_sdma_doorbell_range_init(struct amdgpu_device *adev)
|
|||
}
|
||||
}
|
||||
|
||||
static int soc15_common_hw_init(void *handle)
|
||||
static int soc15_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* enable aspm */
|
||||
soc15_program_aspm(adev);
|
||||
|
|
@ -1333,7 +1333,7 @@ static int soc15_common_resume(struct amdgpu_ip_block *ip_block)
|
|||
dev_info(adev->dev, "S3 suspend abort case, let's reset ASIC.\n");
|
||||
soc15_asic_reset(adev);
|
||||
}
|
||||
return soc15_common_hw_init(adev);
|
||||
return soc15_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool soc15_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -847,9 +847,9 @@ static int soc21_common_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int soc21_common_hw_init(void *handle)
|
||||
static int soc21_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* enable aspm */
|
||||
soc21_program_aspm(adev);
|
||||
|
|
@ -926,7 +926,7 @@ static int soc21_common_resume(struct amdgpu_ip_block *ip_block)
|
|||
soc21_asic_reset(adev);
|
||||
}
|
||||
|
||||
return soc21_common_hw_init(adev);
|
||||
return soc21_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool soc21_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -470,9 +470,9 @@ static int soc24_common_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int soc24_common_hw_init(void *handle)
|
||||
static int soc24_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* enable aspm */
|
||||
soc24_program_aspm(adev);
|
||||
|
|
@ -521,9 +521,7 @@ static int soc24_common_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int soc24_common_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return soc24_common_hw_init(adev);
|
||||
return soc24_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool soc24_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -324,10 +324,10 @@ static int tonga_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int tonga_ih_hw_init(void *handle)
|
||||
static int tonga_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = tonga_ih_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -354,9 +354,7 @@ static int tonga_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int tonga_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return tonga_ih_hw_init(adev);
|
||||
return tonga_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool tonga_ih_is_idle(void *handle)
|
||||
|
|
@ -422,7 +420,7 @@ static int tonga_ih_post_soft_reset(struct amdgpu_ip_block *ip_block)
|
|||
if (!adev->irq.srbm_soft_reset)
|
||||
return 0;
|
||||
|
||||
return tonga_ih_hw_init(adev);
|
||||
return tonga_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static int tonga_ih_soft_reset(struct amdgpu_ip_block *ip_block)
|
||||
|
|
|
|||
|
|
@ -625,9 +625,9 @@ static void uvd_v3_1_enable_mgcg(struct amdgpu_device *adev,
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int uvd_v3_1_hw_init(void *handle)
|
||||
static int uvd_v3_1_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->uvd.inst->ring;
|
||||
uint32_t tmp;
|
||||
int r;
|
||||
|
|
@ -750,13 +750,12 @@ static int uvd_v3_1_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int uvd_v3_1_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_uvd_resume(adev);
|
||||
r = amdgpu_uvd_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return uvd_v3_1_hw_init(adev);
|
||||
return uvd_v3_1_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool uvd_v3_1_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -151,9 +151,9 @@ static void uvd_v4_2_enable_mgcg(struct amdgpu_device *adev,
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int uvd_v4_2_hw_init(void *handle)
|
||||
static int uvd_v4_2_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->uvd.inst->ring;
|
||||
uint32_t tmp;
|
||||
int r;
|
||||
|
|
@ -264,13 +264,12 @@ static int uvd_v4_2_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int uvd_v4_2_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_uvd_resume(adev);
|
||||
r = amdgpu_uvd_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return uvd_v4_2_hw_init(adev);
|
||||
return uvd_v4_2_hw_init(ip_block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -147,9 +147,9 @@ static int uvd_v5_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int uvd_v5_0_hw_init(void *handle)
|
||||
static int uvd_v5_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->uvd.inst->ring;
|
||||
uint32_t tmp;
|
||||
int r;
|
||||
|
|
@ -262,13 +262,12 @@ static int uvd_v5_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int uvd_v5_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_uvd_resume(adev);
|
||||
r = amdgpu_uvd_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return uvd_v5_0_hw_init(adev);
|
||||
return uvd_v5_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -459,9 +459,9 @@ static int uvd_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int uvd_v6_0_hw_init(void *handle)
|
||||
static int uvd_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->uvd.inst->ring;
|
||||
uint32_t tmp;
|
||||
int i, r;
|
||||
|
|
@ -586,13 +586,12 @@ static int uvd_v6_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int uvd_v6_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_uvd_resume(adev);
|
||||
r = amdgpu_uvd_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return uvd_v6_0_hw_init(adev);
|
||||
return uvd_v6_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -514,9 +514,9 @@ static int uvd_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int uvd_v7_0_hw_init(void *handle)
|
||||
static int uvd_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
uint32_t tmp;
|
||||
int i, j, r;
|
||||
|
|
@ -654,13 +654,12 @@ static int uvd_v7_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int uvd_v7_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_uvd_resume(adev);
|
||||
r = amdgpu_uvd_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return uvd_v7_0_hw_init(adev);
|
||||
return uvd_v7_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -462,10 +462,10 @@ static int vce_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return amdgpu_vce_sw_fini(adev);
|
||||
}
|
||||
|
||||
static int vce_v2_0_hw_init(void *handle)
|
||||
static int vce_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r, i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
amdgpu_asic_set_vce_clocks(adev, 10000, 10000);
|
||||
vce_v2_0_enable_mgcg(adev, true, false);
|
||||
|
|
@ -529,13 +529,12 @@ static int vce_v2_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vce_v2_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vce_resume(adev);
|
||||
r = amdgpu_vce_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return vce_v2_0_hw_init(adev);
|
||||
return vce_v2_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static int vce_v2_0_soft_reset(struct amdgpu_ip_block *ip_block)
|
||||
|
|
|
|||
|
|
@ -465,10 +465,10 @@ static int vce_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return amdgpu_vce_sw_fini(adev);
|
||||
}
|
||||
|
||||
static int vce_v3_0_hw_init(void *handle)
|
||||
static int vce_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r, i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
vce_v3_0_override_vce_clock_gating(adev, true);
|
||||
|
||||
|
|
@ -543,13 +543,12 @@ static int vce_v3_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vce_v3_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vce_resume(adev);
|
||||
r = amdgpu_vce_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
return vce_v3_0_hw_init(adev);
|
||||
return vce_v3_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static void vce_v3_0_mc_resume(struct amdgpu_device *adev, int idx)
|
||||
|
|
|
|||
|
|
@ -513,10 +513,10 @@ static int vce_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return amdgpu_vce_sw_fini(adev);
|
||||
}
|
||||
|
||||
static int vce_v4_0_hw_init(void *handle)
|
||||
static int vce_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r, i;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (amdgpu_sriov_vf(adev))
|
||||
r = vce_v4_0_sriov_start(adev);
|
||||
|
|
@ -629,7 +629,7 @@ static int vce_v4_0_resume(struct amdgpu_ip_block *ip_block)
|
|||
return r;
|
||||
}
|
||||
|
||||
return vce_v4_0_hw_init(adev);
|
||||
return vce_v4_0_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static void vce_v4_0_mc_resume(struct amdgpu_device *adev)
|
||||
|
|
|
|||
|
|
@ -242,9 +242,9 @@ static int vcn_v1_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v1_0_hw_init(void *handle)
|
||||
static int vcn_v1_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -325,13 +325,12 @@ static int vcn_v1_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v1_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v1_0_hw_init(adev);
|
||||
r = vcn_v1_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -272,9 +272,9 @@ static int vcn_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v2_0_hw_init(void *handle)
|
||||
static int vcn_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -354,13 +354,12 @@ static int vcn_v2_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v2_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v2_0_hw_init(adev);
|
||||
r = vcn_v2_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -337,9 +337,9 @@ static int vcn_v2_5_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v2_5_hw_init(void *handle)
|
||||
static int vcn_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, j, r = 0;
|
||||
|
||||
|
|
@ -439,13 +439,12 @@ static int vcn_v2_5_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v2_5_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v2_5_hw_init(adev);
|
||||
r = vcn_v2_5_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -342,9 +342,9 @@ static int vcn_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v3_0_hw_init(void *handle)
|
||||
static int vcn_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, j, r;
|
||||
|
||||
|
|
@ -471,13 +471,12 @@ static int vcn_v3_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v3_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v3_0_hw_init(adev);
|
||||
r = vcn_v3_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -298,9 +298,9 @@ static int vcn_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v4_0_hw_init(void *handle)
|
||||
static int vcn_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -400,13 +400,12 @@ static int vcn_v4_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v4_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v4_0_hw_init(adev);
|
||||
r = vcn_v4_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -253,9 +253,9 @@ static int vcn_v4_0_3_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v4_0_3_hw_init(void *handle)
|
||||
static int vcn_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r, vcn_inst;
|
||||
|
||||
|
|
@ -354,14 +354,13 @@ static int vcn_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
|
|||
*/
|
||||
static int vcn_v4_0_3_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v4_0_3_hw_init(adev);
|
||||
r = vcn_v4_0_3_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -265,9 +265,9 @@ static int vcn_v4_0_5_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v4_0_5_hw_init(void *handle)
|
||||
static int vcn_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -348,13 +348,12 @@ static int vcn_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v4_0_5_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v4_0_5_hw_init(adev);
|
||||
r = vcn_v4_0_5_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -229,9 +229,9 @@ static int vcn_v5_0_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
*
|
||||
* Initialize the hardware, boot up the VCPU and do some testing
|
||||
*/
|
||||
static int vcn_v5_0_0_hw_init(void *handle)
|
||||
static int vcn_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct amdgpu_ring *ring;
|
||||
int i, r;
|
||||
|
||||
|
|
@ -312,13 +312,12 @@ static int vcn_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
|
|||
static int vcn_v5_0_0_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = amdgpu_vcn_resume(adev);
|
||||
r = amdgpu_vcn_resume(ip_block->adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
r = vcn_v5_0_0_hw_init(adev);
|
||||
r = vcn_v5_0_0_hw_init(ip_block);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -534,11 +534,9 @@ static int vega10_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int vega10_ih_hw_init(void *handle)
|
||||
static int vega10_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
|
||||
return vega10_ih_irq_init(adev);
|
||||
return vega10_ih_irq_init(ip_block->adev);
|
||||
}
|
||||
|
||||
static int vega10_ih_hw_fini(void *handle)
|
||||
|
|
@ -559,9 +557,7 @@ static int vega10_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int vega10_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return vega10_ih_hw_init(adev);
|
||||
return vega10_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool vega10_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -595,10 +595,10 @@ static int vega20_ih_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int vega20_ih_hw_init(void *handle)
|
||||
static int vega20_ih_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int r;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
r = vega20_ih_irq_init(adev);
|
||||
if (r)
|
||||
|
|
@ -625,9 +625,7 @@ static int vega20_ih_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int vega20_ih_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return vega20_ih_hw_init(adev);
|
||||
return vega20_ih_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool vega20_ih_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -1704,9 +1704,9 @@ static int vi_common_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int vi_common_hw_init(void *handle)
|
||||
static int vi_common_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
/* move the golden regs per IP block */
|
||||
vi_init_golden_registers(adev);
|
||||
|
|
@ -1740,9 +1740,7 @@ static int vi_common_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int vi_common_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
return vi_common_hw_init(adev);
|
||||
return vi_common_hw_init(ip_block);
|
||||
}
|
||||
|
||||
static bool vi_common_is_idle(void *handle)
|
||||
|
|
|
|||
|
|
@ -2808,9 +2808,9 @@ static int amdgpu_dm_smu_write_watermarks_table(struct amdgpu_device *adev)
|
|||
* - Vblank support
|
||||
* - Debug FS entries, if enabled
|
||||
*/
|
||||
static int dm_hw_init(void *handle)
|
||||
static int dm_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
int r;
|
||||
|
||||
/* Create DAL display manager */
|
||||
|
|
|
|||
|
|
@ -384,7 +384,7 @@ struct amd_ip_funcs {
|
|||
int (*sw_init)(struct amdgpu_ip_block *ip_block);
|
||||
int (*sw_fini)(struct amdgpu_ip_block *ip_block);
|
||||
int (*early_fini)(struct amdgpu_ip_block *ip_block);
|
||||
int (*hw_init)(void *handle);
|
||||
int (*hw_init)(struct amdgpu_ip_block *ip_block);
|
||||
int (*hw_fini)(void *handle);
|
||||
void (*late_fini)(struct amdgpu_ip_block *ip_block);
|
||||
int (*prepare_suspend)(struct amdgpu_ip_block *ip_block);
|
||||
|
|
|
|||
|
|
@ -3034,10 +3034,10 @@ static int kv_dpm_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int kv_dpm_hw_init(void *handle)
|
||||
static int kv_dpm_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int ret;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (!amdgpu_dpm)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -7776,11 +7776,11 @@ static int si_dpm_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int si_dpm_hw_init(void *handle)
|
||||
static int si_dpm_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int ret;
|
||||
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (!amdgpu_dpm)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -159,10 +159,10 @@ static int pp_sw_fini(struct amdgpu_ip_block *ip_block)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int pp_hw_init(void *handle)
|
||||
static int pp_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int ret = 0;
|
||||
struct amdgpu_device *adev = handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
|
||||
|
||||
ret = hwmgr_hw_init(hwmgr);
|
||||
|
|
@ -273,8 +273,7 @@ static int pp_suspend(struct amdgpu_ip_block *ip_block)
|
|||
|
||||
static int pp_resume(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
|
||||
struct pp_hwmgr *hwmgr = ip_block->adev->powerplay.pp_handle;
|
||||
|
||||
return hwmgr_resume(hwmgr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1787,10 +1787,10 @@ static int smu_start_smc_engine(struct smu_context *smu)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int smu_hw_init(void *handle)
|
||||
static int smu_hw_init(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
int ret;
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
struct smu_context *smu = adev->powerplay.pp_handle;
|
||||
|
||||
if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) {
|
||||
|
|
@ -2056,18 +2056,18 @@ static int smu_reset(struct smu_context *smu)
|
|||
struct amdgpu_ip_block *ip_block;
|
||||
int ret;
|
||||
|
||||
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
|
||||
if (!ip_block)
|
||||
return -EINVAL;
|
||||
|
||||
ret = smu_hw_fini(adev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = smu_hw_init(adev);
|
||||
ret = smu_hw_init(ip_block);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
|
||||
if (!ip_block)
|
||||
return -EINVAL;
|
||||
|
||||
ret = smu_late_init(ip_block);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user