mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gpu: nvgpu: ga10b: update runlist.write_state
Update HAL function runlist.write_state to skip in-active runlists in fifo.runlists. It is possible for one or more engines to be floorswept in which case their associated runlist will be in-active, example, if host supports 3 runlists(0, 1, 2) each serving 3 engines(0, 1, 2), and engine-1 is floorswept, then runlist-1 becomes in-active and the entry fifo->runlists[1] will be set to NULL. Bug 3650588 Change-Id: Iaf9d75e310903c47b842e84dcfa2209d9fe7da96 Signed-off-by: Antony Clince Alex <aalex@nvidia.com> (cherry picked from commit e29a2019cf8f4796737c670f98164f7783448d49) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2717075 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Seema Khowala <seemaj@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
152b4a0379
commit
a80c445a5d
@@ -128,8 +128,15 @@ void ga10b_runlist_write_state(struct gk20a *g, u32 runlists_mask,
|
||||
while (runlists_mask != 0U && (runlist_id < g->fifo.max_runlists)) {
|
||||
if ((runlists_mask & BIT32(runlist_id)) != 0U) {
|
||||
runlist = g->fifo.runlists[runlist_id];
|
||||
nvgpu_runlist_writel(g, runlist,
|
||||
runlist_sched_disable_r(), reg_val);
|
||||
/*
|
||||
* Its possible that some of the engines might be
|
||||
* FSed, in which case the entry in fifo.runlists will
|
||||
* be NULL, hence perform a NULL check first.
|
||||
*/
|
||||
if (runlist != NULL) {
|
||||
nvgpu_runlist_writel(g, runlist,
|
||||
runlist_sched_disable_r(), reg_val);
|
||||
}
|
||||
}
|
||||
runlists_mask &= ~BIT32(runlist_id);
|
||||
runlist_id++;
|
||||
|
||||
Reference in New Issue
Block a user