OSDN Git Service

drm/i915: Remove __I915__ magic macro
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Wed, 16 Nov 2016 08:55:45 +0000 (08:55 +0000)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Thu, 17 Nov 2016 13:56:54 +0000 (13:56 +0000)
And at the same time introduce a static inline helper for
more type safety.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1479286545-15020-2-git-send-email-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/i915_drv.h

index 70a736a..63c0ea0 100644 (file)
@@ -2372,18 +2372,13 @@ struct drm_i915_cmd_table {
        int count;
 };
 
-/* Note that the (struct drm_i915_private *) cast is just to shut up gcc. */
-#define __I915__(p) ({ \
-       struct drm_i915_private *__p; \
-       if (__builtin_types_compatible_p(typeof(*p), struct drm_i915_private)) \
-               __p = (struct drm_i915_private *)p; \
-       else if (__builtin_types_compatible_p(typeof(*p), struct drm_device)) \
-               __p = to_i915((struct drm_device *)p); \
-       else \
-               BUILD_BUG(); \
-       __p; \
-})
-#define INTEL_INFO(p)  (&__I915__(p)->info)
+static inline const struct intel_device_info *
+intel_info(const struct drm_i915_private *dev_priv)
+{
+       return &dev_priv->info;
+}
+
+#define INTEL_INFO(dev_priv)   intel_info((dev_priv))
 
 #define INTEL_GEN(dev_priv)    ((dev_priv)->info.gen)
 #define INTEL_DEVID(dev_priv)  ((dev_priv)->info.device_id)