drm/i915: Fix up the inverse mapping for default ctx->engines[]
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / i915_utils.h
index 2987219..4920ff9 100644 (file)
@@ -131,6 +131,18 @@ __check_struct_size(size_t base, size_t arr, size_t count, size_t *size)
        ((typeof(ptr))((unsigned long)(ptr) | __bits));                 \
 })
 
+#define ptr_count_dec(p_ptr) do {                                      \
+       typeof(p_ptr) __p = (p_ptr);                                    \
+       unsigned long __v = (unsigned long)(*__p);                      \
+       *__p = (typeof(*p_ptr))(--__v);                                 \
+} while (0)
+
+#define ptr_count_inc(p_ptr) do {                                      \
+       typeof(p_ptr) __p = (p_ptr);                                    \
+       unsigned long __v = (unsigned long)(*__p);                      \
+       *__p = (typeof(*p_ptr))(++__v);                                 \
+} while (0)
+
 #define page_mask_bits(ptr) ptr_mask_bits(ptr, PAGE_SHIFT)
 #define page_unmask_bits(ptr) ptr_unmask_bits(ptr, PAGE_SHIFT)
 #define page_pack_bits(ptr, bits) ptr_pack_bits(ptr, bits, PAGE_SHIFT)