#include <linux/module.h>
#include "mt76.h"
#include "usb_trace.h"
#include "dma.h"
#define MT_VEND_REQ_MAX_RETRY …
#define MT_VEND_REQ_TOUT_MS …
static bool disable_usb_sg;
module_param_named(disable_usb_sg, disable_usb_sg, bool, 0644);
MODULE_PARM_DESC(…) …;
int __mt76u_vendor_request(struct mt76_dev *dev, u8 req, u8 req_type,
u16 val, u16 offset, void *buf, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76u_vendor_request(struct mt76_dev *dev, u8 req,
u8 req_type, u16 val, u16 offset,
void *buf, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 ___mt76u_rr(struct mt76_dev *dev, u8 req, u8 req_type, u32 addr)
{ … }
EXPORT_SYMBOL_GPL(…);
static u32 __mt76u_rr(struct mt76_dev *dev, u32 addr)
{ … }
static u32 mt76u_rr(struct mt76_dev *dev, u32 addr)
{ … }
void ___mt76u_wr(struct mt76_dev *dev, u8 req, u8 req_type,
u32 addr, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
static void __mt76u_wr(struct mt76_dev *dev, u32 addr, u32 val)
{ … }
static void mt76u_wr(struct mt76_dev *dev, u32 addr, u32 val)
{ … }
static u32 mt76u_rmw(struct mt76_dev *dev, u32 addr,
u32 mask, u32 val)
{ … }
static void mt76u_copy(struct mt76_dev *dev, u32 offset,
const void *data, int len)
{ … }
void mt76u_read_copy(struct mt76_dev *dev, u32 offset,
void *data, int len)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76u_single_wr(struct mt76_dev *dev, const u8 req,
const u16 offset, const u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
static int
mt76u_req_wr_rp(struct mt76_dev *dev, u32 base,
const struct mt76_reg_pair *data, int len)
{ … }
static int
mt76u_wr_rp(struct mt76_dev *dev, u32 base,
const struct mt76_reg_pair *data, int n)
{ … }
static int
mt76u_req_rd_rp(struct mt76_dev *dev, u32 base, struct mt76_reg_pair *data,
int len)
{ … }
static int
mt76u_rd_rp(struct mt76_dev *dev, u32 base,
struct mt76_reg_pair *data, int n)
{ … }
static bool mt76u_check_sg(struct mt76_dev *dev)
{ … }
static int
mt76u_set_endpoints(struct usb_interface *intf,
struct mt76_usb *usb)
{ … }
static int
mt76u_fill_rx_sg(struct mt76_dev *dev, struct mt76_queue *q, struct urb *urb,
int nsgs)
{ … }
static int
mt76u_refill_rx(struct mt76_dev *dev, struct mt76_queue *q,
struct urb *urb, int nsgs)
{ … }
static int
mt76u_urb_alloc(struct mt76_dev *dev, struct mt76_queue_entry *e,
int sg_max_size)
{ … }
static int
mt76u_rx_urb_alloc(struct mt76_dev *dev, struct mt76_queue *q,
struct mt76_queue_entry *e)
{ … }
static void mt76u_urb_free(struct urb *urb)
{ … }
static void
mt76u_fill_bulk_urb(struct mt76_dev *dev, int dir, int index,
struct urb *urb, usb_complete_t complete_fn,
void *context)
{ … }
static struct urb *
mt76u_get_next_rx_entry(struct mt76_queue *q)
{ … }
static int
mt76u_get_rx_entry_len(struct mt76_dev *dev, u8 *data,
u32 data_len)
{ … }
static struct sk_buff *
mt76u_build_rx_skb(struct mt76_dev *dev, void *data,
int len, int buf_size)
{ … }
static int
mt76u_process_rx_entry(struct mt76_dev *dev, struct urb *urb,
int buf_size)
{ … }
static void mt76u_complete_rx(struct urb *urb)
{ … }
static int
mt76u_submit_rx_buf(struct mt76_dev *dev, enum mt76_rxq_id qid,
struct urb *urb)
{ … }
static void
mt76u_process_rx_queue(struct mt76_dev *dev, struct mt76_queue *q)
{ … }
static void mt76u_rx_worker(struct mt76_worker *w)
{ … }
static int
mt76u_submit_rx_buffers(struct mt76_dev *dev, enum mt76_rxq_id qid)
{ … }
static int
mt76u_alloc_rx_queue(struct mt76_dev *dev, enum mt76_rxq_id qid)
{ … }
int mt76u_alloc_mcu_queue(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static void
mt76u_free_rx_queue(struct mt76_dev *dev, struct mt76_queue *q)
{ … }
static void mt76u_free_rx(struct mt76_dev *dev)
{ … }
void mt76u_stop_rx(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76u_resume_rx(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static void mt76u_status_worker(struct mt76_worker *w)
{ … }
static void mt76u_tx_status_data(struct work_struct *work)
{ … }
static void mt76u_complete_tx(struct urb *urb)
{ … }
static int
mt76u_tx_setup_buffers(struct mt76_dev *dev, struct sk_buff *skb,
struct urb *urb)
{ … }
static int
mt76u_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
enum mt76_txq_id qid, struct sk_buff *skb,
struct mt76_wcid *wcid, struct ieee80211_sta *sta)
{ … }
static void mt76u_tx_kick(struct mt76_dev *dev, struct mt76_queue *q)
{ … }
static void
mt76u_ac_to_hwq(struct mt76_dev *dev, struct mt76_queue *q, u8 qid)
{ … }
static int mt76u_alloc_tx(struct mt76_dev *dev)
{ … }
static void mt76u_free_tx(struct mt76_dev *dev)
{ … }
void mt76u_stop_tx(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void mt76u_queues_deinit(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76u_alloc_queues(struct mt76_dev *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static const struct mt76_queue_ops usb_queue_ops = …;
int __mt76u_init(struct mt76_dev *dev, struct usb_interface *intf,
struct mt76_bus_ops *ops)
{ … }
EXPORT_SYMBOL_GPL(…);
int mt76u_init(struct mt76_dev *dev, struct usb_interface *intf)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;