- both of these are stored in nouveau_cli already

Signed-off-by: Ben Skeggs <bske...@nvidia.com>
---
 drivers/gpu/drm/nouveau/nouveau_abi16.c |  2 +-
 drivers/gpu/drm/nouveau/nouveau_chan.c  | 17 +++++++++--------
 drivers/gpu/drm/nouveau/nouveau_chan.h  |  3 ++-
 drivers/gpu/drm/nouveau/nouveau_drm.c   |  4 ++--
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c 
b/drivers/gpu/drm/nouveau/nouveau_abi16.c
index f465fe93b1f7..291107ddc59b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_abi16.c
+++ b/drivers/gpu/drm/nouveau/nouveau_abi16.c
@@ -353,7 +353,7 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS)
        list_add(&chan->head, &abi16->channels);
 
        /* create channel object and initialise dma and fence management */
-       ret = nouveau_channel_new(drm, device, false, runm, 
init->fb_ctxdma_handle,
+       ret = nouveau_channel_new(cli, false, runm, init->fb_ctxdma_handle,
                                  init->tt_ctxdma_handle, &chan->chan);
        if (ret)
                goto done;
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c 
b/drivers/gpu/drm/nouveau/nouveau_chan.c
index 7c97b2886807..290523522717 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -142,10 +142,11 @@ nouveau_channel_wait(struct nvif_push *push, u32 size)
 }
 
 static int
-nouveau_channel_prep(struct nouveau_drm *drm, struct nvif_device *device,
+nouveau_channel_prep(struct nouveau_cli *cli,
                     u32 size, struct nouveau_channel **pchan)
 {
-       struct nouveau_cli *cli = (void *)device->object.client;
+       struct nouveau_drm *drm = cli->drm;
+       struct nvif_device *device = &cli->device;
        struct nv_dma_v0 args = {};
        struct nouveau_channel *chan;
        u32 target;
@@ -155,6 +156,7 @@ nouveau_channel_prep(struct nouveau_drm *drm, struct 
nvif_device *device,
        if (!chan)
                return -ENOMEM;
 
+       chan->cli = cli;
        chan->device = device;
        chan->drm = drm;
        chan->vmm = nouveau_cli_vmm(cli);
@@ -254,7 +256,7 @@ nouveau_channel_prep(struct nouveau_drm *drm, struct 
nvif_device *device,
 }
 
 static int
-nouveau_channel_ctor(struct nouveau_drm *drm, struct nvif_device *device, bool 
priv, u64 runm,
+nouveau_channel_ctor(struct nouveau_cli *cli, bool priv, u64 runm,
                     struct nouveau_channel **pchan)
 {
        const struct nvif_mclass hosts[] = {
@@ -279,7 +281,7 @@ nouveau_channel_ctor(struct nouveau_drm *drm, struct 
nvif_device *device, bool p
                struct nvif_chan_v0 chan;
                char name[TASK_COMM_LEN+16];
        } args;
-       struct nouveau_cli *cli = (void *)device->object.client;
+       struct nvif_device *device = &cli->device;
        struct nouveau_channel *chan;
        const u64 plength = 0x10000;
        const u64 ioffset = plength;
@@ -298,7 +300,7 @@ nouveau_channel_ctor(struct nouveau_drm *drm, struct 
nvif_device *device, bool p
                size = ioffset + ilength;
 
        /* allocate dma push buffer */
-       ret = nouveau_channel_prep(drm, device, size, &chan);
+       ret = nouveau_channel_prep(cli, size, &chan);
        *pchan = chan;
        if (ret)
                return ret;
@@ -493,13 +495,12 @@ nouveau_channel_init(struct nouveau_channel *chan, u32 
vram, u32 gart)
 }
 
 int
-nouveau_channel_new(struct nouveau_drm *drm, struct nvif_device *device,
+nouveau_channel_new(struct nouveau_cli *cli,
                    bool priv, u64 runm, u32 vram, u32 gart, struct 
nouveau_channel **pchan)
 {
-       struct nouveau_cli *cli = (void *)device->object.client;
        int ret;
 
-       ret = nouveau_channel_ctor(drm, device, priv, runm, pchan);
+       ret = nouveau_channel_ctor(cli, priv, runm, pchan);
        if (ret) {
                NV_PRINTK(dbg, cli, "channel create, %d\n", ret);
                return ret;
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.h 
b/drivers/gpu/drm/nouveau/nouveau_chan.h
index 5de2ef4e98c2..260febd634ee 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.h
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.h
@@ -12,6 +12,7 @@ struct nouveau_channel {
                struct nvif_push *push;
        } chan;
 
+       struct nouveau_cli *cli;
        struct nvif_device *device;
        struct nouveau_drm *drm;
        struct nouveau_vmm *vmm;
@@ -62,7 +63,7 @@ struct nouveau_channel {
 int nouveau_channels_init(struct nouveau_drm *);
 void nouveau_channels_fini(struct nouveau_drm *);
 
-int  nouveau_channel_new(struct nouveau_drm *, struct nvif_device *, bool 
priv, u64 runm,
+int  nouveau_channel_new(struct nouveau_cli *, bool priv, u64 runm,
                         u32 vram, u32 gart, struct nouveau_channel **);
 void nouveau_channel_del(struct nouveau_channel **);
 int  nouveau_channel_idle(struct nouveau_channel *);
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c 
b/drivers/gpu/drm/nouveau/nouveau_drm.c
index be9088ed273e..da5bb7c51dab 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -356,7 +356,7 @@ nouveau_accel_ce_init(struct nouveau_drm *drm)
                return;
        }
 
-       ret = nouveau_channel_new(drm, device, false, runm, NvDmaFB, NvDmaTT, 
&drm->cechan);
+       ret = nouveau_channel_new(&drm->cli, false, runm, NvDmaFB, NvDmaTT, 
&drm->cechan);
        if (ret)
                NV_ERROR(drm, "failed to create ce channel, %d\n", ret);
 }
@@ -384,7 +384,7 @@ nouveau_accel_gr_init(struct nouveau_drm *drm)
                return;
        }
 
-       ret = nouveau_channel_new(drm, device, false, runm, NvDmaFB, NvDmaTT, 
&drm->channel);
+       ret = nouveau_channel_new(&drm->cli, false, runm, NvDmaFB, NvDmaTT, 
&drm->channel);
        if (ret) {
                NV_ERROR(drm, "failed to create kernel channel, %d\n", ret);
                nouveau_accel_gr_fini(drm);
-- 
2.41.0

Reply via email to