Commit d257f9bf authored by Ilia Mirkin's avatar Ilia Mirkin Committed by Ben Skeggs

drm/nouveau/mpeg: print more debug info when rejecting dma objects

Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: default avatarTobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 7a1af0f8
...@@ -124,6 +124,8 @@ nv31_mpeg_tile(struct nvkm_engine *engine, int i, struct nvkm_fb_tile *tile) ...@@ -124,6 +124,8 @@ nv31_mpeg_tile(struct nvkm_engine *engine, int i, struct nvkm_fb_tile *tile)
static bool static bool
nv31_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data) nv31_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
{ {
struct nv31_mpeg *mpeg = nv31_mpeg(device->mpeg);
struct nvkm_subdev *subdev = &mpeg->engine.subdev;
u32 inst = data << 4; u32 inst = data << 4;
u32 dma0 = nvkm_rd32(device, 0x700000 + inst); u32 dma0 = nvkm_rd32(device, 0x700000 + inst);
u32 dma1 = nvkm_rd32(device, 0x700004 + inst); u32 dma1 = nvkm_rd32(device, 0x700004 + inst);
...@@ -132,8 +134,11 @@ nv31_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data) ...@@ -132,8 +134,11 @@ nv31_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
u32 size = dma1 + 1; u32 size = dma1 + 1;
/* only allow linear DMA objects */ /* only allow linear DMA objects */
if (!(dma0 & 0x00002000)) if (!(dma0 & 0x00002000)) {
nvkm_error(subdev, "inst %08x dma0 %08x dma1 %08x dma2 %08x\n",
inst, dma0, dma1, dma2);
return false; return false;
}
if (mthd == 0x0190) { if (mthd == 0x0190) {
/* DMA_CMD */ /* DMA_CMD */
......
...@@ -31,6 +31,8 @@ bool ...@@ -31,6 +31,8 @@ bool
nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data) nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
{ {
struct nvkm_instmem *imem = device->imem; struct nvkm_instmem *imem = device->imem;
struct nv31_mpeg *mpeg = nv31_mpeg(device->mpeg);
struct nvkm_subdev *subdev = &mpeg->engine.subdev;
u32 inst = data << 4; u32 inst = data << 4;
u32 dma0 = nvkm_instmem_rd32(imem, inst + 0); u32 dma0 = nvkm_instmem_rd32(imem, inst + 0);
u32 dma1 = nvkm_instmem_rd32(imem, inst + 4); u32 dma1 = nvkm_instmem_rd32(imem, inst + 4);
...@@ -39,8 +41,11 @@ nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data) ...@@ -39,8 +41,11 @@ nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
u32 size = dma1 + 1; u32 size = dma1 + 1;
/* only allow linear DMA objects */ /* only allow linear DMA objects */
if (!(dma0 & 0x00002000)) if (!(dma0 & 0x00002000)) {
nvkm_error(subdev, "inst %08x dma0 %08x dma1 %08x dma2 %08x\n",
inst, dma0, dma1, dma2);
return false; return false;
}
if (mthd == 0x0190) { if (mthd == 0x0190) {
/* DMA_CMD */ /* DMA_CMD */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment