#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/timer.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/firmware.h>
#include <linux/mutex.h>
#include <asm/unaligned.h>
#include "usbatm.h"
#define DRIVER_AUTHOR …
#define DRIVER_DESC …
static const char cxacru_driver_name[] = …;
#define CXACRU_EP_CMD …
#define CXACRU_EP_DATA …
#define CMD_PACKET_SIZE …
#define CMD_MAX_CONFIG …
#define PLLFCLK_ADDR …
#define PLLBCLK_ADDR …
#define SDRAMEN_ADDR …
#define FW_ADDR …
#define BR_ADDR …
#define SIG_ADDR …
#define BR_STACK_ADDR …
#define SDRAM_ENA …
#define CMD_TIMEOUT …
#define POLL_INTERVAL …
enum cxacru_fw_request { … };
enum cxacru_cm_request { … };
enum cxacru_cm_flash { … };
enum cxacru_cm_status { … };
enum cxacru_info_idx { … };
enum cxacru_poll_state { … };
struct cxacru_modem_type { … };
struct cxacru_data { … };
static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,
u8 *wdata, int wsize, u8 *rdata, int rsize);
static void cxacru_poll_status(struct work_struct *work);
#define CXACRU__ATTR_INIT(_name) …
#define CXACRU_CMD_INIT(_name) …
#define CXACRU_SET_INIT(_name) …
#define CXACRU_ATTR_INIT(_value, _type, _name) …
#define CXACRU_ATTR_CREATE(_v, _t, _name) …
#define CXACRU_CMD_CREATE(_name) …
#define CXACRU_SET_CREATE(_name) …
#define CXACRU__ATTR_CREATE(_name) …
#define CXACRU_ATTR_REMOVE(_v, _t, _name) …
#define CXACRU_CMD_REMOVE(_name) …
#define CXACRU_SET_REMOVE(_name) …
#define CXACRU__ATTR_REMOVE(_name) …
static ssize_t cxacru_sysfs_showattr_u32(u32 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_s8(s8 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_dB(s16 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_bool(u32 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_LINK(u32 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_LINE(u32 value, char *buf)
{ … }
static ssize_t cxacru_sysfs_showattr_MODU(u32 value, char *buf)
{ … }
static ssize_t mac_address_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t adsl_state_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t adsl_state_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
static ssize_t adsl_config_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
#define CXACRU_ALL_FILES(_action) …
CXACRU_ALL_FILES(INIT);
static struct attribute *cxacru_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static void cxacru_blocking_completion(struct urb *urb)
{ … }
struct cxacru_timer { … };
static void cxacru_timeout_kill(struct timer_list *t)
{ … }
static int cxacru_start_wait_urb(struct urb *urb, struct completion *done,
int *actual_length)
{ … }
static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,
u8 *wdata, int wsize, u8 *rdata, int rsize)
{ … }
static int cxacru_cm_get_array(struct cxacru_data *instance, enum cxacru_cm_request cm,
u32 *data, int size)
{ … }
static int cxacru_card_status(struct cxacru_data *instance)
{ … }
static int cxacru_atm_start(struct usbatm_data *usbatm_instance,
struct atm_dev *atm_dev)
{ … }
static void cxacru_poll_status(struct work_struct *work)
{ … }
static int cxacru_fw(struct usb_device *usb_dev, enum cxacru_fw_request fw,
u8 code1, u8 code2, u32 addr, const u8 *data, int size)
{ … }
static void cxacru_upload_firmware(struct cxacru_data *instance,
const struct firmware *fw,
const struct firmware *bp)
{ … }
static int cxacru_find_firmware(struct cxacru_data *instance,
char *phase, const struct firmware **fw_p)
{ … }
static int cxacru_heavy_init(struct usbatm_data *usbatm_instance,
struct usb_interface *usb_intf)
{ … }
static int cxacru_bind(struct usbatm_data *usbatm_instance,
struct usb_interface *intf, const struct usb_device_id *id)
{ … }
static void cxacru_unbind(struct usbatm_data *usbatm_instance,
struct usb_interface *intf)
{ … }
static const struct cxacru_modem_type cxacru_cafe = …;
static const struct cxacru_modem_type cxacru_cb00 = …;
static const struct usb_device_id cxacru_usb_ids[] = …;
MODULE_DEVICE_TABLE(usb, cxacru_usb_ids);
static struct usbatm_driver cxacru_driver = …;
static int cxacru_usb_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static struct usb_driver cxacru_usb_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;