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

* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/ttm: Remove the ttm_bo_block_reservation() function.
drm/ttm: Remove some leftover debug messages.
drm/radeon: async event synchronization for drmWaitVblank

+4 -61
+2
drivers/gpu/drm/radeon/radeon_drv.c
··· 216 .mmap = drm_mmap, 217 .poll = drm_poll, 218 .fasync = drm_fasync, 219 #ifdef CONFIG_COMPAT 220 .compat_ioctl = radeon_compat_ioctl, 221 #endif ··· 305 .mmap = radeon_mmap, 306 .poll = drm_poll, 307 .fasync = drm_fasync, 308 #ifdef CONFIG_COMPAT 309 .compat_ioctl = radeon_kms_compat_ioctl, 310 #endif
··· 216 .mmap = drm_mmap, 217 .poll = drm_poll, 218 .fasync = drm_fasync, 219 + .read = drm_read, 220 #ifdef CONFIG_COMPAT 221 .compat_ioctl = radeon_compat_ioctl, 222 #endif ··· 304 .mmap = radeon_mmap, 305 .poll = drm_poll, 306 .fasync = drm_fasync, 307 + .read = drm_read, 308 #ifdef CONFIG_COMPAT 309 .compat_ioctl = radeon_kms_compat_ioctl, 310 #endif
+1 -29
drivers/gpu/drm/ttm/ttm_bo.c
··· 1716 } 1717 EXPORT_SYMBOL(ttm_bo_wait); 1718 1719 - void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo) 1720 - { 1721 - atomic_set(&bo->reserved, 0); 1722 - wake_up_all(&bo->event_queue); 1723 - } 1724 - 1725 - int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible, 1726 - bool no_wait) 1727 - { 1728 - int ret; 1729 - 1730 - while (unlikely(atomic_cmpxchg(&bo->reserved, 0, 1) != 0)) { 1731 - if (no_wait) 1732 - return -EBUSY; 1733 - else if (interruptible) { 1734 - ret = wait_event_interruptible 1735 - (bo->event_queue, atomic_read(&bo->reserved) == 0); 1736 - if (unlikely(ret != 0)) 1737 - return ret; 1738 - } else { 1739 - wait_event(bo->event_queue, 1740 - atomic_read(&bo->reserved) == 0); 1741 - } 1742 - } 1743 - return 0; 1744 - } 1745 - 1746 int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait) 1747 { 1748 int ret = 0; 1749 1750 /* 1751 - * Using ttm_bo_reserve instead of ttm_bo_block_reservation 1752 - * makes sure the lru lists are updated. 1753 */ 1754 1755 ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
··· 1716 } 1717 EXPORT_SYMBOL(ttm_bo_wait); 1718 1719 int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait) 1720 { 1721 int ret = 0; 1722 1723 /* 1724 + * Using ttm_bo_reserve makes sure the lru lists are updated. 1725 */ 1726 1727 ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
+1 -4
drivers/gpu/drm/ttm/ttm_lock.c
··· 204 lock->flags &= ~TTM_VT_LOCK; 205 wake_up_all(&lock->queue); 206 spin_unlock(&lock->lock); 207 - printk(KERN_INFO TTM_PFX "vt unlock.\n"); 208 209 return ret; 210 } ··· 264 ttm_lock_type, &ttm_vt_lock_remove, NULL); 265 if (ret) 266 (void)__ttm_vt_unlock(lock); 267 - else { 268 lock->vt_holder = tfile; 269 - printk(KERN_INFO TTM_PFX "vt lock.\n"); 270 - } 271 272 return ret; 273 }
··· 204 lock->flags &= ~TTM_VT_LOCK; 205 wake_up_all(&lock->queue); 206 spin_unlock(&lock->lock); 207 208 return ret; 209 } ··· 265 ttm_lock_type, &ttm_vt_lock_remove, NULL); 266 if (ret) 267 (void)__ttm_vt_unlock(lock); 268 + else 269 lock->vt_holder = tfile; 270 271 return ret; 272 }
-28
include/drm/ttm/ttm_bo_driver.h
··· 789 extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, 790 bool interruptible); 791 792 - /** 793 - * ttm_bo_block_reservation 794 - * 795 - * @bo: A pointer to a struct ttm_buffer_object. 796 - * @interruptible: Use interruptible sleep when waiting. 797 - * @no_wait: Don't sleep, but rather return -EBUSY. 798 - * 799 - * Block reservation for validation by simply reserving the buffer. 800 - * This is intended for single buffer use only without eviction, 801 - * and thus needs no deadlock protection. 802 - * 803 - * Returns: 804 - * -EBUSY: If no_wait == 1 and the buffer is already reserved. 805 - * -ERESTARTSYS: If interruptible == 1 and the process received a signal 806 - * while sleeping. 807 - */ 808 - extern int ttm_bo_block_reservation(struct ttm_buffer_object *bo, 809 - bool interruptible, bool no_wait); 810 - 811 - /** 812 - * ttm_bo_unblock_reservation 813 - * 814 - * @bo: A pointer to a struct ttm_buffer_object. 815 - * 816 - * Unblocks reservation leaving lru lists untouched. 817 - */ 818 - extern void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo); 819 - 820 /* 821 * ttm_bo_util.c 822 */
··· 789 extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, 790 bool interruptible); 791 792 /* 793 * ttm_bo_util.c 794 */