*/
 
 #include <core/gpuobj.h>
+#include <core/class.h>
 
 #include <subdev/fb.h>
 #include <subdev/vm/nv04.h>
                return ret;
 
        switch (nv_mclass(parent)) {
-       case 0x006b:
-       case 0x006e:
-       case 0x176e:
-       case 0x406e:
+       case NV_DEVICE_CLASS:
+               break;
+       case NV03_CHANNEL_DMA_CLASS:
+       case NV10_CHANNEL_DMA_CLASS:
+       case NV17_CHANNEL_DMA_CLASS:
+       case NV40_CHANNEL_DMA_CLASS:
                ret = dmaeng->bind(dmaeng, *pobject, &dmaobj->base, &gpuobj);
                nouveau_object_ref(NULL, pobject);
                *pobject = nv_object(gpuobj);
                break;
        default:
-               break;
+               return -EINVAL;
        }
 
        return ret;
 
  */
 
 #include <core/gpuobj.h>
+#include <core/class.h>
 
 #include <subdev/fb.h>
 #include <engine/dmaobj.h>
                return ret;
 
        switch (nv_mclass(parent)) {
-       case 0x506e:
-       case 0x506f:
-       case 0x826e:
-       case 0x826f:
+       case NV_DEVICE_CLASS:
+               break;
+       case NV50_CHANNEL_DMA_CLASS:
+       case NV84_CHANNEL_DMA_CLASS:
+       case NV50_CHANNEL_IND_CLASS:
+       case NV84_CHANNEL_IND_CLASS:
                ret = dmaeng->bind(dmaeng, *pobject, &dmaobj->base, &gpuobj);
                nouveau_object_ref(NULL, pobject);
                *pobject = nv_object(gpuobj);
                break;
        default:
-               break;
+               return -EINVAL;
        }
 
        return ret;