drm/nouveau/pmu/gm20b,gp10b: Fix Falcon bootstrapping
The low-level Falcon bootstrapping callbacks are expected to return 0 on
success or a negative error code on failure. However, the implementation
on Tegra returns the ID or mask of the Falcons that were bootstrapped on
success, thus breaking the calling code, which treats this as failure.
Fix this by making sure we only return 0 or a negative error code, just
like the code for discrete GPUs does.
Fixes: 86ce2a7153
("drm/nouveau/flcn/cmdq: move command generation to subdevs")
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
afa3b96b05
commit
89b34254bb
|
@ -52,8 +52,13 @@ gm20b_pmu_acr_bootstrap_falcon(struct nvkm_falcon *falcon,
|
|||
ret = nvkm_falcon_cmdq_send(pmu->hpq, &cmd.cmd.hdr,
|
||||
gm20b_pmu_acr_bootstrap_falcon_cb,
|
||||
&pmu->subdev, msecs_to_jiffies(1000));
|
||||
if (ret >= 0 && ret != cmd.falcon_id)
|
||||
ret = -EIO;
|
||||
if (ret >= 0) {
|
||||
if (ret != cmd.falcon_id)
|
||||
ret = -EIO;
|
||||
else
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,8 +52,13 @@ gp10b_pmu_acr_bootstrap_multiple_falcons(struct nvkm_falcon *falcon, u32 mask)
|
|||
ret = nvkm_falcon_cmdq_send(pmu->hpq, &cmd.cmd.hdr,
|
||||
gp10b_pmu_acr_bootstrap_multiple_falcons_cb,
|
||||
&pmu->subdev, msecs_to_jiffies(1000));
|
||||
if (ret >= 0 && ret != cmd.falcon_mask)
|
||||
ret = -EIO;
|
||||
if (ret >= 0) {
|
||||
if (ret != cmd.falcon_mask)
|
||||
ret = -EIO;
|
||||
else
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue