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 1924 static int evergreen_gpu_soft_reset(struct radeon_device *rdev) 1925 1925 { 1926 1926 struct evergreen_mc_save save; 1927 - u32 srbm_reset = 0; 1928 1927 u32 grbm_reset = 0; 1929 1928 1930 1929 dev_info(rdev->dev, "GPU softreset \n"); ··· 1962 1963 udelay(50); 1963 1964 WREG32(GRBM_SOFT_RESET, 0); 1964 1965 (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 1966 /* Wait a little for things to settle down */ 1976 1967 udelay(50); 1977 1968 dev_info(rdev->dev, " GRBM_STATUS=0x%08X\n", ··· 1972 1983 RREG32(GRBM_STATUS_SE1)); 1973 1984 dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", 1974 1985 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 1986 evergreen_mc_resume(rdev, &save); 1980 1987 return 0; 1981 1988 }