drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h
Source file repositories/reference/linux-study-clean/drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h- Extension
.h- Size
- 4860 bytes
- Lines
- 203
- Domain
- Driver Families
- Bucket
- drivers/net
- 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
linux/bitmap.hlinux/mm_types.hlinux/netdevice.hlinux/sched.hlinux/skbuff.hlinux/spinlock.hlinux/types.hlinux/wait.hlinux/workqueue.ht7xx_dpmaif.ht7xx_pci.ht7xx_state_monitor.h
Detected Declarations
struct t7xx_skb_cbstruct dpmaif_cur_rx_skb_infostruct dpmaif_batstruct dpmaif_bat_skbstruct dpmaif_bat_pagestruct dpmaif_bat_requeststruct dpmaif_rx_queuestruct dpmaif_tx_queuestruct dpmaif_isr_parastruct dpmaif_callbacksstruct dpmaif_ctrlenum dpmaif_rdwrenum bat_typeenum dpmaif_stateenum dpmaif_txq_state
Annotated Snippet
struct t7xx_skb_cb {
u8 netif_idx;
u8 txq_number;
u8 rx_pkt_type;
};
#define T7XX_SKB_CB(__skb) ((struct t7xx_skb_cb *)(__skb)->cb)
enum dpmaif_rdwr {
DPMAIF_READ,
DPMAIF_WRITE,
};
/* Structure of DL BAT */
struct dpmaif_cur_rx_skb_info {
bool msg_pit_received;
struct sk_buff *cur_skb;
unsigned int cur_chn_idx;
unsigned int check_sum;
unsigned int pit_dp;
unsigned int pkt_type;
int err_payload;
};
struct dpmaif_bat {
unsigned int p_buffer_addr;
unsigned int buffer_addr_ext;
};
struct dpmaif_bat_skb {
struct sk_buff *skb;
dma_addr_t data_bus_addr;
unsigned int data_len;
};
struct dpmaif_bat_page {
struct page *page;
dma_addr_t data_bus_addr;
unsigned int offset;
unsigned int data_len;
};
enum bat_type {
BAT_TYPE_NORMAL,
BAT_TYPE_FRAG,
};
struct dpmaif_bat_request {
void *bat_base;
dma_addr_t bat_bus_addr;
unsigned int bat_size_cnt;
unsigned int bat_wr_idx;
unsigned int bat_release_rd_idx;
void *bat_skb;
unsigned int pkt_buf_sz;
unsigned long *bat_bitmap;
atomic_t refcnt;
spinlock_t mask_lock; /* Protects BAT mask */
enum bat_type type;
};
struct dpmaif_rx_queue {
unsigned int index;
bool que_started;
unsigned int budget;
void *pit_base;
dma_addr_t pit_bus_addr;
unsigned int pit_size_cnt;
unsigned int pit_rd_idx;
unsigned int pit_wr_idx;
unsigned int pit_release_rd_idx;
struct dpmaif_bat_request *bat_req;
struct dpmaif_bat_request *bat_frag;
atomic_t rx_processing;
struct dpmaif_ctrl *dpmaif_ctrl;
unsigned int expect_pit_seq;
unsigned int pit_remain_release_cnt;
struct dpmaif_cur_rx_skb_info rx_data_info;
struct napi_struct napi;
bool sleep_lock_pending;
};
struct dpmaif_tx_queue {
unsigned int index;
bool que_started;
Annotation
- Immediate include surface: `linux/bitmap.h`, `linux/mm_types.h`, `linux/netdevice.h`, `linux/sched.h`, `linux/skbuff.h`, `linux/spinlock.h`, `linux/types.h`, `linux/wait.h`.
- Detected declarations: `struct t7xx_skb_cb`, `struct dpmaif_cur_rx_skb_info`, `struct dpmaif_bat`, `struct dpmaif_bat_skb`, `struct dpmaif_bat_page`, `struct dpmaif_bat_request`, `struct dpmaif_rx_queue`, `struct dpmaif_tx_queue`, `struct dpmaif_isr_para`, `struct dpmaif_callbacks`.
- Atlas domain: Driver Families / drivers/net.
- 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.