On 9/4/26 20:34, Timur Kristóf wrote: > The code for SI/CIK/VI IH (interrupt handler) IP blocks > has a soft_reset() function for each block. > These functions are not called from anywhere and are > dead code. It's unclear what the original intention > was or why the IH block would ever need to be reset. > > All SI/CIK/VI GPUs have been working well for > 10+ years without ever resetting the IH block > so it's time to just delete the dead code. > > Signed-off-by: Timur Kristóf <[email protected]>
Acked-by: Christian König <[email protected]> for the entire series. @Alex do you pick them up or should I? Thanks, Christian. > --- > drivers/gpu/drm/amd/amdgpu/cik_ih.c | 31 ------------------------ > drivers/gpu/drm/amd/amdgpu/cz_ih.c | 31 ------------------------ > drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 31 ------------------------ > drivers/gpu/drm/amd/amdgpu/si_ih.c | 30 ----------------------- > drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 32 ------------------------- > 5 files changed, 155 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/cik_ih.c > b/drivers/gpu/drm/amd/amdgpu/cik_ih.c > index 314d8f1d64cc..73ec61bc69de 100644 > --- a/drivers/gpu/drm/amd/amdgpu/cik_ih.c > +++ b/drivers/gpu/drm/amd/amdgpu/cik_ih.c > @@ -373,36 +373,6 @@ static int cik_ih_wait_for_idle(struct amdgpu_ip_block > *ip_block) > return -ETIMEDOUT; > } > > -static int cik_ih_soft_reset(struct amdgpu_ip_block *ip_block) > -{ > - struct amdgpu_device *adev = ip_block->adev; > - > - u32 srbm_soft_reset = 0; > - u32 tmp = RREG32(mmSRBM_STATUS); > - > - if (tmp & SRBM_STATUS__IH_BUSY_MASK) > - srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_IH_MASK; > - > - if (srbm_soft_reset) { > - tmp = RREG32(mmSRBM_SOFT_RESET); > - tmp |= srbm_soft_reset; > - dev_info(adev->dev, "SRBM_SOFT_RESET=0x%08X\n", tmp); > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - > - tmp &= ~srbm_soft_reset; > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - /* Wait a little for things to settle down */ > - udelay(50); > - } > - > - return 0; > -} > - > static int cik_ih_set_clockgating_state(struct amdgpu_ip_block *ip_block, > enum amd_clockgating_state state) > { > @@ -425,7 +395,6 @@ static const struct amd_ip_funcs cik_ih_ip_funcs = { > .suspend = cik_ih_suspend, > .resume = cik_ih_resume, > .wait_for_idle = cik_ih_wait_for_idle, > - .soft_reset = cik_ih_soft_reset, > .set_clockgating_state = cik_ih_set_clockgating_state, > .set_powergating_state = cik_ih_set_powergating_state, > }; > diff --git a/drivers/gpu/drm/amd/amdgpu/cz_ih.c > b/drivers/gpu/drm/amd/amdgpu/cz_ih.c > index 8d02602f8433..82bff26abd5e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/cz_ih.c > +++ b/drivers/gpu/drm/amd/amdgpu/cz_ih.c > @@ -367,36 +367,6 @@ static int cz_ih_wait_for_idle(struct amdgpu_ip_block > *ip_block) > return -ETIMEDOUT; > } > > -static int cz_ih_soft_reset(struct amdgpu_ip_block *ip_block) > -{ > - u32 srbm_soft_reset = 0; > - struct amdgpu_device *adev = ip_block->adev; > - u32 tmp = RREG32(mmSRBM_STATUS); > - > - if (tmp & SRBM_STATUS__IH_BUSY_MASK) > - srbm_soft_reset = REG_SET_FIELD(srbm_soft_reset, > SRBM_SOFT_RESET, > - SOFT_RESET_IH, 1); > - > - if (srbm_soft_reset) { > - tmp = RREG32(mmSRBM_SOFT_RESET); > - tmp |= srbm_soft_reset; > - dev_info(adev->dev, "SRBM_SOFT_RESET=0x%08X\n", tmp); > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - > - tmp &= ~srbm_soft_reset; > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - /* Wait a little for things to settle down */ > - udelay(50); > - } > - > - return 0; > -} > - > static int cz_ih_set_clockgating_state(struct amdgpu_ip_block *ip_block, > enum amd_clockgating_state state) > { > @@ -421,7 +391,6 @@ static const struct amd_ip_funcs cz_ih_ip_funcs = { > .suspend = cz_ih_suspend, > .resume = cz_ih_resume, > .wait_for_idle = cz_ih_wait_for_idle, > - .soft_reset = cz_ih_soft_reset, > .set_clockgating_state = cz_ih_set_clockgating_state, > .set_powergating_state = cz_ih_set_powergating_state, > }; > diff --git a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c > b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c > index 49002c80dc71..29faaa726644 100644 > --- a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c > +++ b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c > @@ -361,36 +361,6 @@ static int iceland_ih_wait_for_idle(struct > amdgpu_ip_block *ip_block) > return -ETIMEDOUT; > } > > -static int iceland_ih_soft_reset(struct amdgpu_ip_block *ip_block) > -{ > - u32 srbm_soft_reset = 0; > - struct amdgpu_device *adev = ip_block->adev; > - u32 tmp = RREG32(mmSRBM_STATUS); > - > - if (tmp & SRBM_STATUS__IH_BUSY_MASK) > - srbm_soft_reset = REG_SET_FIELD(srbm_soft_reset, > SRBM_SOFT_RESET, > - SOFT_RESET_IH, 1); > - > - if (srbm_soft_reset) { > - tmp = RREG32(mmSRBM_SOFT_RESET); > - tmp |= srbm_soft_reset; > - dev_info(adev->dev, "SRBM_SOFT_RESET=0x%08X\n", tmp); > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - > - tmp &= ~srbm_soft_reset; > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - /* Wait a little for things to settle down */ > - udelay(50); > - } > - > - return 0; > -} > - > static int iceland_ih_set_clockgating_state(struct amdgpu_ip_block *ip_block, > enum amd_clockgating_state state) > { > @@ -413,7 +383,6 @@ static const struct amd_ip_funcs iceland_ih_ip_funcs = { > .suspend = iceland_ih_suspend, > .resume = iceland_ih_resume, > .wait_for_idle = iceland_ih_wait_for_idle, > - .soft_reset = iceland_ih_soft_reset, > .set_clockgating_state = iceland_ih_set_clockgating_state, > .set_powergating_state = iceland_ih_set_powergating_state, > }; > diff --git a/drivers/gpu/drm/amd/amdgpu/si_ih.c > b/drivers/gpu/drm/amd/amdgpu/si_ih.c > index 52118765dccf..2c5ac398b582 100644 > --- a/drivers/gpu/drm/amd/amdgpu/si_ih.c > +++ b/drivers/gpu/drm/amd/amdgpu/si_ih.c > @@ -247,35 +247,6 @@ static int si_ih_wait_for_idle(struct amdgpu_ip_block > *ip_block) > return -ETIMEDOUT; > } > > -static int si_ih_soft_reset(struct amdgpu_ip_block *ip_block) > -{ > - struct amdgpu_device *adev = ip_block->adev; > - > - u32 srbm_soft_reset = 0; > - u32 tmp = RREG32(mmSRBM_STATUS); > - > - if (tmp & SRBM_STATUS__IH_BUSY_MASK) > - srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_IH_MASK; > - > - if (srbm_soft_reset) { > - tmp = RREG32(mmSRBM_SOFT_RESET); > - tmp |= srbm_soft_reset; > - dev_info(adev->dev, "mmSRBM_SOFT_RESET=0x%08X\n", tmp); > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - > - tmp &= ~srbm_soft_reset; > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - } > - > - return 0; > -} > - > static int si_ih_set_clockgating_state(struct amdgpu_ip_block *ip_block, > enum amd_clockgating_state state) > { > @@ -298,7 +269,6 @@ static const struct amd_ip_funcs si_ih_ip_funcs = { > .suspend = si_ih_suspend, > .resume = si_ih_resume, > .wait_for_idle = si_ih_wait_for_idle, > - .soft_reset = si_ih_soft_reset, > .set_clockgating_state = si_ih_set_clockgating_state, > .set_powergating_state = si_ih_set_powergating_state, > }; > diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c > b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c > index d84c08698dff..194487a71fd4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c > +++ b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c > @@ -379,37 +379,6 @@ static int tonga_ih_wait_for_idle(struct amdgpu_ip_block > *ip_block) > return -ETIMEDOUT; > } > > -static int tonga_ih_soft_reset(struct amdgpu_ip_block *ip_block) > -{ > - struct amdgpu_device *adev = ip_block->adev; > - u32 srbm_soft_reset; > - > - if (!adev->irq.srbm_soft_reset) > - return 0; > - srbm_soft_reset = adev->irq.srbm_soft_reset; > - > - if (srbm_soft_reset) { > - u32 tmp; > - > - tmp = RREG32(mmSRBM_SOFT_RESET); > - tmp |= srbm_soft_reset; > - dev_info(adev->dev, "SRBM_SOFT_RESET=0x%08X\n", tmp); > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - udelay(50); > - > - tmp &= ~srbm_soft_reset; > - WREG32(mmSRBM_SOFT_RESET, tmp); > - tmp = RREG32(mmSRBM_SOFT_RESET); > - > - /* Wait a little for things to settle down */ > - udelay(50); > - } > - > - return 0; > -} > - > static int tonga_ih_set_clockgating_state(struct amdgpu_ip_block *ip_block, > enum amd_clockgating_state state) > { > @@ -432,7 +401,6 @@ static const struct amd_ip_funcs tonga_ih_ip_funcs = { > .suspend = tonga_ih_suspend, > .resume = tonga_ih_resume, > .wait_for_idle = tonga_ih_wait_for_idle, > - .soft_reset = tonga_ih_soft_reset, > .set_clockgating_state = tonga_ih_set_clockgating_state, > .set_powergating_state = tonga_ih_set_powergating_state, > };
