diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/include')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/core/device.h | 39 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/core/engine.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/core/subdev.h | 2 |
3 files changed, 5 insertions, 38 deletions
diff --git a/drivers/gpu/drm/nouveau/core/include/core/device.h b/drivers/gpu/drm/nouveau/core/include/core/device.h index 33b35c4..21a055a 100644 --- a/drivers/gpu/drm/nouveau/core/include/core/device.h +++ b/drivers/gpu/drm/nouveau/core/include/core/device.h @@ -105,44 +105,7 @@ struct nouveau_device { int nouveau_device_list(u64 *name, int size); -static inline struct nouveau_device * -nv_device(void *obj) -{ - struct nouveau_object *object = nv_object(obj); - struct nouveau_object *device = object; - - if (device->engine) - device = device->engine; - if (device->parent) - device = device->parent; - -#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA - if (unlikely(!nv_iclass(device, NV_SUBDEV_CLASS) || - (nv_hclass(device) & 0xff) != NVDEV_ENGINE_DEVICE)) { - nv_assert("BAD CAST -> NvDevice, 0x%08x 0x%08x", - nv_hclass(object), nv_hclass(device)); - } -#endif - - return (void *)device; -} - -static inline struct nouveau_subdev * -nouveau_subdev(void *obj, int sub) -{ - if (nv_device(obj)->subdev[sub]) - return nv_subdev(nv_device(obj)->subdev[sub]); - return NULL; -} - -static inline struct nouveau_engine * -nouveau_engine(void *obj, int sub) -{ - struct nouveau_subdev *subdev = nouveau_subdev(obj, sub); - if (subdev && nv_iclass(subdev, NV_ENGINE_CLASS)) - return nv_engine(subdev); - return NULL; -} +struct nouveau_device *nv_device(void *obj); static inline bool nv_device_match(struct nouveau_object *object, u16 dev, u16 ven, u16 sub) diff --git a/drivers/gpu/drm/nouveau/core/include/core/engine.h b/drivers/gpu/drm/nouveau/core/include/core/engine.h index 8945755..be04250 100644 --- a/drivers/gpu/drm/nouveau/core/include/core/engine.h +++ b/drivers/gpu/drm/nouveau/core/include/core/engine.h @@ -35,6 +35,8 @@ nv_engidx(struct nouveau_object *object) return nv_subidx(object); } +struct nouveau_engine *nouveau_engine(void *obj, int idx); + #define nouveau_engine_create(p,e,c,d,i,f,r) \ nouveau_engine_create_((p), (e), (c), (d), (i), (f), \ sizeof(**r),(void **)r) diff --git a/drivers/gpu/drm/nouveau/core/include/core/subdev.h b/drivers/gpu/drm/nouveau/core/include/core/subdev.h index c24d64b..d9739ae 100644 --- a/drivers/gpu/drm/nouveau/core/include/core/subdev.h +++ b/drivers/gpu/drm/nouveau/core/include/core/subdev.h @@ -33,6 +33,8 @@ nv_subidx(struct nouveau_object *object) return nv_hclass(nv_subdev(object)) & 0xff; } +struct nouveau_subdev *nouveau_subdev(void *obj, int idx); + #define nouveau_subdev_create(p,e,o,v,s,f,d) \ nouveau_subdev_create_((p), (e), (o), (v), (s), (f), \ sizeof(**d),(void **)d) |