drivers/net/wireless/ath/ath10k/wmi-ops.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath10k/wmi-ops.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/ath/ath10k/wmi-ops.h
Extension
.h
Size
44566 bytes
Lines
1711
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct wmi_ops {
	void (*rx)(struct ath10k *ar, struct sk_buff *skb);
	void (*map_svc)(const __le32 *in, unsigned long *out, size_t len);
	void (*map_svc_ext)(const __le32 *in, unsigned long *out, size_t len);

	int (*pull_scan)(struct ath10k *ar, struct sk_buff *skb,
			 struct wmi_scan_ev_arg *arg);
	int (*pull_mgmt_rx)(struct ath10k *ar, struct sk_buff *skb,
			    struct wmi_mgmt_rx_ev_arg *arg);
	int (*pull_mgmt_tx_compl)(struct ath10k *ar, struct sk_buff *skb,
				  struct wmi_tlv_mgmt_tx_compl_ev_arg *arg);
	int (*pull_mgmt_tx_bundle_compl)(
				struct ath10k *ar, struct sk_buff *skb,
				struct wmi_tlv_mgmt_tx_bundle_compl_ev_arg *arg);
	int (*pull_ch_info)(struct ath10k *ar, struct sk_buff *skb,
			    struct wmi_ch_info_ev_arg *arg);
	int (*pull_vdev_start)(struct ath10k *ar, struct sk_buff *skb,
			       struct wmi_vdev_start_ev_arg *arg);
	int (*pull_peer_kick)(struct ath10k *ar, struct sk_buff *skb,
			      struct wmi_peer_kick_ev_arg *arg);
	int (*pull_swba)(struct ath10k *ar, struct sk_buff *skb,
			 struct wmi_swba_ev_arg *arg);
	int (*pull_phyerr_hdr)(struct ath10k *ar, struct sk_buff *skb,
			       struct wmi_phyerr_hdr_arg *arg);
	int (*pull_phyerr)(struct ath10k *ar, const void *phyerr_buf,
			   int left_len, struct wmi_phyerr_ev_arg *arg);
	int (*pull_svc_rdy)(struct ath10k *ar, struct sk_buff *skb,
			    struct wmi_svc_rdy_ev_arg *arg);
	int (*pull_rdy)(struct ath10k *ar, struct sk_buff *skb,
			struct wmi_rdy_ev_arg *arg);
	int (*pull_fw_stats)(struct ath10k *ar, struct sk_buff *skb,
			     struct ath10k_fw_stats *stats);
	int (*pull_roam_ev)(struct ath10k *ar, struct sk_buff *skb,
			    struct wmi_roam_ev_arg *arg);
	int (*pull_wow_event)(struct ath10k *ar, struct sk_buff *skb,
			      struct wmi_wow_ev_arg *arg);
	int (*pull_echo_ev)(struct ath10k *ar, struct sk_buff *skb,
			    struct wmi_echo_ev_arg *arg);
	int (*pull_dfs_status_ev)(struct ath10k *ar, struct sk_buff *skb,
				  struct wmi_dfs_status_ev_arg *arg);
	int (*pull_svc_avail)(struct ath10k *ar, struct sk_buff *skb,
			      struct wmi_svc_avail_ev_arg *arg);

	enum wmi_txbf_conf (*get_txbf_conf_scheme)(struct ath10k *ar);

	struct sk_buff *(*gen_pdev_suspend)(struct ath10k *ar, u32 suspend_opt);
	struct sk_buff *(*gen_pdev_resume)(struct ath10k *ar);
	struct sk_buff *(*gen_pdev_set_base_macaddr)(struct ath10k *ar,
						     const u8 macaddr[ETH_ALEN]);
	struct sk_buff *(*gen_pdev_set_rd)(struct ath10k *ar, u16 rd, u16 rd2g,
					   u16 rd5g, u16 ctl2g, u16 ctl5g,
					   enum wmi_dfs_region dfs_reg);
	struct sk_buff *(*gen_pdev_set_param)(struct ath10k *ar, u32 id,
					      u32 value);
	struct sk_buff *(*gen_init)(struct ath10k *ar);
	struct sk_buff *(*gen_start_scan)(struct ath10k *ar,
					  const struct wmi_start_scan_arg *arg);
	struct sk_buff *(*gen_stop_scan)(struct ath10k *ar,
					 const struct wmi_stop_scan_arg *arg);
	struct sk_buff *(*gen_vdev_create)(struct ath10k *ar, u32 vdev_id,
					   enum wmi_vdev_type type,
					   enum wmi_vdev_subtype subtype,
					   const u8 macaddr[ETH_ALEN]);
	struct sk_buff *(*gen_vdev_delete)(struct ath10k *ar, u32 vdev_id);
	struct sk_buff *(*gen_vdev_start)(struct ath10k *ar,
					  const struct wmi_vdev_start_request_arg *arg,
					  bool restart);
	struct sk_buff *(*gen_vdev_stop)(struct ath10k *ar, u32 vdev_id);
	struct sk_buff *(*gen_vdev_up)(struct ath10k *ar, u32 vdev_id, u32 aid,
				       const u8 *bssid);
	struct sk_buff *(*gen_vdev_down)(struct ath10k *ar, u32 vdev_id);
	struct sk_buff *(*gen_vdev_set_param)(struct ath10k *ar, u32 vdev_id,
					      u32 param_id, u32 param_value);
	struct sk_buff *(*gen_vdev_install_key)(struct ath10k *ar,
						const struct wmi_vdev_install_key_arg *arg);
	struct sk_buff *(*gen_vdev_spectral_conf)(struct ath10k *ar,
						  const struct wmi_vdev_spectral_conf_arg *arg);
	struct sk_buff *(*gen_vdev_spectral_enable)(struct ath10k *ar, u32 vdev_id,
						    u32 trigger, u32 enable);
	struct sk_buff *(*gen_vdev_wmm_conf)(struct ath10k *ar, u32 vdev_id,
					     const struct wmi_wmm_params_all_arg *arg);
	struct sk_buff *(*gen_peer_create)(struct ath10k *ar, u32 vdev_id,
					   const u8 peer_addr[ETH_ALEN],
					   enum wmi_peer_type peer_type);
	struct sk_buff *(*gen_peer_delete)(struct ath10k *ar, u32 vdev_id,
					   const u8 peer_addr[ETH_ALEN]);
	struct sk_buff *(*gen_peer_flush)(struct ath10k *ar, u32 vdev_id,
					  const u8 peer_addr[ETH_ALEN],
					  u32 tid_bitmap);
	struct sk_buff *(*gen_peer_set_param)(struct ath10k *ar, u32 vdev_id,

Annotation

Implementation Notes