Lines Matching refs:spin
552 /* Simple spin locks */
553 #define DRM_SPINLOCK(spin,val) \
557 DRM_CAS(spin,0,val,__ret); \
558 if (__ret) while ((spin)->lock); \
562 #define DRM_SPINLOCK_TAKE(spin,val) \
567 cur = (*spin).lock; \
568 DRM_CAS(spin,cur,val,__ret); \
572 #define DRM_SPINLOCK_COUNT(spin,val,count,__ret) \
577 DRM_CAS(spin,0,val,__ret); \
578 if (__ret) for (;__i < count && (spin)->lock; __i++); \
582 #define DRM_SPINUNLOCK(spin,val) \
585 if ((*spin).lock == val) { /* else server stole lock */ \
587 DRM_CAS(spin,val,0,__ret); \