drivers/gpu/drm/imagination/pvr_fw_info.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/imagination/pvr_fw_info.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/imagination/pvr_fw_info.h
Extension
.h
Size
3568 bytes
Lines
136
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct pvr_fw_info_header {
	/** @info_version: FW info header version. */
	u32 info_version;
	/** @header_len: Header length. */
	u32 header_len;
	/** @layout_entry_num: Number of entries in the layout table. */
	u32 layout_entry_num;
	/** @layout_entry_size: Size of an entry in the layout table. */
	u32 layout_entry_size;
	/** @bvnc: GPU ID supported by firmware. */
	aligned_u64 bvnc;
	/** @fw_page_size: Page size of processor on which firmware executes. */
	u32 fw_page_size;
	/** @flags: Compatibility flags. */
	u32 flags;
	/** @fw_version_major: Firmware major version number. */
	u16 fw_version_major;
	/** @fw_version_minor: Firmware minor version number. */
	u16 fw_version_minor;
	/** @fw_version_build: Firmware build number. */
	u32 fw_version_build;
	/** @device_info_size: Size of device info structure. */
	u32 device_info_size;
	/** @padding: Padding. */
	u32 padding;
};

/**
 * struct pvr_fw_layout_entry - Entry in firmware layout table, describing a
 *                              section of the firmware image
 */
struct pvr_fw_layout_entry {
	/** @id: Section ID. */
	enum pvr_fw_section_id id;
	/** @type: Section type. */
	enum pvr_fw_section_type type;
	/** @base_addr: Base address of section in FW address space. */
	u32 base_addr;
	/** @max_size: Maximum size of section, in bytes. */
	u32 max_size;
	/** @alloc_size: Allocation size of section, in bytes. */
	u32 alloc_size;
	/** @alloc_offset: Allocation offset of section. */
	u32 alloc_offset;
};

/**
 * struct pvr_fw_device_info_header - Device information header.
 */
struct pvr_fw_device_info_header {
	/** @brn_mask_size: BRN mask size (in u64s). */
	u64 brn_mask_size;
	/** @ern_mask_size: ERN mask size (in u64s). */
	u64 ern_mask_size;
	/** @feature_mask_size: Feature mask size (in u64s). */
	u64 feature_mask_size;
	/** @feature_param_size: Feature parameter size (in u64s). */
	u64 feature_param_size;
};

#endif /* PVR_FW_INFO_H */

Annotation

Implementation Notes