[PATCH] nouveau/drm/fifo: fix ENG_RUNLIST register address (original) (raw)
Alexandre Courbot acourbot at nvidia.com
Fri Feb 7 05:22:57 PST 2014
- Previous message: [PATCH RFC 26/46] drivers/base: provide an infrastructure for componentised subsystems
- Next message: [PATCH] nouveau/drm/fifo: fix ENG_RUNLIST register address
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Address of the ENG_RUNLIST register should be 0x002284 + (engine * 8), not 0x002284 + (engine * 4).
Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
Stumbled upon this one and I'm quite certain the offset was not correct. This is inconsequential for GK20A which only features one runlist, but other GPUs might run into troubles because of this. Not tested, just reported for your consideration.
FWIW, the Android GK20A driver uses the same offset calculation.
drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c b/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c index 99c9dee..dbc3ff6 100644 --- a/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c +++ b/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c @@ -112,7 +112,7 @@ nve0_fifo_runlist_update(struct nve0_fifo_priv *priv, u32 engine) nv_wr32(priv, 0x002270, cur->addr >> 12); nv_wr32(priv, 0x002274, (engine << 20) | (p >> 3)); - if (!nv_wait(priv, 0x002284 + (engine * 4), 0x00100000, 0x00000000)) + if (!nv_wait(priv, 0x002284 + (engine * 8), 0x00100000, 0x00000000)) nv_error(priv, "runlist %d update timeout\n", engine); mutex_unlock(&nv_subdev(priv)->mutex); }
1.8.5.3
- Previous message: [PATCH RFC 26/46] drivers/base: provide an infrastructure for componentised subsystems
- Next message: [PATCH] nouveau/drm/fifo: fix ENG_RUNLIST register address
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]