linux/drivers/usb/atm/speedtch.c

// SPDX-License-Identifier: GPL-2.0+
/******************************************************************************
 *  speedtch.c  -  Alcatel SpeedTouch USB xDSL modem driver
 *
 *  Copyright (C) 2001, Alcatel
 *  Copyright (C) 2003, Duncan Sands
 *  Copyright (C) 2004, David Woodhouse
 *
 *  Based on "modem_run.c", copyright (C) 2001, Benoit Papillault
 ******************************************************************************/

#include <asm/page.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/firmware.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/stat.h>
#include <linux/timer.h>
#include <linux/types.h>
#include <linux/usb/ch9.h>
#include <linux/workqueue.h>

#include "usbatm.h"

#define DRIVER_AUTHOR
#define DRIVER_DESC

static const char speedtch_driver_name[] =;

#define CTRL_TIMEOUT
#define DATA_TIMEOUT

#define OFFSET_7
#define OFFSET_b
#define OFFSET_d
#define OFFSET_e
#define OFFSET_f

#define SIZE_7
#define SIZE_b
#define SIZE_d
#define SIZE_e
#define SIZE_f

#define MIN_POLL_DELAY
#define MAX_POLL_DELAY

#define RESUBMIT_DELAY

#define DEFAULT_BULK_ALTSETTING
#define DEFAULT_ISOC_ALTSETTING
#define DEFAULT_DL_512_FIRST
#define DEFAULT_ENABLE_ISOC
#define DEFAULT_SW_BUFFERING

static unsigned int altsetting =; /* zero means: use the default */
static bool dl_512_first =;
static bool enable_isoc =;
static bool sw_buffering =;

#define DEFAULT_B_MAX_DSL
#define DEFAULT_MODEM_MODE
#define MODEM_OPTION_LENGTH
static const unsigned char DEFAULT_MODEM_OPTION[MODEM_OPTION_LENGTH] =;

static unsigned int BMaxDSL =;
static unsigned char ModemMode =;
static unsigned char ModemOption[MODEM_OPTION_LENGTH];
static unsigned int num_ModemOption;

module_param(altsetting, uint, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param(dl_512_first, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param(enable_isoc, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param(sw_buffering, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param(BMaxDSL, uint, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param(ModemMode, byte, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC();

module_param_array();
MODULE_PARM_DESC();

#define INTERFACE_DATA
#define ENDPOINT_INT
#define ENDPOINT_BULK_DATA
#define ENDPOINT_ISOC_DATA
#define ENDPOINT_FIRMWARE

struct speedtch_params {};

struct speedtch_instance_data {};

/***************
**  firmware  **
***************/

static void speedtch_set_swbuff(struct speedtch_instance_data *instance, int state)
{}

static void speedtch_test_sequence(struct speedtch_instance_data *instance)
{}

static int speedtch_upload_firmware(struct speedtch_instance_data *instance,
				     const struct firmware *fw1,
				     const struct firmware *fw2)
{}

static int speedtch_find_firmware(struct usbatm_data *usbatm, struct usb_interface *intf,
				  int phase, const struct firmware **fw_p)
{}

static int speedtch_heavy_init(struct usbatm_data *usbatm, struct usb_interface *intf)
{}


/**********
**  ATM  **
**********/

static int speedtch_read_status(struct speedtch_instance_data *instance)
{}

static int speedtch_start_synchro(struct speedtch_instance_data *instance)
{}

static void speedtch_check_status(struct work_struct *work)
{}

static void speedtch_status_poll(struct timer_list *t)
{}

static void speedtch_resubmit_int(struct timer_list *t)
{}

static void speedtch_handle_int(struct urb *int_urb)
{}

static int speedtch_atm_start(struct usbatm_data *usbatm, struct atm_dev *atm_dev)
{}

static void speedtch_atm_stop(struct usbatm_data *usbatm, struct atm_dev *atm_dev)
{}

static int speedtch_pre_reset(struct usb_interface *intf)
{}

static int speedtch_post_reset(struct usb_interface *intf)
{}


/**********
**  USB  **
**********/

static const struct usb_device_id speedtch_usb_ids[] =;

MODULE_DEVICE_TABLE(usb, speedtch_usb_ids);

static int speedtch_usb_probe(struct usb_interface *, const struct usb_device_id *);

static struct usb_driver speedtch_usb_driver =;

static void speedtch_release_interfaces(struct usb_device *usb_dev,
					int num_interfaces)
{}

static int speedtch_bind(struct usbatm_data *usbatm,
			 struct usb_interface *intf,
			 const struct usb_device_id *id)
{}

static void speedtch_unbind(struct usbatm_data *usbatm, struct usb_interface *intf)
{}


/***********
**  init  **
***********/

static struct usbatm_driver speedtch_usbatm_driver =;

static int speedtch_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
{}

module_usb_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();