drivers/crypto/caam/dpseci.h
Source file repositories/reference/linux-study-clean/drivers/crypto/caam/dpseci.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/crypto/caam/dpseci.h- Extension
.h- Size
- 10652 bytes
- Lines
- 336
- Domain
- Driver Families
- Bucket
- drivers/crypto
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct fsl_mc_iostruct dpseci_cfgstruct dpseci_attrstruct dpseci_dest_cfgstruct dpseci_rx_queue_cfgstruct dpseci_rx_queue_attrstruct dpseci_tx_queue_attrstruct dpseci_sec_attrstruct dpseci_congestion_notification_cfgenum dpseci_destenum dpseci_congestion_unit
Annotated Snippet
struct dpseci_cfg {
u32 options;
u8 num_tx_queues;
u8 num_rx_queues;
u8 priorities[DPSECI_MAX_QUEUE_NUM];
};
int dpseci_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
int dpseci_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
int dpseci_reset(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
int dpseci_is_enabled(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
int *en);
/**
* struct dpseci_attr - Structure representing DPSECI attributes
* @id: DPSECI object ID
* @num_tx_queues: number of queues towards the SEC
* @num_rx_queues: number of queues back from the SEC
* @options: any combination of the following flags:
* DPSECI_OPT_HAS_CG
*/
struct dpseci_attr {
int id;
u8 num_tx_queues;
u8 num_rx_queues;
u32 options;
};
int dpseci_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
struct dpseci_attr *attr);
/**
* enum dpseci_dest - DPSECI destination types
* @DPSECI_DEST_NONE: Unassigned destination; The queue is set in parked mode
* and does not generate FQDAN notifications; user is expected to dequeue
* from the queue based on polling or other user-defined method
* @DPSECI_DEST_DPIO: The queue is set in schedule mode and generates FQDAN
* notifications to the specified DPIO; user is expected to dequeue from
* the queue only after notification is received
* @DPSECI_DEST_DPCON: The queue is set in schedule mode and does not generate
* FQDAN notifications, but is connected to the specified DPCON object;
* user is expected to dequeue from the DPCON channel
*/
enum dpseci_dest {
DPSECI_DEST_NONE = 0,
DPSECI_DEST_DPIO,
DPSECI_DEST_DPCON
};
/**
* struct dpseci_dest_cfg - Structure representing DPSECI destination parameters
* @dest_type: Destination type
* @dest_id: Either DPIO ID or DPCON ID, depending on the destination type
* @priority: Priority selection within the DPIO or DPCON channel; valid values
* are 0-1 or 0-7, depending on the number of priorities in that channel;
* not relevant for 'DPSECI_DEST_NONE' option
*/
struct dpseci_dest_cfg {
enum dpseci_dest dest_type;
int dest_id;
u8 priority;
};
/**
* DPSECI queue modification options
*/
/**
* Select to modify the user's context associated with the queue
*/
#define DPSECI_QUEUE_OPT_USER_CTX 0x00000001
/**
* Select to modify the queue's destination
*/
#define DPSECI_QUEUE_OPT_DEST 0x00000002
/**
* Select to modify the queue's order preservation
*/
#define DPSECI_QUEUE_OPT_ORDER_PRESERVATION 0x00000004
/**
* struct dpseci_rx_queue_cfg - DPSECI RX queue configuration
* @options: Flags representing the suggested modifications to the queue;
* Use any combination of 'DPSECI_QUEUE_OPT_<X>' flags
* @order_preservation_en: order preservation configuration for the rx queue
Annotation
- Detected declarations: `struct fsl_mc_io`, `struct dpseci_cfg`, `struct dpseci_attr`, `struct dpseci_dest_cfg`, `struct dpseci_rx_queue_cfg`, `struct dpseci_rx_queue_attr`, `struct dpseci_tx_queue_attr`, `struct dpseci_sec_attr`, `struct dpseci_congestion_notification_cfg`, `enum dpseci_dest`.
- Atlas domain: Driver Families / drivers/crypto.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.