diff options
Diffstat (limited to 'nvkm/engine/device')
-rw-r--r-- | nvkm/engine/device/base.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/nvkm/engine/device/base.c b/nvkm/engine/device/base.c index 7c0cbcde7..0a6abc23f 100644 --- a/nvkm/engine/device/base.c +++ b/nvkm/engine/device/base.c @@ -512,9 +512,10 @@ struct nouveau_device * nv_device(void *obj) { struct nouveau_object *device = nv_object(obj); - while (device && device->parent) - device = device->parent; - if (!nv_iclass(device, NV_ENGINE_CLASS)) { + if (device->engine == NULL) { + while (device && device->parent) + device = device->parent; + } else { device = nv_object(obj)->engine; if (device && device->parent) device = device->parent; |