drivers/soc/fsl/dpio/qbman-portal.h
Source file repositories/reference/linux-study-clean/drivers/soc/fsl/dpio/qbman-portal.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/soc/fsl/dpio/qbman-portal.h- Extension
.h- Size
- 18793 bytes
- Lines
- 665
- Domain
- Driver Families
- Bucket
- drivers/soc
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
soc/fsl/dpaa2-fd.h
Detected Declarations
struct dpaa2_dqstruct qbman_swpstruct qbman_swp_descstruct qbman_pull_descstruct qbman_eq_descstruct qbman_eq_desc_with_fdstruct qbman_release_descstruct qbman_swpstruct qbman_fq_query_np_rsltstruct qbman_bp_query_rsltenum qbman_pull_type_efunction qbman_swp_enqueuefunction qbman_swp_enqueue_multiplefunction qbman_swp_enqueue_multiple_descfunction qbman_result_is_DQfunction qbman_result_is_SCNfunction qbman_result_is_FQDANfunction qbman_result_is_CDANfunction qbman_result_is_CSCNfunction qbman_result_is_BPSCNfunction qbman_result_is_CGCUfunction qbman_result_is_FQRNfunction qbman_result_is_FQRNIfunction qbman_result_is_FQPNfunction qbman_result_SCN_statefunction qbman_result_SCN_ridfunction qbman_result_SCN_ctxfunction qbman_swp_fq_schedulefunction qbman_swp_fq_forcefunction qbman_swp_fq_xonfunction qbman_swp_fq_xofffunction qbman_swp_CDAN_set_contextfunction qbman_swp_CDAN_enablefunction qbman_swp_CDAN_disablefunction qbman_swp_CDAN_set_context_enablefunction qbman_swp_releasefunction qbman_swp_pullfunction qbman_swp_dqrr_next
Annotated Snippet
struct qbman_swp_desc {
void *cena_bar; /* Cache-enabled portal base address */
void __iomem *cinh_bar; /* Cache-inhibited portal base address */
u32 qman_version;
u32 qman_clk;
u32 qman_256_cycles_per_ns;
};
#define QBMAN_SWP_INTERRUPT_EQRI 0x01
#define QBMAN_SWP_INTERRUPT_EQDI 0x02
#define QBMAN_SWP_INTERRUPT_DQRI 0x04
#define QBMAN_SWP_INTERRUPT_RCRI 0x08
#define QBMAN_SWP_INTERRUPT_RCDI 0x10
#define QBMAN_SWP_INTERRUPT_VDCI 0x20
/* the structure for pull dequeue descriptor */
struct qbman_pull_desc {
u8 verb;
u8 numf;
u8 tok;
u8 reserved;
__le32 dq_src;
__le64 rsp_addr;
u64 rsp_addr_virt;
u8 padding[40];
};
enum qbman_pull_type_e {
/* dequeue with priority precedence, respect intra-class scheduling */
qbman_pull_type_prio = 1,
/* dequeue with active FQ precedence, respect ICS */
qbman_pull_type_active,
/* dequeue with active FQ precedence, no ICS */
qbman_pull_type_active_noics
};
/* Definitions for parsing dequeue entries */
#define QBMAN_RESULT_MASK 0x7f
#define QBMAN_RESULT_DQ 0x60
#define QBMAN_RESULT_FQRN 0x21
#define QBMAN_RESULT_FQRNI 0x22
#define QBMAN_RESULT_FQPN 0x24
#define QBMAN_RESULT_FQDAN 0x25
#define QBMAN_RESULT_CDAN 0x26
#define QBMAN_RESULT_CSCN_MEM 0x27
#define QBMAN_RESULT_CGCU 0x28
#define QBMAN_RESULT_BPSCN 0x29
#define QBMAN_RESULT_CSCN_WQ 0x2a
/* QBMan FQ management command codes */
#define QBMAN_FQ_SCHEDULE 0x48
#define QBMAN_FQ_FORCE 0x49
#define QBMAN_FQ_XON 0x4d
#define QBMAN_FQ_XOFF 0x4e
/* structure of enqueue descriptor */
struct qbman_eq_desc {
u8 verb;
u8 dca;
__le16 seqnum;
__le16 orpid;
__le16 reserved1;
__le32 tgtid;
__le32 tag;
__le16 qdbin;
u8 qpri;
u8 reserved[3];
u8 wae;
u8 rspid;
__le64 rsp_addr;
};
struct qbman_eq_desc_with_fd {
struct qbman_eq_desc desc;
u8 fd[32];
};
/* buffer release descriptor */
struct qbman_release_desc {
u8 verb;
u8 reserved;
__le16 bpid;
__le32 reserved2;
__le64 buf[7];
};
/* Management command result codes */
#define QBMAN_MC_RSLT_OK 0xf0
#define CODE_CDAN_WE_EN 0x1
Annotation
- Immediate include surface: `soc/fsl/dpaa2-fd.h`.
- Detected declarations: `struct dpaa2_dq`, `struct qbman_swp`, `struct qbman_swp_desc`, `struct qbman_pull_desc`, `struct qbman_eq_desc`, `struct qbman_eq_desc_with_fd`, `struct qbman_release_desc`, `struct qbman_swp`, `struct qbman_fq_query_np_rslt`, `struct qbman_bp_query_rslt`.
- Atlas domain: Driver Families / drivers/soc.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.