diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index f7ece0ff431b..15e4f28015e1 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -2642,8 +2642,9 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s  	for (i = 0; i < rdev->num_crtc; i++) {  		if (save->crtc_enabled[i]) {  			tmp = RREG32(EVERGREEN_MASTER_UPDATE_MODE + crtc_offsets[i]); -			if ((tmp & 0x3) != 0) { -				tmp &= ~0x3; +			if ((tmp & 0x7) != 3) { +				tmp &= ~0x7; +				tmp |= 0x3;  				WREG32(EVERGREEN_MASTER_UPDATE_MODE + crtc_offsets[i], tmp);  			}  			tmp = RREG32(EVERGREEN_GRPH_UPDATE + crtc_offsets[i]); @@ -4755,6 +4756,7 @@ static u32 evergreen_get_ih_wptr(struct radeon_device *rdev)  		tmp = RREG32(IH_RB_CNTL);  		tmp |= IH_WPTR_OVERFLOW_CLEAR;  		WREG32(IH_RB_CNTL, tmp); +		wptr &= ~RB_OVERFLOW;  	}  	return (wptr & rdev->ih.ptr_mask);  } |