ec524b2faeae998d0542425c9e6ec1f593a460b4
[linux-2.6-microblaze.git] / drivers / gpu / drm / nouveau / include / nvif / printf.h
1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVIF_PRINTF_H__
3 #define __NVIF_PRINTF_H__
4 #include <nvif/client.h>
5 #include <nvif/parent.h>
6
7 #define NVIF_PRINT(l,o,f,a...) do {                                                                \
8         struct nvif_object *_o = (o);                                                              \
9         struct nvif_parent *_p = _o->parent;                                                       \
10         _p->func->l(_o, "[%s/%08x:%s] "f"\n", _o->client->object.name, _o->handle, _o->name, ##a); \
11 } while(0)
12
13 #ifndef NVIF_DEBUG_PRINT_DISABLE
14 #define NVIF_DEBUG(o,f,a...) NVIF_PRINT(debugf, (o), f, ##a)
15 #else
16 #define NVIF_DEBUG(o,f,a...)
17 #endif
18
19 #define NVIF_ERROR(o,f,a...) NVIF_PRINT(errorf, (o), f, ##a)
20 #define NVIF_ERRON(c,o,f,a...) do {                            \
21         struct nvif_object *_object = (o);                     \
22         int _cond = (c);                                       \
23         if (_cond) {                                           \
24                 NVIF_ERROR(_object, f" (ret:%d)", ##a, _cond); \
25         } else {                                               \
26                 NVIF_DEBUG(_object, f, ##a);                   \
27         }                                                      \
28 } while(0)
29 #endif