#include <linux/module.h>
#include <linux/usb.h>
#include "debug.h"
#include "core.h"
#include "bmi.h"
#include "hif.h"
#include "htc.h"
#include "usb.h"
static void ath10k_usb_post_recv_transfers(struct ath10k *ar,
struct ath10k_usb_pipe *recv_pipe);
static inline enum ath10k_htc_ep_id
eid_from_htc_hdr(struct ath10k_htc_hdr *htc_hdr)
{ … }
static inline bool is_trailer_only_msg(struct ath10k_htc_hdr *htc_hdr)
{ … }
static struct ath10k_urb_context *
ath10k_usb_alloc_urb_from_pipe(struct ath10k_usb_pipe *pipe)
{ … }
static void ath10k_usb_free_urb_to_pipe(struct ath10k_usb_pipe *pipe,
struct ath10k_urb_context *urb_context)
{ … }
static void ath10k_usb_cleanup_recv_urb(struct ath10k_urb_context *urb_context)
{ … }
static void ath10k_usb_free_pipe_resources(struct ath10k *ar,
struct ath10k_usb_pipe *pipe)
{ … }
static void ath10k_usb_cleanup_pipe_resources(struct ath10k *ar)
{ … }
static void ath10k_usb_recv_complete(struct urb *urb)
{ … }
static void ath10k_usb_transmit_complete(struct urb *urb)
{ … }
static void ath10k_usb_post_recv_transfers(struct ath10k *ar,
struct ath10k_usb_pipe *recv_pipe)
{ … }
static void ath10k_usb_flush_all(struct ath10k *ar)
{ … }
static void ath10k_usb_start_recv_pipes(struct ath10k *ar)
{ … }
static void ath10k_usb_tx_complete(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_usb_rx_complete(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_usb_io_comp_work(struct work_struct *work)
{ … }
#define ATH10K_USB_MAX_DIAG_CMD …
#define ATH10K_USB_MAX_DIAG_RESP …
static void ath10k_usb_destroy(struct ath10k *ar)
{ … }
static int ath10k_usb_hif_start(struct ath10k *ar)
{ … }
static int ath10k_usb_hif_tx_sg(struct ath10k *ar, u8 pipe_id,
struct ath10k_hif_sg_item *items, int n_items)
{ … }
static void ath10k_usb_hif_stop(struct ath10k *ar)
{ … }
static u16 ath10k_usb_hif_get_free_queue_number(struct ath10k *ar, u8 pipe_id)
{ … }
static int ath10k_usb_submit_ctrl_out(struct ath10k *ar,
u8 req, u16 value, u16 index, void *data,
u32 size)
{ … }
static int ath10k_usb_submit_ctrl_in(struct ath10k *ar,
u8 req, u16 value, u16 index, void *data,
u32 size)
{ … }
static int ath10k_usb_ctrl_msg_exchange(struct ath10k *ar,
u8 req_val, u8 *req_buf, u32 req_len,
u8 resp_val, u8 *resp_buf,
u32 *resp_len)
{ … }
static int ath10k_usb_hif_diag_read(struct ath10k *ar, u32 address, void *buf,
size_t buf_len)
{ … }
static int ath10k_usb_hif_diag_write(struct ath10k *ar, u32 address,
const void *data, int nbytes)
{ … }
static int ath10k_usb_bmi_exchange_msg(struct ath10k *ar,
void *req, u32 req_len,
void *resp, u32 *resp_len)
{ … }
static void ath10k_usb_hif_get_default_pipe(struct ath10k *ar,
u8 *ul_pipe, u8 *dl_pipe)
{ … }
static int ath10k_usb_hif_map_service_to_pipe(struct ath10k *ar, u16 svc_id,
u8 *ul_pipe, u8 *dl_pipe)
{ … }
static int ath10k_usb_hif_power_up(struct ath10k *ar,
enum ath10k_firmware_mode fw_mode)
{ … }
static void ath10k_usb_hif_power_down(struct ath10k *ar)
{ … }
#ifdef CONFIG_PM
static int ath10k_usb_hif_suspend(struct ath10k *ar)
{ … }
static int ath10k_usb_hif_resume(struct ath10k *ar)
{ … }
#endif
static const struct ath10k_hif_ops ath10k_usb_hif_ops = …;
static u8 ath10k_usb_get_logical_pipe_num(u8 ep_address, int *urb_count)
{ … }
static int ath10k_usb_alloc_pipe_resources(struct ath10k *ar,
struct ath10k_usb_pipe *pipe,
int urb_cnt)
{ … }
static int ath10k_usb_setup_pipe_resources(struct ath10k *ar,
struct usb_interface *interface)
{ … }
static int ath10k_usb_create(struct ath10k *ar,
struct usb_interface *interface)
{ … }
static int ath10k_usb_napi_poll(struct napi_struct *ctx, int budget)
{ … }
static int ath10k_usb_probe(struct usb_interface *interface,
const struct usb_device_id *id)
{ … }
static void ath10k_usb_remove(struct usb_interface *interface)
{ … }
#ifdef CONFIG_PM
static int ath10k_usb_pm_suspend(struct usb_interface *interface,
pm_message_t message)
{ … }
static int ath10k_usb_pm_resume(struct usb_interface *interface)
{ … }
#else
#define ath10k_usb_pm_suspend …
#define ath10k_usb_pm_resume …
#endif
static struct usb_device_id ath10k_usb_ids[] = …;
MODULE_DEVICE_TABLE(usb, ath10k_usb_ids);
static struct usb_driver ath10k_usb_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;