include/linux/net/intel/libie/adminq.h

Source file repositories/reference/linux-study-clean/include/linux/net/intel/libie/adminq.h

File Facts

System
Linux kernel
Corpus path
include/linux/net/intel/libie/adminq.h
Extension
.h
Size
12431 bytes
Lines
401
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct libie_aqc_generic {
	__le32 param0;
	__le32 param1;
	__le32 addr_high;
	__le32 addr_low;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_generic);

/**
 * struct libie_aqc_get_ver -  Used in command get version (direct 0x0001)
 * @rom_ver: rom version
 * @fw_build: number coressponding to firmware build
 * @fw_branch: branch identifier of firmware version
 * @fw_major: major number of firmware version
 * @fw_minor: minor number of firmware version
 * @fw_patch: patch of firmware version
 * @api_branch: brancch identifier of API version
 * @api_major: major number of API version
 * @api_minor: minor number of API version
 * @api_patch: patch of API version
 */
struct libie_aqc_get_ver {
	__le32	rom_ver;
	__le32	fw_build;
	u8	fw_branch;
	u8	fw_major;
	u8	fw_minor;
	u8	fw_patch;
	u8	api_branch;
	u8	api_major;
	u8	api_minor;
	u8	api_patch;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_get_ver);

/**
 * struct libie_aqc_driver_ver - Used in command send driver version
 *				 (indirect 0x0002)
 * @major_ver: driver major version
 * @minor_ver: driver minor version
 * @build_ver: driver build version
 * @subbuild_ver: driver subbuild version
 * @reserved: for feature use
 * @addr_high: high part of response address buff
 * @addr_low: low part of response address buff
 */
struct libie_aqc_driver_ver {
	u8	major_ver;
	u8	minor_ver;
	u8	build_ver;
	u8	subbuild_ver;
	u8	reserved[4];
	__le32	addr_high;
	__le32	addr_low;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_driver_ver);

enum libie_aq_res_id {
	LIBIE_AQC_RES_ID_NVM				= 1,
	LIBIE_AQC_RES_ID_SDP				= 2,
	LIBIE_AQC_RES_ID_CHNG_LOCK			= 3,
	LIBIE_AQC_RES_ID_GLBL_LOCK			= 4,
};

enum libie_aq_res_access_type {
	LIBIE_AQC_RES_ACCESS_READ			= 1,
	LIBIE_AQC_RES_ACCESS_WRITE			= 2,
};

#define LIBIE_AQ_RES_NVM_READ_DFLT_TIMEOUT_MS		3000
#define LIBIE_AQ_RES_NVM_WRITE_DFLT_TIMEOUT_MS		180000
#define LIBIE_AQ_RES_CHNG_LOCK_DFLT_TIMEOUT_MS		1000
#define LIBIE_AQ_RES_GLBL_LOCK_DFLT_TIMEOUT_MS		3000

#define LIBIE_AQ_RES_GLBL_SUCCESS			0
#define LIBIE_AQ_RES_GLBL_IN_PROG			1
#define LIBIE_AQ_RES_GLBL_DONE				2

/**
 * struct libie_aqc_req_res - Request resource ownership
 * @res_id: resource ID (look at enum definition above)
 * @access_type: read or write (enum definition above)
 * @timeout: Upon successful completion, FW writes this value and driver is
 * expected to release resource before timeout. This value is provided in
 * milliseconds.
 * @res_number: for SDP, this is the pin ID of the SDP
 * @status: status only used for LIBIE_AQC_RES_ID_GLBL_LOCK, for others reserved
 * @reserved: reserved for future use
 *
 * Used in commands:

Annotation

Implementation Notes