]> Git Repo - linux.git/blob - drivers/gpu/drm/imagination/pvr_rogue_fwif_shared_check.h
Linux 6.14-rc3
[linux.git] / drivers / gpu / drm / imagination / pvr_rogue_fwif_shared_check.h
1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
2 /* Copyright (c) 2023 Imagination Technologies Ltd. */
3
4 #ifndef PVR_ROGUE_FWIF_SHARED_CHECK_H
5 #define PVR_ROGUE_FWIF_SHARED_CHECK_H
6
7 #include <linux/build_bug.h>
8
9 #define OFFSET_CHECK(type, member, offset) \
10         static_assert(offsetof(type, member) == (offset), \
11                       "offsetof(" #type ", " #member ") incorrect")
12
13 #define SIZE_CHECK(type, size) \
14         static_assert(sizeof(type) == (size), #type " is incorrect size")
15
16 OFFSET_CHECK(struct rogue_fwif_dma_addr, dev_addr, 0);
17 OFFSET_CHECK(struct rogue_fwif_dma_addr, fw_addr, 8);
18 SIZE_CHECK(struct rogue_fwif_dma_addr, 16);
19
20 OFFSET_CHECK(struct rogue_fwif_ufo, addr, 0);
21 OFFSET_CHECK(struct rogue_fwif_ufo, value, 4);
22 SIZE_CHECK(struct rogue_fwif_ufo, 8);
23
24 OFFSET_CHECK(struct rogue_fwif_cleanup_ctl, submitted_commands, 0);
25 OFFSET_CHECK(struct rogue_fwif_cleanup_ctl, executed_commands, 4);
26 SIZE_CHECK(struct rogue_fwif_cleanup_ctl, 8);
27
28 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, write_offset, 0);
29 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset, 4);
30 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, dep_offset, 8);
31 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, wrap_mask, 12);
32 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset2, 16);
33 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset3, 20);
34 OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset4, 24);
35 SIZE_CHECK(struct rogue_fwif_cccb_ctl, 32);
36
37 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
38              geom_reg_vdm_context_state_base_addr, 0);
39 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
40              geom_reg_vdm_context_state_resume_addr, 8);
41 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
42              geom_reg_ta_context_state_base_addr, 16);
43 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
44              geom_state[0].geom_reg_vdm_context_store_task0, 24);
45 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
46              geom_state[0].geom_reg_vdm_context_store_task1, 32);
47 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
48              geom_state[0].geom_reg_vdm_context_store_task2, 40);
49 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
50              geom_state[0].geom_reg_vdm_context_resume_task0, 48);
51 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
52              geom_state[0].geom_reg_vdm_context_resume_task1, 56);
53 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
54              geom_state[0].geom_reg_vdm_context_resume_task2, 64);
55 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
56              geom_state[0].geom_reg_vdm_context_store_task3, 72);
57 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
58              geom_state[0].geom_reg_vdm_context_store_task4, 80);
59 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
60              geom_state[0].geom_reg_vdm_context_resume_task3, 88);
61 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
62              geom_state[0].geom_reg_vdm_context_resume_task4, 96);
63 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
64              geom_state[1].geom_reg_vdm_context_store_task0, 104);
65 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
66              geom_state[1].geom_reg_vdm_context_store_task1, 112);
67 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
68              geom_state[1].geom_reg_vdm_context_store_task2, 120);
69 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
70              geom_state[1].geom_reg_vdm_context_resume_task0, 128);
71 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
72              geom_state[1].geom_reg_vdm_context_resume_task1, 136);
73 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
74              geom_state[1].geom_reg_vdm_context_resume_task2, 144);
75 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
76              geom_state[1].geom_reg_vdm_context_store_task3, 152);
77 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
78              geom_state[1].geom_reg_vdm_context_store_task4, 160);
79 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
80              geom_state[1].geom_reg_vdm_context_resume_task3, 168);
81 OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
82              geom_state[1].geom_reg_vdm_context_resume_task4, 176);
83 SIZE_CHECK(struct rogue_fwif_geom_registers_caswitch, 184);
84
85 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds0, 0);
86 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds1, 8);
87 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_terminate_pds, 16);
88 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_terminate_pds1, 24);
89 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_resume_pds0, 32);
90 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds0_b, 40);
91 OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_resume_pds0_b, 48);
92 SIZE_CHECK(struct rogue_fwif_cdm_registers_cswitch, 56);
93
94 OFFSET_CHECK(struct rogue_fwif_static_rendercontext_state, ctxswitch_regs, 0);
95 SIZE_CHECK(struct rogue_fwif_static_rendercontext_state, 368);
96
97 OFFSET_CHECK(struct rogue_fwif_static_computecontext_state, ctxswitch_regs, 0);
98 SIZE_CHECK(struct rogue_fwif_static_computecontext_state, 56);
99
100 OFFSET_CHECK(struct rogue_fwif_cmd_common, frame_num, 0);
101 SIZE_CHECK(struct rogue_fwif_cmd_common, 4);
102
103 OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, cmn, 0);
104 OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, hwrt_data_fw_addr, 4);
105 OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, pr_buffer_fw_addr, 8);
106 SIZE_CHECK(struct rogue_fwif_cmd_geom_frag_shared, 16);
107
108 #endif /* PVR_ROGUE_FWIF_SHARED_CHECK_H */
This page took 0.037207 seconds and 4 git commands to generate.