Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon/kms: avivo cursor workaround applies to evergreen as well

+12 -16
+12 -16
drivers/gpu/drm/radeon/radeon_cursor.c
··· 203 203 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); 204 204 struct radeon_device *rdev = crtc->dev->dev_private; 205 205 int xorigin = 0, yorigin = 0; 206 + int w = radeon_crtc->cursor_width; 206 207 207 208 if (x < 0) 208 209 xorigin = -x + 1; ··· 214 213 if (yorigin >= CURSOR_HEIGHT) 215 214 yorigin = CURSOR_HEIGHT - 1; 216 215 217 - radeon_lock_cursor(crtc, true); 218 - if (ASIC_IS_DCE4(rdev)) { 219 - /* cursors are offset into the total surface */ 220 - x += crtc->x; 221 - y += crtc->y; 222 - DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y); 223 - 224 - /* XXX: check if evergreen has the same issues as avivo chips */ 225 - WREG32(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, 226 - ((xorigin ? 0 : x) << 16) | 227 - (yorigin ? 0 : y)); 228 - WREG32(EVERGREEN_CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); 229 - WREG32(EVERGREEN_CUR_SIZE + radeon_crtc->crtc_offset, 230 - ((radeon_crtc->cursor_width - 1) << 16) | (radeon_crtc->cursor_height - 1)); 231 - } else if (ASIC_IS_AVIVO(rdev)) { 232 - int w = radeon_crtc->cursor_width; 216 + if (ASIC_IS_AVIVO(rdev)) { 233 217 int i = 0; 234 218 struct drm_crtc *crtc_p; 235 219 ··· 246 260 if (w <= 0) 247 261 w = 1; 248 262 } 263 + } 249 264 265 + radeon_lock_cursor(crtc, true); 266 + if (ASIC_IS_DCE4(rdev)) { 267 + WREG32(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, 268 + ((xorigin ? 0 : x) << 16) | 269 + (yorigin ? 0 : y)); 270 + WREG32(EVERGREEN_CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); 271 + WREG32(EVERGREEN_CUR_SIZE + radeon_crtc->crtc_offset, 272 + ((w - 1) << 16) | (radeon_crtc->cursor_height - 1)); 273 + } else if (ASIC_IS_AVIVO(rdev)) { 250 274 WREG32(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offset, 251 275 ((xorigin ? 0 : x) << 16) | 252 276 (yorigin ? 0 : y));