提交 8000fb21 编写于 作者: B Ben Skeggs

drm/nouveau/core: can now assume client/device object tree based on object.engine

Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 bdda4703
......@@ -64,11 +64,13 @@ nv_printk_(struct nouveau_object *object, int level, const char *fmt, ...)
struct nouveau_object *subdev;
char obuf[64], *ofmt = "";
subdev = object;
while (subdev && !nv_iclass(subdev, NV_SUBDEV_CLASS))
subdev = subdev->parent;
if (!subdev)
if (object->engine == NULL) {
subdev = object;
while (subdev && !nv_iclass(subdev, NV_SUBDEV_CLASS))
subdev = subdev->parent;
} else {
subdev = object->engine;
}
device = subdev;
if (device->parent)
......
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册