mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 11:01:06 -04:00
drm/nouveau/gsp: add hal for fifo.rsvd_chids
555.42.02 reserves some CHIDs for internal use. Signed-off-by: Ben Skeggs <bskeggs@nvidia.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Timur Tabi <ttabi@nvidia.com> Tested-by: Timur Tabi <ttabi@nvidia.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -427,13 +427,14 @@ r535_fifo_runl_ctor(struct nvkm_fifo *fifo)
|
||||
struct nvkm_rm *rm = gsp->rm;
|
||||
struct nvkm_runl *runl;
|
||||
struct nvkm_engn *engn;
|
||||
u32 cgids = 2048;
|
||||
u32 chids = 2048;
|
||||
u32 first = rm->api->fifo->rsvd_chids;
|
||||
u32 count = chids - first;
|
||||
int ret;
|
||||
NV2080_CTRL_FIFO_GET_DEVICE_INFO_TABLE_PARAMS *ctrl;
|
||||
|
||||
if ((ret = nvkm_chid_new(&nvkm_chan_event, subdev, cgids, 0, cgids, &fifo->cgid)) ||
|
||||
(ret = nvkm_chid_new(&nvkm_chan_event, subdev, chids, 0, chids, &fifo->chid)))
|
||||
if ((ret = nvkm_chid_new(&nvkm_chan_event, subdev, chids, first, count, &fifo->cgid)) ||
|
||||
(ret = nvkm_chid_new(&nvkm_chan_event, subdev, chids, first, count, &fifo->chid)))
|
||||
return ret;
|
||||
|
||||
ctrl = nvkm_gsp_rm_ctrl_rd(&gsp->internal.device.subdevice,
|
||||
|
||||
@@ -298,7 +298,8 @@ r535_gr_oneinit(struct nvkm_gr *base)
|
||||
if (ret)
|
||||
goto done;
|
||||
|
||||
ret = rm->api->fifo->chan.alloc(&golden.vmm->rm.device, NVKM_RM_CHAN(0), 1, 0, true, 0,
|
||||
ret = rm->api->fifo->chan.alloc(&golden.vmm->rm.device, NVKM_RM_CHAN(0),
|
||||
1, 0, true, rm->api->fifo->rsvd_chids,
|
||||
nvkm_memory_addr(golden.inst),
|
||||
nvkm_memory_addr(golden.inst) + 0x1000,
|
||||
nvkm_memory_addr(golden.inst) + 0x2000,
|
||||
|
||||
@@ -101,6 +101,7 @@ struct nvkm_rm_api {
|
||||
int (*xlat_rm_engine_type)(u32 rm_engine_type,
|
||||
enum nvkm_subdev_type *, int *nv2080_type);
|
||||
int (*ectx_size)(struct nvkm_fifo *);
|
||||
unsigned rsvd_chids;
|
||||
struct {
|
||||
int (*alloc)(struct nvkm_gsp_device *, u32 handle,
|
||||
u32 nv2080_engine_type, u8 runq, bool priv, int chid,
|
||||
|
||||
Reference in New Issue
Block a user