Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.4.
  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
 16OFFSET_CHECK(struct rogue_fwif_dma_addr, dev_addr, 0);
 17OFFSET_CHECK(struct rogue_fwif_dma_addr, fw_addr, 8);
 18SIZE_CHECK(struct rogue_fwif_dma_addr, 16);
 19
 20OFFSET_CHECK(struct rogue_fwif_ufo, addr, 0);
 21OFFSET_CHECK(struct rogue_fwif_ufo, value, 4);
 22SIZE_CHECK(struct rogue_fwif_ufo, 8);
 23
 24OFFSET_CHECK(struct rogue_fwif_cleanup_ctl, submitted_commands, 0);
 25OFFSET_CHECK(struct rogue_fwif_cleanup_ctl, executed_commands, 4);
 26SIZE_CHECK(struct rogue_fwif_cleanup_ctl, 8);
 27
 28OFFSET_CHECK(struct rogue_fwif_cccb_ctl, write_offset, 0);
 29OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset, 4);
 30OFFSET_CHECK(struct rogue_fwif_cccb_ctl, dep_offset, 8);
 31OFFSET_CHECK(struct rogue_fwif_cccb_ctl, wrap_mask, 12);
 32OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset2, 16);
 33OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset3, 20);
 34OFFSET_CHECK(struct rogue_fwif_cccb_ctl, read_offset4, 24);
 35SIZE_CHECK(struct rogue_fwif_cccb_ctl, 32);
 36
 37OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 38	     geom_reg_vdm_context_state_base_addr, 0);
 39OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 40	     geom_reg_vdm_context_state_resume_addr, 8);
 41OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 42	     geom_reg_ta_context_state_base_addr, 16);
 43OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 44	     geom_state[0].geom_reg_vdm_context_store_task0, 24);
 45OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 46	     geom_state[0].geom_reg_vdm_context_store_task1, 32);
 47OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 48	     geom_state[0].geom_reg_vdm_context_store_task2, 40);
 49OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 50	     geom_state[0].geom_reg_vdm_context_resume_task0, 48);
 51OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 52	     geom_state[0].geom_reg_vdm_context_resume_task1, 56);
 53OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 54	     geom_state[0].geom_reg_vdm_context_resume_task2, 64);
 55OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 56	     geom_state[0].geom_reg_vdm_context_store_task3, 72);
 57OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 58	     geom_state[0].geom_reg_vdm_context_store_task4, 80);
 59OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 60	     geom_state[0].geom_reg_vdm_context_resume_task3, 88);
 61OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 62	     geom_state[0].geom_reg_vdm_context_resume_task4, 96);
 63OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 64	     geom_state[1].geom_reg_vdm_context_store_task0, 104);
 65OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 66	     geom_state[1].geom_reg_vdm_context_store_task1, 112);
 67OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 68	     geom_state[1].geom_reg_vdm_context_store_task2, 120);
 69OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 70	     geom_state[1].geom_reg_vdm_context_resume_task0, 128);
 71OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 72	     geom_state[1].geom_reg_vdm_context_resume_task1, 136);
 73OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 74	     geom_state[1].geom_reg_vdm_context_resume_task2, 144);
 75OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 76	     geom_state[1].geom_reg_vdm_context_store_task3, 152);
 77OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 78	     geom_state[1].geom_reg_vdm_context_store_task4, 160);
 79OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 80	     geom_state[1].geom_reg_vdm_context_resume_task3, 168);
 81OFFSET_CHECK(struct rogue_fwif_geom_registers_caswitch,
 82	     geom_state[1].geom_reg_vdm_context_resume_task4, 176);
 83SIZE_CHECK(struct rogue_fwif_geom_registers_caswitch, 184);
 84
 85OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds0, 0);
 86OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds1, 8);
 87OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_terminate_pds, 16);
 88OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_terminate_pds1, 24);
 89OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_resume_pds0, 32);
 90OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_context_pds0_b, 40);
 91OFFSET_CHECK(struct rogue_fwif_cdm_registers_cswitch, cdmreg_cdm_resume_pds0_b, 48);
 92SIZE_CHECK(struct rogue_fwif_cdm_registers_cswitch, 56);
 93
 94OFFSET_CHECK(struct rogue_fwif_static_rendercontext_state, ctxswitch_regs, 0);
 95SIZE_CHECK(struct rogue_fwif_static_rendercontext_state, 368);
 96
 97OFFSET_CHECK(struct rogue_fwif_static_computecontext_state, ctxswitch_regs, 0);
 98SIZE_CHECK(struct rogue_fwif_static_computecontext_state, 56);
 99
100OFFSET_CHECK(struct rogue_fwif_cmd_common, frame_num, 0);
101SIZE_CHECK(struct rogue_fwif_cmd_common, 4);
102
103OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, cmn, 0);
104OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, hwrt_data_fw_addr, 4);
105OFFSET_CHECK(struct rogue_fwif_cmd_geom_frag_shared, pr_buffer_fw_addr, 8);
106SIZE_CHECK(struct rogue_fwif_cmd_geom_frag_shared, 16);
107
108#endif /* PVR_ROGUE_FWIF_SHARED_CHECK_H */