drm/imagination: Reuse layout check macros for MIPS FW structures

Replace static asserts on MIPS firmware structures offsets and sizes
with more compact macros that are already used for similar checks on
common firmware interface structures.

Reviewed-by: Brajesh Gupta <brajesh.gupta@imgtec.com>
Link: https://patch.msgid.link/20260729-fwif-checks-updates-v1-2-af65e9606a7e@imgtec.com
Signed-off-by: Alessio Belle <alessio.belle@imgtec.com>
This commit is contained in:
Alessio Belle 2026-07-29 15:57:07 +01:00
parent e0c92f0f9e
commit 173dceaed6

View File

@ -4,55 +4,32 @@
#ifndef PVR_ROGUE_MIPS_CHECK_H
#define PVR_ROGUE_MIPS_CHECK_H
#include <linux/build_bug.h>
#include "pvr_check.h"
static_assert(offsetof(struct rogue_mips_tlb_entry, tlb_page_mask) == 0,
"offsetof(struct rogue_mips_tlb_entry, tlb_page_mask) incorrect");
static_assert(offsetof(struct rogue_mips_tlb_entry, tlb_hi) == 4,
"offsetof(struct rogue_mips_tlb_entry, tlb_hi) incorrect");
static_assert(offsetof(struct rogue_mips_tlb_entry, tlb_lo0) == 8,
"offsetof(struct rogue_mips_tlb_entry, tlb_lo0) incorrect");
static_assert(offsetof(struct rogue_mips_tlb_entry, tlb_lo1) == 12,
"offsetof(struct rogue_mips_tlb_entry, tlb_lo1) incorrect");
static_assert(sizeof(struct rogue_mips_tlb_entry) == 16,
"struct rogue_mips_tlb_entry is incorrect size");
OFFSET_CHECK(struct rogue_mips_tlb_entry, tlb_page_mask, 0);
OFFSET_CHECK(struct rogue_mips_tlb_entry, tlb_hi, 4);
OFFSET_CHECK(struct rogue_mips_tlb_entry, tlb_lo0, 8);
OFFSET_CHECK(struct rogue_mips_tlb_entry, tlb_lo1, 12);
SIZE_CHECK(struct rogue_mips_tlb_entry, 16);
static_assert(offsetof(struct rogue_mips_remap_entry, remap_addr_in) == 0,
"offsetof(struct rogue_mips_remap_entry, remap_addr_in) incorrect");
static_assert(offsetof(struct rogue_mips_remap_entry, remap_addr_out) == 4,
"offsetof(struct rogue_mips_remap_entry, remap_addr_out) incorrect");
static_assert(offsetof(struct rogue_mips_remap_entry, remap_region_size) == 8,
"offsetof(struct rogue_mips_remap_entry, remap_region_size) incorrect");
static_assert(sizeof(struct rogue_mips_remap_entry) == 12,
"struct rogue_mips_remap_entry is incorrect size");
OFFSET_CHECK(struct rogue_mips_remap_entry, remap_addr_in, 0);
OFFSET_CHECK(struct rogue_mips_remap_entry, remap_addr_out, 4);
OFFSET_CHECK(struct rogue_mips_remap_entry, remap_region_size, 8);
SIZE_CHECK(struct rogue_mips_remap_entry, 12);
static_assert(offsetof(struct rogue_mips_state, error_state) == 0,
"offsetof(struct rogue_mips_state, error_state) incorrect");
static_assert(offsetof(struct rogue_mips_state, error_epc) == 4,
"offsetof(struct rogue_mips_state, error_epc) incorrect");
static_assert(offsetof(struct rogue_mips_state, status_register) == 8,
"offsetof(struct rogue_mips_state, status_register) incorrect");
static_assert(offsetof(struct rogue_mips_state, cause_register) == 12,
"offsetof(struct rogue_mips_state, cause_register) incorrect");
static_assert(offsetof(struct rogue_mips_state, bad_register) == 16,
"offsetof(struct rogue_mips_state, bad_register) incorrect");
static_assert(offsetof(struct rogue_mips_state, epc) == 20,
"offsetof(struct rogue_mips_state, epc) incorrect");
static_assert(offsetof(struct rogue_mips_state, sp) == 24,
"offsetof(struct rogue_mips_state, sp) incorrect");
static_assert(offsetof(struct rogue_mips_state, debug) == 28,
"offsetof(struct rogue_mips_state, debug) incorrect");
static_assert(offsetof(struct rogue_mips_state, depc) == 32,
"offsetof(struct rogue_mips_state, depc) incorrect");
static_assert(offsetof(struct rogue_mips_state, bad_instr) == 36,
"offsetof(struct rogue_mips_state, bad_instr) incorrect");
static_assert(offsetof(struct rogue_mips_state, unmapped_address) == 40,
"offsetof(struct rogue_mips_state, unmapped_address) incorrect");
static_assert(offsetof(struct rogue_mips_state, tlb) == 44,
"offsetof(struct rogue_mips_state, tlb) incorrect");
static_assert(offsetof(struct rogue_mips_state, remap) == 300,
"offsetof(struct rogue_mips_state, remap) incorrect");
static_assert(sizeof(struct rogue_mips_state) == 684,
"struct rogue_mips_state is incorrect size");
OFFSET_CHECK(struct rogue_mips_state, error_state, 0);
OFFSET_CHECK(struct rogue_mips_state, error_epc, 4);
OFFSET_CHECK(struct rogue_mips_state, status_register, 8);
OFFSET_CHECK(struct rogue_mips_state, cause_register, 12);
OFFSET_CHECK(struct rogue_mips_state, bad_register, 16);
OFFSET_CHECK(struct rogue_mips_state, epc, 20);
OFFSET_CHECK(struct rogue_mips_state, sp, 24);
OFFSET_CHECK(struct rogue_mips_state, debug, 28);
OFFSET_CHECK(struct rogue_mips_state, depc, 32);
OFFSET_CHECK(struct rogue_mips_state, bad_instr, 36);
OFFSET_CHECK(struct rogue_mips_state, unmapped_address, 40);
OFFSET_CHECK(struct rogue_mips_state, tlb, 44);
OFFSET_CHECK(struct rogue_mips_state, remap, 300);
SIZE_CHECK(struct rogue_mips_state, 684);
#endif /* PVR_ROGUE_MIPS_CHECK_H */