summaryrefslogtreecommitdiff
path: root/nvkm/engine/device/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'nvkm/engine/device/base.c')
-rw-r--r--nvkm/engine/device/base.c7
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;