diff options
Diffstat (limited to 'runlist.c')
-rw-r--r-- | runlist.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -137,3 +137,22 @@ int preempt_runlist(struct nvdebug_state *g, uint32_t rl_id) { | |||
137 | nvdebug_writel(g, NV_PFIFO_RUNLIST_PREEMPT, rl_preempt.raw); | 137 | nvdebug_writel(g, NV_PFIFO_RUNLIST_PREEMPT, rl_preempt.raw); |
138 | return 0; | 138 | return 0; |
139 | } | 139 | } |
140 | |||
141 | // Read and write runlist configuration, triggering a resubmit | ||
142 | int resubmit_runlist(struct nvdebug_state *g, uint32_t rl_id) { | ||
143 | if (g->chip_id < NV_CHIP_ID_TURING) { | ||
144 | eng_runlist_gf100_t rl; | ||
145 | if ((rl.raw = nvdebug_readq(g, NV_PFIFO_ENG_RUNLIST_BASE_GF100(rl_id))) == -1) | ||
146 | return -EIO; | ||
147 | rl.id = rl_id; | ||
148 | nvdebug_writeq(g, NV_PFIFO_RUNLIST_BASE_GF100, rl.raw); | ||
149 | } else if (g->chip_id < NV_CHIP_ID_AMPERE) { | ||
150 | runlist_submit_tu102_t submit; | ||
151 | if ((submit.raw = nvdebug_readq(g, NV_PFIFO_RUNLIST_SUBMIT_TU102(rl_id))) == -1) | ||
152 | return -EIO; | ||
153 | nvdebug_writeq(g, NV_PFIFO_RUNLIST_SUBMIT_TU102(rl_id), submit.raw); | ||
154 | } else { | ||
155 | return -EOPNOTSUPP; | ||
156 | } | ||
157 | return 0; | ||
158 | } | ||