xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/nouveau/include/nvif/push507c.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef __NVIF_PUSH507C_H__
2*4882a593Smuzhiyun #define __NVIF_PUSH507C_H__
3*4882a593Smuzhiyun #include <nvif/push.h>
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <nvhw/class/cl507c.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #define PUSH_HDR(p,m,c) do {                                                    \
8*4882a593Smuzhiyun         PUSH_ASSERT(!((m) & ~DRF_SMASK(NV507C_DMA_METHOD_OFFSET)), "mthd");     \
9*4882a593Smuzhiyun         PUSH_ASSERT(!((c) & ~DRF_MASK(NV507C_DMA_METHOD_COUNT)), "size");       \
10*4882a593Smuzhiyun         PUSH_DATA__((p), NVDEF(NV507C, DMA, OPCODE, METHOD) |                   \
11*4882a593Smuzhiyun 			 NVVAL(NV507C, DMA, METHOD_COUNT, (c)) |                \
12*4882a593Smuzhiyun 			 NVVAL(NV507C, DMA, METHOD_OFFSET, (m) >> 2),           \
13*4882a593Smuzhiyun 		    " mthd 0x%04x size %d - %s", (u32)(m), (u32)(c), __func__); \
14*4882a593Smuzhiyun } while(0)
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #define PUSH_MTHD_HDR(p,s,m,c) PUSH_HDR(p,m,c)
17*4882a593Smuzhiyun #define PUSH_MTHD_INC 4:4
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define PUSH_JUMP(p,o) do {                                                 \
20*4882a593Smuzhiyun         PUSH_ASSERT(!((o) & ~DRF_SMASK(NV507C_DMA_JUMP_OFFSET)), "offset"); \
21*4882a593Smuzhiyun 	PUSH_DATA__((p), NVDEF(NV507C, DMA, OPCODE, JUMP) |                 \
22*4882a593Smuzhiyun 			 NVVAL(NV507C, DMA, JUMP_OFFSET, (o) >> 2),         \
23*4882a593Smuzhiyun 		    " jump 0x%08x - %s", (u32)(o), __func__);               \
24*4882a593Smuzhiyun } while(0)
25*4882a593Smuzhiyun #endif
26