On Tue, Apr 18, 2017 at 11:52:11AM +0100, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > Move the BUILD_BUG_ONs for busy-wait duration outside the > _wait_for_atomic macro as discussed on the mailing list. > > v2: Simplify the macro by omitting the ret__ local. (Chris Wilson) > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > Suggested-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > Fixes: 1d1a9774e404 ("drm/i915: Extend intel_wait_for_register_fw() with fast timeout") > Cc: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- Reviewed-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> -Michal > drivers/gpu/drm/i915/intel_drv.h | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index f78d7c5f3805..60ba15dc6d05 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -88,7 +88,6 @@ > int cpu, ret, timeout = (US) * 1000; \ > u64 base; \ > _WAIT_FOR_ATOMIC_CHECK(ATOMIC); \ > - BUILD_BUG_ON((US) > 50000); \ > if (!(ATOMIC)) { \ > preempt_disable(); \ > cpu = smp_processor_id(); \ > @@ -130,8 +129,14 @@ > ret__; \ > }) > > -#define wait_for_atomic(COND, MS) _wait_for_atomic((COND), (MS) * 1000, 1) > -#define wait_for_atomic_us(COND, US) _wait_for_atomic((COND), (US), 1) > +#define wait_for_atomic_us(COND, US) \ > +({ \ > + BUILD_BUG_ON(!__builtin_constant_p(US)); \ > + BUILD_BUG_ON((US) > 50000); \ > + _wait_for_atomic((COND), (US), 1); \ > +}) > + > +#define wait_for_atomic(COND, MS) wait_for_atomic_us((COND), (MS) * 1000) > > #define KHz(x) (1000 * (x)) > #define MHz(x) KHz(1000 * (x)) > -- > 2.9.3 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx