162306a36Sopenharmony_ci#ifndef __NVIF_PUSH507C_H__
262306a36Sopenharmony_ci#define __NVIF_PUSH507C_H__
362306a36Sopenharmony_ci#include <nvif/push.h>
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <nvhw/class/cl507c.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#define PUSH_HDR(p,m,c) do {                                                    \
862306a36Sopenharmony_ci        PUSH_ASSERT(!((m) & ~DRF_SMASK(NV507C_DMA_METHOD_OFFSET)), "mthd");     \
962306a36Sopenharmony_ci        PUSH_ASSERT(!((c) & ~DRF_MASK(NV507C_DMA_METHOD_COUNT)), "size");       \
1062306a36Sopenharmony_ci        PUSH_DATA__((p), NVDEF(NV507C, DMA, OPCODE, METHOD) |                   \
1162306a36Sopenharmony_ci			 NVVAL(NV507C, DMA, METHOD_COUNT, (c)) |                \
1262306a36Sopenharmony_ci			 NVVAL(NV507C, DMA, METHOD_OFFSET, (m) >> 2),           \
1362306a36Sopenharmony_ci		    " mthd 0x%04x size %d - %s", (u32)(m), (u32)(c), __func__); \
1462306a36Sopenharmony_ci} while(0)
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define PUSH_MTHD_HDR(p,s,m,c) PUSH_HDR(p,m,c)
1762306a36Sopenharmony_ci#define PUSH_MTHD_INC 4:4
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define PUSH_JUMP(p,o) do {                                                 \
2062306a36Sopenharmony_ci        PUSH_ASSERT(!((o) & ~DRF_SMASK(NV507C_DMA_JUMP_OFFSET)), "offset"); \
2162306a36Sopenharmony_ci	PUSH_DATA__((p), NVDEF(NV507C, DMA, OPCODE, JUMP) |                 \
2262306a36Sopenharmony_ci			 NVVAL(NV507C, DMA, JUMP_OFFSET, (o) >> 2),         \
2362306a36Sopenharmony_ci		    " jump 0x%08x - %s", (u32)(o), __func__);               \
2462306a36Sopenharmony_ci} while(0)
2562306a36Sopenharmony_ci#endif
26