drm/nouveau/nvif: simplify and tidy library interfaces
A variety of tweaks to the NVIF library interfaces, mostly ripping out things that turned out to be not so useful. - Removed refcounting from nvif_object, callers are expected to not be stupid instead. - nvif_client is directly reachable from anything derived from nvif_object, removing the need for heuristics to locate it - _new() versions of interfaces, that allocate memory for the object they construct, have been removed. The vast majority of callers used the embedded _init() interfaces. - No longer storing constructor arguments (and the data returned from nvkm) inside nvif_object, it's more or less unused and just wastes memory. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
@@ -171,33 +171,33 @@ nv04_fbcon_accel_init(struct fb_info *info)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x0062,
|
||||
ret = nvif_object_init(&chan->user, 0x0062,
|
||||
device->info.family >= NV_DEVICE_INFO_V0_CELSIUS ?
|
||||
0x0062 : 0x0042, NULL, 0, &nfbdev->surf2d);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x0019, 0x0019, NULL, 0,
|
||||
ret = nvif_object_init(&chan->user, 0x0019, 0x0019, NULL, 0,
|
||||
&nfbdev->clip);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x0043, 0x0043, NULL, 0,
|
||||
ret = nvif_object_init(&chan->user, 0x0043, 0x0043, NULL, 0,
|
||||
&nfbdev->rop);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x0044, 0x0044, NULL, 0,
|
||||
ret = nvif_object_init(&chan->user, 0x0044, 0x0044, NULL, 0,
|
||||
&nfbdev->patt);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x004a, 0x004a, NULL, 0,
|
||||
ret = nvif_object_init(&chan->user, 0x004a, 0x004a, NULL, 0,
|
||||
&nfbdev->gdi);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = nvif_object_init(chan->object, NULL, 0x005f,
|
||||
ret = nvif_object_init(&chan->user, 0x005f,
|
||||
device->info.chipset >= 0x11 ? 0x009f : 0x005f,
|
||||
NULL, 0, &nfbdev->blit);
|
||||
if (ret)
|
||||
|
Reference in New Issue
Block a user