summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:12 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:40:22 +1000
commit3ecd329b6445efdcad26e94edd57f0fd5ccd080b (patch)
tree26cd0b781de9e783c0b2e85a5251d655e73dcc35 /drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
parentaa860e4bbe16d5756d6845022a6e94d6cb200df9 (diff)
downloadlwn-3ecd329b6445efdcad26e94edd57f0fd5ccd080b.tar.gz
lwn-3ecd329b6445efdcad26e94edd57f0fd5ccd080b.zip
drm/nouveau/fb: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c52
1 files changed, 18 insertions, 34 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
index 047e34ac86af..1397e715dc14 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
@@ -144,10 +144,10 @@ static const struct nvkm_enum vm_fault[] = {
static void
nv50_fb_intr(struct nvkm_subdev *subdev)
{
- struct nvkm_device *device = nv_device(subdev);
- struct nvkm_engine *engine;
struct nv50_fb *fb = (void *)subdev;
- const struct nvkm_enum *en, *cl;
+ struct nvkm_device *device = fb->base.subdev.device;
+ struct nvkm_engine *engine;
+ const struct nvkm_enum *en, *re, *cl, *sc;
struct nvkm_object *engctx = NULL;
u32 trap[6], idx, chan;
u8 st0, st1, st2, st3;
@@ -203,38 +203,22 @@ nv50_fb_intr(struct nvkm_subdev *subdev)
en = orig_en;
}
- nv_error(fb, "trapped %s at 0x%02x%04x%04x on channel 0x%08x [%s] ",
- (trap[5] & 0x00000100) ? "read" : "write",
- trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff, chan,
- nvkm_client_name(engctx));
+ re = nvkm_enum_find(vm_fault , st1);
+ cl = nvkm_enum_find(vm_client, st2);
+ if (cl && cl->data) sc = nvkm_enum_find(cl->data, st3);
+ else if (en && en->data) sc = nvkm_enum_find(en->data, st3);
+ else sc = NULL;
+
+ nvkm_error(subdev, "trapped %s at %02x%04x%04x on channel "
+ "%08x [%s] engine %02x [%s] client %02x [%s] "
+ "subclient %02x [%s] reason %08x [%s]\n",
+ (trap[5] & 0x00000100) ? "read" : "write",
+ trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff, chan,
+ nvkm_client_name(engctx), st0, en ? en->name : "",
+ st2, cl ? cl->name : "", st3, sc ? sc->name : "",
+ st1, re ? re->name : "");
nvkm_engctx_put(engctx);
-
- if (en)
- pr_cont("%s/", en->name);
- else
- pr_cont("%02x/", st0);
-
- cl = nvkm_enum_find(vm_client, st2);
- if (cl)
- pr_cont("%s/", cl->name);
- else
- pr_cont("%02x/", st2);
-
- if (cl && cl->data) cl = nvkm_enum_find(cl->data, st3);
- else if (en && en->data) cl = nvkm_enum_find(en->data, st3);
- else cl = NULL;
- if (cl)
- pr_cont("%s", cl->name);
- else
- pr_cont("%02x", st3);
-
- pr_cont(" reason: ");
- en = nvkm_enum_find(vm_fault, st1);
- if (en)
- pr_cont("%s\n", en->name);
- else
- pr_cont("0x%08x\n", st1);
}
int
@@ -259,7 +243,7 @@ nv50_fb_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
if (dma_mapping_error(nv_device_base(device), fb->r100c08))
return -EFAULT;
} else {
- nv_warn(fb, "failed 0x100c08 page alloc\n");
+ nvkm_warn(&fb->base.subdev, "failed 100c08 page alloc\n");
}
nv_subdev(fb)->intr = nv50_fb_intr;