drivers/net/wireless/marvell/libertas_tf/libertas_tf.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/marvell/libertas_tf/libertas_tf.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/marvell/libertas_tf/libertas_tf.h
Extension
.h
Size
12476 bytes
Lines
518
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 lbtf_offset_value {
	u32 offset;
	u32 value;
};

struct channel_range {
	u8 regdomain;
	u8 start;
	u8 end; /* exclusive (channel must be less than end) */
};

struct if_usb_card;

struct lbtf_ops {
	/** Hardware access */
	int (*hw_host_to_card)(struct lbtf_private *priv, u8 type,
			       u8 *payload, u16 nb);
	int (*hw_prog_firmware)(struct lbtf_private *priv);
	int (*hw_reset_device)(struct lbtf_private *priv);
};

/** Private structure for the MV device */
struct lbtf_private {
	void *card;
	struct ieee80211_hw *hw;
	const struct lbtf_ops *ops;

	/* Command response buffer */
	u8 cmd_resp_buff[LBS_UPLD_SIZE];
	/* Download sent:
	   bit0 1/0=data_sent/data_tx_done,
	   bit1 1/0=cmd_sent/cmd_tx_done,
	   all other bits reserved 0 */
	struct ieee80211_vif *vif;

	struct work_struct cmd_work;
	struct work_struct tx_work;

	/** Wlan adapter data structure*/
	/** STATUS variables */
	u32 fwrelease;
	u32 fwcapinfo;
	/* protected with big lock */

	struct mutex lock;

	/** command-related variables */
	u16 seqnum;
	/* protected by big lock */

	struct cmd_ctrl_node *cmd_array;
	/** Current command */
	struct cmd_ctrl_node *cur_cmd;
	/** command Queues */
	/** Free command buffers */
	struct list_head cmdfreeq;
	/** Pending command buffers */
	struct list_head cmdpendingq;

	/** spin locks */
	spinlock_t driver_lock;

	/** Timers */
	struct timer_list command_timer;
	int nr_retries;
	int cmd_timed_out;

	u8 cmd_response_rxed;

	/** capability Info used in Association, start, join */
	u16 capability;

	/** MAC address information */
	u8 current_addr[ETH_ALEN];
	u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN];
	u32 nr_of_multicastmacaddr;
	int cur_freq;

	struct sk_buff *skb_to_tx;
	struct sk_buff *tx_skb;

	/** NIC Operation characteristics */
	u16 mac_control;
	u16 regioncode;
	struct channel_range range;

	u8 radioon;
	u32 preamble;

	struct ieee80211_channel channels[14];

Annotation

Implementation Notes