drivers/net/wireless/ti/wlcore/hw_ops.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ti/wlcore/hw_ops.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ti/wlcore/hw_ops.h- Extension
.h- Size
- 6670 bytes
- Lines
- 319
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
wlcore.hrx.h
Detected Declarations
function Copyrightfunction wlcore_hw_set_tx_desc_blocksfunction wlcore_hw_set_tx_desc_data_lenfunction wlcore_hw_get_rx_buf_alignfunction wlcore_hw_prepare_readfunction wlcore_hw_get_rx_packet_lenfunction wlcore_hw_tx_delayed_complfunction wlcore_hw_tx_immediate_complfunction wlcore_hw_init_viffunction wlcore_hw_convert_fw_statusfunction wlcore_hw_sta_get_ap_rate_maskfunction wlcore_identify_fwfunction wlcore_hw_set_tx_desc_csumfunction wlcore_hw_set_rx_csumfunction wlcore_hw_ap_get_mimo_wide_rate_maskfunction wlcore_debugfs_initfunction wlcore_handle_static_datafunction wlcore_hw_get_spare_blocksfunction wlcore_hw_set_keyfunction wlcore_hw_pre_pkt_sendfunction wlcore_hw_sta_rc_updatefunction wlcore_hw_interrupt_notifyfunction wlcore_hw_rx_ba_filterfunction wlcore_hw_ap_sleepfunction wlcore_hw_set_peer_capfunction wlcore_hw_convert_hwaddrfunction wlcore_hw_lnk_high_priofunction wlcore_hw_lnk_low_priofunction wlcore_smart_config_startfunction wlcore_smart_config_stopfunction wlcore_smart_config_set_group_keyfunction wlcore_hw_set_cacfunction wlcore_hw_dfs_master_restart
Annotated Snippet
#ifndef __WLCORE_HW_OPS_H__
#define __WLCORE_HW_OPS_H__
#include "wlcore.h"
#include "rx.h"
static inline u32
wlcore_hw_calc_tx_blocks(struct wl1271 *wl, u32 len, u32 spare_blks)
{
if (!wl->ops->calc_tx_blocks)
BUG_ON(1);
return wl->ops->calc_tx_blocks(wl, len, spare_blks);
}
static inline void
wlcore_hw_set_tx_desc_blocks(struct wl1271 *wl, struct wl1271_tx_hw_descr *desc,
u32 blks, u32 spare_blks)
{
if (!wl->ops->set_tx_desc_blocks)
BUG_ON(1);
return wl->ops->set_tx_desc_blocks(wl, desc, blks, spare_blks);
}
static inline void
wlcore_hw_set_tx_desc_data_len(struct wl1271 *wl,
struct wl1271_tx_hw_descr *desc,
struct sk_buff *skb)
{
if (!wl->ops->set_tx_desc_data_len)
BUG_ON(1);
wl->ops->set_tx_desc_data_len(wl, desc, skb);
}
static inline enum wl_rx_buf_align
wlcore_hw_get_rx_buf_align(struct wl1271 *wl, u32 rx_desc)
{
if (!wl->ops->get_rx_buf_align)
BUG_ON(1);
return wl->ops->get_rx_buf_align(wl, rx_desc);
}
static inline int
wlcore_hw_prepare_read(struct wl1271 *wl, u32 rx_desc, u32 len)
{
if (wl->ops->prepare_read)
return wl->ops->prepare_read(wl, rx_desc, len);
return 0;
}
static inline u32
wlcore_hw_get_rx_packet_len(struct wl1271 *wl, void *rx_data, u32 data_len)
{
if (!wl->ops->get_rx_packet_len)
BUG_ON(1);
return wl->ops->get_rx_packet_len(wl, rx_data, data_len);
}
static inline int wlcore_hw_tx_delayed_compl(struct wl1271 *wl)
{
if (wl->ops->tx_delayed_compl)
return wl->ops->tx_delayed_compl(wl);
return 0;
}
static inline void wlcore_hw_tx_immediate_compl(struct wl1271 *wl)
{
if (wl->ops->tx_immediate_compl)
wl->ops->tx_immediate_compl(wl);
}
static inline int
wlcore_hw_init_vif(struct wl1271 *wl, struct wl12xx_vif *wlvif)
{
if (wl->ops->init_vif)
return wl->ops->init_vif(wl, wlvif);
return 0;
}
static inline void
wlcore_hw_convert_fw_status(struct wl1271 *wl, void *raw_fw_status,
struct wl_fw_status *fw_status)
Annotation
- Immediate include surface: `wlcore.h`, `rx.h`.
- Detected declarations: `function Copyright`, `function wlcore_hw_set_tx_desc_blocks`, `function wlcore_hw_set_tx_desc_data_len`, `function wlcore_hw_get_rx_buf_align`, `function wlcore_hw_prepare_read`, `function wlcore_hw_get_rx_packet_len`, `function wlcore_hw_tx_delayed_compl`, `function wlcore_hw_tx_immediate_compl`, `function wlcore_hw_init_vif`, `function wlcore_hw_convert_fw_status`.
- Atlas domain: Driver Families / drivers/net.
- 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.