[PATCH 1/2] drm/radeon/kms: fix evergreen asic reset

Jerome Glisse j.glisse at gmail.com
Mon Dec 20 11:31:31 PST 2010


On Mon, Dec 20, 2010 at 12:35 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
> Only reset the grbm blocks, srbm tends to lock the GPU
> if not done properly and in most cases is not necessary.
> Also, no need to call asic init after reset the grbm blocks.
>
> Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
> Cc: stable at kernel.org
> ---

Reviewed-by: Jerome Glisse <jglisse at redhat.com>

>  drivers/gpu/drm/radeon/evergreen.c |   15 ---------------
>  1 files changed, 0 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
> index 901f366..8b82749 100644
> --- a/drivers/gpu/drm/radeon/evergreen.c
> +++ b/drivers/gpu/drm/radeon/evergreen.c
> @@ -2036,7 +2036,6 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
>  static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
>  {
>        struct evergreen_mc_save save;
> -       u32 srbm_reset = 0;
>        u32 grbm_reset = 0;
>
>        dev_info(rdev->dev, "GPU softreset \n");
> @@ -2075,16 +2074,6 @@ static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
>        udelay(50);
>        WREG32(GRBM_SOFT_RESET, 0);
>        (void)RREG32(GRBM_SOFT_RESET);
> -
> -       /* reset all the system blocks */
> -       srbm_reset = SRBM_SOFT_RESET_ALL_MASK;
> -
> -       dev_info(rdev->dev, "  SRBM_SOFT_RESET=0x%08X\n", srbm_reset);
> -       WREG32(SRBM_SOFT_RESET, srbm_reset);
> -       (void)RREG32(SRBM_SOFT_RESET);
> -       udelay(50);
> -       WREG32(SRBM_SOFT_RESET, 0);
> -       (void)RREG32(SRBM_SOFT_RESET);
>        /* Wait a little for things to settle down */
>        udelay(50);
>        dev_info(rdev->dev, "  GRBM_STATUS=0x%08X\n",
> @@ -2095,10 +2084,6 @@ static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
>                RREG32(GRBM_STATUS_SE1));
>        dev_info(rdev->dev, "  SRBM_STATUS=0x%08X\n",
>                RREG32(SRBM_STATUS));
> -       /* After reset we need to reinit the asic as GPU often endup in an
> -        * incoherent state.
> -        */
> -       atom_asic_init(rdev->mode_info.atom_context);
>        evergreen_mc_resume(rdev, &save);
>        return 0;
>  }
> --
> 1.7.2.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>


More information about the dri-devel mailing list