drm/i915/perf: Wrap 64bit divides in do_div()
Just a couple of naked 64bit divides causing link errors on 32bit
builds, with:
ERROR: "__udivdi3" [drivers/gpu/drm/i915/i915.ko] undefined!
v2: do_div() is only u64/u32, we need a u32/u64!
v3: div_u64() == u64/u32, div64_u64() == u64/u64
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Fixes: d79651522e
("drm/i915: Enable i915 perf stream for Haswell OA unit")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Robert Bragg <robert@sixbynine.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20161123150714.24449-1-chris@chris-wilson.co.uk
Reviewed-by: Robert Bragg <robert@sixbynine.org>
This commit is contained in:
parent
49d73912cb
commit
2460393583
|
@ -974,8 +974,8 @@ static void i915_oa_stream_disable(struct i915_perf_stream *stream)
|
|||
|
||||
static u64 oa_exponent_to_ns(struct drm_i915_private *dev_priv, int exponent)
|
||||
{
|
||||
return 1000000000ULL * (2ULL << exponent) /
|
||||
dev_priv->perf.oa.timestamp_frequency;
|
||||
return div_u64(1000000000ULL * (2ULL << exponent),
|
||||
dev_priv->perf.oa.timestamp_frequency);
|
||||
}
|
||||
|
||||
static const struct i915_perf_stream_ops i915_oa_stream_ops = {
|
||||
|
@ -1051,16 +1051,17 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
|
|||
|
||||
dev_priv->perf.oa.periodic = props->oa_periodic;
|
||||
if (dev_priv->perf.oa.periodic) {
|
||||
u64 period_ns = oa_exponent_to_ns(dev_priv,
|
||||
props->oa_period_exponent);
|
||||
u32 tail;
|
||||
|
||||
dev_priv->perf.oa.period_exponent = props->oa_period_exponent;
|
||||
|
||||
/* See comment for OA_TAIL_MARGIN_NSEC for details
|
||||
* about this tail_margin...
|
||||
*/
|
||||
dev_priv->perf.oa.tail_margin =
|
||||
((OA_TAIL_MARGIN_NSEC / period_ns) + 1) * format_size;
|
||||
tail = div64_u64(OA_TAIL_MARGIN_NSEC,
|
||||
oa_exponent_to_ns(dev_priv,
|
||||
props->oa_period_exponent));
|
||||
dev_priv->perf.oa.tail_margin = (tail + 1) * format_size;
|
||||
}
|
||||
|
||||
if (stream->ctx) {
|
||||
|
|
Loading…
Reference in New Issue