drm/i915: fold wait_for_atomic_us into wait_for_atomic
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 28 Mar 2013 10:31:04 +0000 (11:31 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 28 Mar 2013 15:39:11 +0000 (16:39 +0100)
Since

commit bcf9dcc1e6269fac674e41f25d007ff75f76e840
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jul 15 09:42:38 2012 +0100

    drm/i915: Workaround hang with BSD and forcewake on SandyBridge

and

commit 0cc2764cc4a4bd73df55f8893c871778cf7ddd0f
Author: Ben Widawsky <ben@bwidawsk.net>
Date:   Sat Sep 1 22:59:48 2012 -0700

    drm/i915: use cpu_relax() in wait_for_atomic

these two macros are essentially the same, so unify them. We keep the
_us version since it's a nice documentation for smaller timeouts.

v2: Fixup time unit conversion, _wait_for takes ms (Ville).

Cc: Jack Winter <jbh@alchemy.lu>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_drv.h

index 5c7b04b41702e3fde76d9bd45d2215d1fd3d5e69..8720a67395f83361d978ec09b34e322f5afc71b5 100644 (file)
        ret__;                                                          \
 })
 
-#define wait_for_atomic_us(COND, US) ({ \
-       unsigned long timeout__ = jiffies + usecs_to_jiffies(US);       \
-       int ret__ = 0;                                                  \
-       while (!(COND)) {                                               \
-               if (time_after(jiffies, timeout__)) {                   \
-                       ret__ = -ETIMEDOUT;                             \
-                       break;                                          \
-               }                                                       \
-               cpu_relax();                                            \
-       }                                                               \
-       ret__;                                                          \
-})
-
 #define wait_for(COND, MS) _wait_for(COND, MS, 1)
 #define wait_for_atomic(COND, MS) _wait_for(COND, MS, 0)
+#define wait_for_atomic_us(COND, US) _wait_for((COND), \
+                                              DIV_ROUND_UP((US), 1000), 0)
 
 #define KHz(x) (1000*x)
 #define MHz(x) KHz(1000*x)