#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/skbuff.h>
#include <linux/usb.h>
#include <linux/workqueue.h>
#include <linux/proc_fs.h>
#include <linux/fs.h>
#include <linux/string.h>
#include <linux/module.h>
#include <net/mac80211.h>
#include <asm/unaligned.h>
#include <linux/sysfs.h>
#include "mac.h"
#include "usb.h"
#include "chip.h"
static const struct usb_device_id usb_ids[] = …;
void plfxlc_send_packet_from_data_queue(struct plfxlc_usb *usb)
{ … }
static void handle_rx_packet(struct plfxlc_usb *usb, const u8 *buffer,
unsigned int length)
{ … }
static void rx_urb_complete(struct urb *urb)
{ … }
static struct urb *alloc_rx_urb(struct plfxlc_usb *usb)
{ … }
static void free_rx_urb(struct urb *urb)
{ … }
static int __lf_x_usb_enable_rx(struct plfxlc_usb *usb)
{ … }
int plfxlc_usb_enable_rx(struct plfxlc_usb *usb)
{ … }
static void __lf_x_usb_disable_rx(struct plfxlc_usb *usb)
{ … }
void plfxlc_usb_disable_rx(struct plfxlc_usb *usb)
{ … }
void plfxlc_usb_disable_tx(struct plfxlc_usb *usb)
{ … }
void plfxlc_usb_enable_tx(struct plfxlc_usb *usb)
{ … }
void plfxlc_tx_urb_complete(struct urb *urb)
{ … }
static inline void init_usb_rx(struct plfxlc_usb *usb)
{ … }
static inline void init_usb_tx(struct plfxlc_usb *usb)
{ … }
void plfxlc_usb_init(struct plfxlc_usb *usb, struct ieee80211_hw *hw,
struct usb_interface *intf)
{ … }
void plfxlc_usb_release(struct plfxlc_usb *usb)
{ … }
const char *plfxlc_speed(enum usb_device_speed speed)
{ … }
int plfxlc_usb_init_hw(struct plfxlc_usb *usb)
{ … }
static void get_usb_req(struct usb_device *udev, void *buffer,
u32 buffer_len, enum plf_usb_req_enum usb_req_id,
struct plf_usb_req *usb_req)
{ … }
int plfxlc_usb_wreq_async(struct plfxlc_usb *usb, const u8 *buffer,
int buffer_len, enum plf_usb_req_enum usb_req_id,
usb_complete_t complete_fn,
void *context)
{ … }
int plfxlc_usb_wreq(struct usb_interface *ez_usb, void *buffer, int buffer_len,
enum plf_usb_req_enum usb_req_id)
{ … }
static void slif_data_plane_sap_timer_callb(struct timer_list *t)
{ … }
static void sta_queue_cleanup_timer_callb(struct timer_list *t)
{ … }
static int probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void disconnect(struct usb_interface *intf)
{ … }
static void plfxlc_usb_resume(struct plfxlc_usb *usb)
{ … }
static void plfxlc_usb_stop(struct plfxlc_usb *usb)
{ … }
static int pre_reset(struct usb_interface *intf)
{ … }
static int post_reset(struct usb_interface *intf)
{ … }
#ifdef CONFIG_PM
static struct plfxlc_usb *get_plfxlc_usb(struct usb_interface *intf)
{ … }
static int suspend(struct usb_interface *interface,
pm_message_t message)
{ … }
static int resume(struct usb_interface *interface)
{ … }
#endif
static struct usb_driver driver = …;
static int __init usb_init(void)
{ … }
static void __exit usb_exit(void)
{ … }
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_VERSION(…) …;
MODULE_FIRMWARE(…) …;
MODULE_DEVICE_TABLE(usb, usb_ids);
module_init(…) …;
module_exit(usb_exit);