#include <core/object.h>
 #include <core/ramht.h>
-#include <core/math.h>
 
 #include <subdev/bar.h>
 
        if (ret)
                return ret;
 
-       ramht->bits = log2i(nv_gpuobj(ramht)->size >> 3);
+       ramht->bits = order_base_2(nv_gpuobj(ramht)->size >> 3);
        return 0;
 }
 
 #include <core/engctx.h>
 #include <core/ramht.h>
 #include <core/class.h>
-#include <core/math.h>
 
 #include <subdev/timer.h>
 #include <subdev/bar.h>
                return ret;
 
        ioffset = args->ioffset;
-       ilength = log2i(args->ilength / 8);
+       ilength = order_base_2(args->ilength / 8);
 
        nv_wo32(base->ramfc, 0x3c, 0x403f6078);
        nv_wo32(base->ramfc, 0x44, 0x01003fff);
 
 #include <core/ramht.h>
 #include <core/event.h>
 #include <core/class.h>
-#include <core/math.h>
 
 #include <subdev/timer.h>
 #include <subdev/bar.h>
        nv_parent(chan)->object_detach = nv50_fifo_object_detach;
 
        ioffset = args->ioffset;
-       ilength = log2i(args->ilength / 8);
+       ilength = order_base_2(args->ilength / 8);
 
        nv_wo32(base->ramfc, 0x3c, 0x403f6078);
        nv_wo32(base->ramfc, 0x44, 0x01003fff);
 
 #include <core/engctx.h>
 #include <core/event.h>
 #include <core/class.h>
-#include <core/math.h>
 #include <core/enum.h>
 
 #include <subdev/timer.h>
 
        usermem = chan->base.chid * 0x1000;
        ioffset = args->ioffset;
-       ilength = log2i(args->ilength / 8);
+       ilength = order_base_2(args->ilength / 8);
 
        for (i = 0; i < 0x1000; i += 4)
                nv_wo32(priv->user.mem, usermem + i, 0x00000000);
 
 #include <core/engctx.h>
 #include <core/event.h>
 #include <core/class.h>
-#include <core/math.h>
 #include <core/enum.h>
 
 #include <subdev/timer.h>
 
        usermem = chan->base.chid * 0x200;
        ioffset = args->ioffset;
-       ilength = log2i(args->ilength / 8);
+       ilength = order_base_2(args->ilength / 8);
 
        for (i = 0; i < 0x200; i += 4)
                nv_wo32(priv->user.mem, usermem + i, 0x00000000);
 
+++ /dev/null
-#ifndef __NOUVEAU_MATH_H__
-#define __NOUVEAU_MATH_H__
-
-static inline int
-log2i(u64 base)
-{
-       u64 temp = base >> 1;
-       int log2;
-
-       for (log2 = 0; temp; log2++, temp >>= 1) {
-       }
-
-       return (base & (base - 1)) ? log2 + 1: log2;
-}
-
-#endif
 
 #include <linux/i2c-algo-bit.h>
 #include <linux/delay.h>
 #include <linux/io-mapping.h>
-#include <linux/vmalloc.h>
 #include <linux/acpi.h>
+#include <linux/vmalloc.h>
 #include <linux/dmi.h>
 #include <linux/reboot.h>
 #include <linux/interrupt.h>
+#include <linux/log2.h>
 
 #include <asm/unaligned.h>