.device = ~0ULL,
};
+ abi16->cli = cli;
INIT_LIST_HEAD(&abi16->channels);
/* allocate device object targeting client's default
int
nouveau_abi16_put(struct nouveau_abi16 *abi16, int ret)
{
- struct nouveau_cli *cli = (void *)abi16->device.object.client;
+ struct nouveau_cli *cli = abi16->cli;
mutex_unlock(&cli->mutex);
return ret;
}
void
nouveau_abi16_fini(struct nouveau_abi16 *abi16)
{
- struct nouveau_cli *cli = (void *)abi16->device.object.client;
+ struct nouveau_cli *cli = abi16->cli;
struct nouveau_abi16_chan *chan, *temp;
/* cleanup channels */
if (init->handle == ~0)
return nouveau_abi16_put(abi16, -EINVAL);
- client = abi16->device.object.client;
+ client = &abi16->cli->base;
chan = nouveau_abi16_chan(abi16, init->channel);
if (!chan)
/* completely unnecessary for these chipsets... */
if (unlikely(device->info.family >= NV_DEVICE_INFO_V0_FERMI))
return nouveau_abi16_put(abi16, -EINVAL);
- client = abi16->device.object.client;
+ client = &abi16->cli->base;
chan = nouveau_abi16_chan(abi16, info->channel);
if (!chan)