drm/radeon/kms: fix evergreen asic reset

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@gmail.com>
Cc: stable@kernel.org
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by Alex Deucher and committed by Dave Airlie 9f0c4f9c 92971021

-15
-15
drivers/gpu/drm/radeon/evergreen.c
··· 1924 static int evergreen_gpu_soft_reset(struct radeon_device *rdev) 1925 { 1926 struct evergreen_mc_save save; 1927 - u32 srbm_reset = 0; 1928 u32 grbm_reset = 0; 1929 1930 dev_info(rdev->dev, "GPU softreset \n"); ··· 1962 udelay(50); 1963 WREG32(GRBM_SOFT_RESET, 0); 1964 (void)RREG32(GRBM_SOFT_RESET); 1965 - 1966 - /* reset all the system blocks */ 1967 - srbm_reset = SRBM_SOFT_RESET_ALL_MASK; 1968 - 1969 - dev_info(rdev->dev, " SRBM_SOFT_RESET=0x%08X\n", srbm_reset); 1970 - WREG32(SRBM_SOFT_RESET, srbm_reset); 1971 - (void)RREG32(SRBM_SOFT_RESET); 1972 - udelay(50); 1973 - WREG32(SRBM_SOFT_RESET, 0); 1974 - (void)RREG32(SRBM_SOFT_RESET); 1975 /* Wait a little for things to settle down */ 1976 udelay(50); 1977 dev_info(rdev->dev, " GRBM_STATUS=0x%08X\n", ··· 1972 RREG32(GRBM_STATUS_SE1)); 1973 dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", 1974 RREG32(SRBM_STATUS)); 1975 - /* After reset we need to reinit the asic as GPU often endup in an 1976 - * incoherent state. 1977 - */ 1978 - atom_asic_init(rdev->mode_info.atom_context); 1979 evergreen_mc_resume(rdev, &save); 1980 return 0; 1981 }
··· 1924 static int evergreen_gpu_soft_reset(struct radeon_device *rdev) 1925 { 1926 struct evergreen_mc_save save; 1927 u32 grbm_reset = 0; 1928 1929 dev_info(rdev->dev, "GPU softreset \n"); ··· 1963 udelay(50); 1964 WREG32(GRBM_SOFT_RESET, 0); 1965 (void)RREG32(GRBM_SOFT_RESET); 1966 /* Wait a little for things to settle down */ 1967 udelay(50); 1968 dev_info(rdev->dev, " GRBM_STATUS=0x%08X\n", ··· 1983 RREG32(GRBM_STATUS_SE1)); 1984 dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", 1985 RREG32(SRBM_STATUS)); 1986 evergreen_mc_resume(rdev, &save); 1987 return 0; 1988 }