USB: serial: make remove callback return void
All usb_serial drivers return 0 in their remove callbacks and driver core ignores the value returned by usb_serial_device_remove(). So change the remove callback to return void and return 0 unconditionally in usb_serial_device_remove(). Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> Link: https://lore.kernel.org/r/20210208143149.963644-2-uwe@kleine-koenig.org Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
parent
a54af1b7d6
commit
c5d1448fa3
|
@ -178,15 +178,13 @@ static int ark3116_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ark3116_port_remove(struct usb_serial_port *port)
|
static void ark3116_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct ark3116_private *priv = usb_get_serial_port_data(port);
|
struct ark3116_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
/* device is closed, so URBs and DMA should be down */
|
/* device is closed, so URBs and DMA should be down */
|
||||||
mutex_destroy(&priv->hw_lock);
|
mutex_destroy(&priv->hw_lock);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ark3116_set_termios(struct tty_struct *tty,
|
static void ark3116_set_termios(struct tty_struct *tty,
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
/* function prototypes for a Belkin USB Serial Adapter F5U103 */
|
/* function prototypes for a Belkin USB Serial Adapter F5U103 */
|
||||||
static int belkin_sa_port_probe(struct usb_serial_port *port);
|
static int belkin_sa_port_probe(struct usb_serial_port *port);
|
||||||
static int belkin_sa_port_remove(struct usb_serial_port *port);
|
static void belkin_sa_port_remove(struct usb_serial_port *port);
|
||||||
static int belkin_sa_open(struct tty_struct *tty,
|
static int belkin_sa_open(struct tty_struct *tty,
|
||||||
struct usb_serial_port *port);
|
struct usb_serial_port *port);
|
||||||
static void belkin_sa_close(struct usb_serial_port *port);
|
static void belkin_sa_close(struct usb_serial_port *port);
|
||||||
|
@ -134,14 +134,12 @@ static int belkin_sa_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int belkin_sa_port_remove(struct usb_serial_port *port)
|
static void belkin_sa_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct belkin_sa_private *priv;
|
struct belkin_sa_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int belkin_sa_open(struct tty_struct *tty,
|
static int belkin_sa_open(struct tty_struct *tty,
|
||||||
|
|
|
@ -88,7 +88,6 @@ static int usb_serial_device_remove(struct device *dev)
|
||||||
{
|
{
|
||||||
struct usb_serial_port *port = to_usb_serial_port(dev);
|
struct usb_serial_port *port = to_usb_serial_port(dev);
|
||||||
struct usb_serial_driver *driver;
|
struct usb_serial_driver *driver;
|
||||||
int retval = 0;
|
|
||||||
int minor;
|
int minor;
|
||||||
int autopm_err;
|
int autopm_err;
|
||||||
|
|
||||||
|
@ -105,7 +104,7 @@ static int usb_serial_device_remove(struct device *dev)
|
||||||
|
|
||||||
driver = port->serial->type;
|
driver = port->serial->type;
|
||||||
if (driver->port_remove)
|
if (driver->port_remove)
|
||||||
retval = driver->port_remove(port);
|
driver->port_remove(port);
|
||||||
|
|
||||||
dev_info(dev, "%s converter now disconnected from ttyUSB%d\n",
|
dev_info(dev, "%s converter now disconnected from ttyUSB%d\n",
|
||||||
driver->description, minor);
|
driver->description, minor);
|
||||||
|
@ -113,7 +112,7 @@ static int usb_serial_device_remove(struct device *dev)
|
||||||
if (!autopm_err)
|
if (!autopm_err)
|
||||||
usb_autopm_put_interface(port->serial->interface);
|
usb_autopm_put_interface(port->serial->interface);
|
||||||
|
|
||||||
return retval;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t new_id_store(struct device_driver *driver,
|
static ssize_t new_id_store(struct device_driver *driver,
|
||||||
|
|
|
@ -419,14 +419,12 @@ error: kfree(priv);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ch341_port_remove(struct usb_serial_port *port)
|
static void ch341_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct ch341_private *priv;
|
struct ch341_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ch341_carrier_raised(struct usb_serial_port *port)
|
static int ch341_carrier_raised(struct usb_serial_port *port)
|
||||||
|
|
|
@ -44,7 +44,7 @@ static int cp210x_attach(struct usb_serial *);
|
||||||
static void cp210x_disconnect(struct usb_serial *);
|
static void cp210x_disconnect(struct usb_serial *);
|
||||||
static void cp210x_release(struct usb_serial *);
|
static void cp210x_release(struct usb_serial *);
|
||||||
static int cp210x_port_probe(struct usb_serial_port *);
|
static int cp210x_port_probe(struct usb_serial_port *);
|
||||||
static int cp210x_port_remove(struct usb_serial_port *);
|
static void cp210x_port_remove(struct usb_serial_port *);
|
||||||
static void cp210x_dtr_rts(struct usb_serial_port *port, int on);
|
static void cp210x_dtr_rts(struct usb_serial_port *port, int on);
|
||||||
static void cp210x_process_read_urb(struct urb *urb);
|
static void cp210x_process_read_urb(struct urb *urb);
|
||||||
static void cp210x_enable_event_mode(struct usb_serial_port *port);
|
static void cp210x_enable_event_mode(struct usb_serial_port *port);
|
||||||
|
@ -1841,14 +1841,12 @@ static int cp210x_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cp210x_port_remove(struct usb_serial_port *port)
|
static void cp210x_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct cp210x_port_private *port_priv;
|
struct cp210x_port_private *port_priv;
|
||||||
|
|
||||||
port_priv = usb_get_serial_port_data(port);
|
port_priv = usb_get_serial_port_data(port);
|
||||||
kfree(port_priv);
|
kfree(port_priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cp210x_init_max_speed(struct usb_serial *serial)
|
static void cp210x_init_max_speed(struct usb_serial *serial)
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
/* Function prototypes */
|
/* Function prototypes */
|
||||||
static int cyberjack_port_probe(struct usb_serial_port *port);
|
static int cyberjack_port_probe(struct usb_serial_port *port);
|
||||||
static int cyberjack_port_remove(struct usb_serial_port *port);
|
static void cyberjack_port_remove(struct usb_serial_port *port);
|
||||||
static int cyberjack_open(struct tty_struct *tty,
|
static int cyberjack_open(struct tty_struct *tty,
|
||||||
struct usb_serial_port *port);
|
struct usb_serial_port *port);
|
||||||
static void cyberjack_close(struct usb_serial_port *port);
|
static void cyberjack_close(struct usb_serial_port *port);
|
||||||
|
@ -120,7 +120,7 @@ static int cyberjack_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cyberjack_port_remove(struct usb_serial_port *port)
|
static void cyberjack_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct cyberjack_private *priv;
|
struct cyberjack_private *priv;
|
||||||
|
|
||||||
|
@ -128,8 +128,6 @@ static int cyberjack_port_remove(struct usb_serial_port *port)
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cyberjack_open(struct tty_struct *tty,
|
static int cyberjack_open(struct tty_struct *tty,
|
||||||
|
|
|
@ -115,7 +115,7 @@ struct cypress_private {
|
||||||
static int cypress_earthmate_port_probe(struct usb_serial_port *port);
|
static int cypress_earthmate_port_probe(struct usb_serial_port *port);
|
||||||
static int cypress_hidcom_port_probe(struct usb_serial_port *port);
|
static int cypress_hidcom_port_probe(struct usb_serial_port *port);
|
||||||
static int cypress_ca42v2_port_probe(struct usb_serial_port *port);
|
static int cypress_ca42v2_port_probe(struct usb_serial_port *port);
|
||||||
static int cypress_port_remove(struct usb_serial_port *port);
|
static void cypress_port_remove(struct usb_serial_port *port);
|
||||||
static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void cypress_close(struct usb_serial_port *port);
|
static void cypress_close(struct usb_serial_port *port);
|
||||||
static void cypress_dtr_rts(struct usb_serial_port *port, int on);
|
static void cypress_dtr_rts(struct usb_serial_port *port, int on);
|
||||||
|
@ -564,7 +564,7 @@ static int cypress_ca42v2_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cypress_port_remove(struct usb_serial_port *port)
|
static void cypress_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct cypress_private *priv;
|
struct cypress_private *priv;
|
||||||
|
|
||||||
|
@ -572,8 +572,6 @@ static int cypress_port_remove(struct usb_serial_port *port)
|
||||||
|
|
||||||
kfifo_free(&priv->write_fifo);
|
kfifo_free(&priv->write_fifo);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -233,7 +233,7 @@ static int digi_startup(struct usb_serial *serial);
|
||||||
static void digi_disconnect(struct usb_serial *serial);
|
static void digi_disconnect(struct usb_serial *serial);
|
||||||
static void digi_release(struct usb_serial *serial);
|
static void digi_release(struct usb_serial *serial);
|
||||||
static int digi_port_probe(struct usb_serial_port *port);
|
static int digi_port_probe(struct usb_serial_port *port);
|
||||||
static int digi_port_remove(struct usb_serial_port *port);
|
static void digi_port_remove(struct usb_serial_port *port);
|
||||||
static void digi_read_bulk_callback(struct urb *urb);
|
static void digi_read_bulk_callback(struct urb *urb);
|
||||||
static int digi_read_inb_callback(struct urb *urb);
|
static int digi_read_inb_callback(struct urb *urb);
|
||||||
static int digi_read_oob_callback(struct urb *urb);
|
static int digi_read_oob_callback(struct urb *urb);
|
||||||
|
@ -1281,14 +1281,12 @@ static int digi_port_probe(struct usb_serial_port *port)
|
||||||
return digi_port_init(port, port->port_number);
|
return digi_port_init(port, port->port_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int digi_port_remove(struct usb_serial_port *port)
|
static void digi_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct digi_port *priv;
|
struct digi_port *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void digi_read_bulk_callback(struct urb *urb)
|
static void digi_read_bulk_callback(struct urb *urb)
|
||||||
|
|
|
@ -1430,12 +1430,11 @@ static int f81534_port_probe(struct usb_serial_port *port)
|
||||||
return f81534_set_port_output_pin(port);
|
return f81534_set_port_output_pin(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int f81534_port_remove(struct usb_serial_port *port)
|
static void f81534_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct f81534_port_private *port_priv = usb_get_serial_port_data(port);
|
struct f81534_port_private *port_priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
flush_work(&port_priv->lsr_work);
|
flush_work(&port_priv->lsr_work);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int f81534_tiocmget(struct tty_struct *tty)
|
static int f81534_tiocmget(struct tty_struct *tty)
|
||||||
|
|
|
@ -1069,7 +1069,7 @@ static const char *ftdi_chip_name[] = {
|
||||||
static int ftdi_sio_probe(struct usb_serial *serial,
|
static int ftdi_sio_probe(struct usb_serial *serial,
|
||||||
const struct usb_device_id *id);
|
const struct usb_device_id *id);
|
||||||
static int ftdi_sio_port_probe(struct usb_serial_port *port);
|
static int ftdi_sio_port_probe(struct usb_serial_port *port);
|
||||||
static int ftdi_sio_port_remove(struct usb_serial_port *port);
|
static void ftdi_sio_port_remove(struct usb_serial_port *port);
|
||||||
static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void ftdi_dtr_rts(struct usb_serial_port *port, int on);
|
static void ftdi_dtr_rts(struct usb_serial_port *port, int on);
|
||||||
static void ftdi_process_read_urb(struct urb *urb);
|
static void ftdi_process_read_urb(struct urb *urb);
|
||||||
|
@ -2400,7 +2400,7 @@ static int ftdi_stmclite_probe(struct usb_serial *serial)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ftdi_sio_port_remove(struct usb_serial_port *port)
|
static void ftdi_sio_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct ftdi_private *priv = usb_get_serial_port_data(port);
|
struct ftdi_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
|
@ -2409,8 +2409,6 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port)
|
||||||
remove_sysfs_attrs(port);
|
remove_sysfs_attrs(port);
|
||||||
|
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -1401,7 +1401,7 @@ err_free:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int garmin_port_remove(struct usb_serial_port *port)
|
static void garmin_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct garmin_data *garmin_data_p = usb_get_serial_port_data(port);
|
struct garmin_data *garmin_data_p = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
|
@ -1409,7 +1409,6 @@ static int garmin_port_remove(struct usb_serial_port *port)
|
||||||
usb_kill_urb(port->interrupt_in_urb);
|
usb_kill_urb(port->interrupt_in_urb);
|
||||||
del_timer_sync(&garmin_data_p->timer);
|
del_timer_sync(&garmin_data_p->timer);
|
||||||
kfree(garmin_data_p);
|
kfree(garmin_data_p);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -293,7 +293,7 @@ static int edge_startup(struct usb_serial *serial);
|
||||||
static void edge_disconnect(struct usb_serial *serial);
|
static void edge_disconnect(struct usb_serial *serial);
|
||||||
static void edge_release(struct usb_serial *serial);
|
static void edge_release(struct usb_serial *serial);
|
||||||
static int edge_port_probe(struct usb_serial_port *port);
|
static int edge_port_probe(struct usb_serial_port *port);
|
||||||
static int edge_port_remove(struct usb_serial_port *port);
|
static void edge_port_remove(struct usb_serial_port *port);
|
||||||
|
|
||||||
/* function prototypes for all of our local functions */
|
/* function prototypes for all of our local functions */
|
||||||
|
|
||||||
|
@ -3078,14 +3078,12 @@ static int edge_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int edge_port_remove(struct usb_serial_port *port)
|
static void edge_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct edgeport_port *edge_port;
|
struct edgeport_port *edge_port;
|
||||||
|
|
||||||
edge_port = usb_get_serial_port_data(port);
|
edge_port = usb_get_serial_port_data(port);
|
||||||
kfree(edge_port);
|
kfree(edge_port);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver edgeport_2port_device = {
|
static struct usb_serial_driver edgeport_2port_device = {
|
||||||
|
|
|
@ -2625,15 +2625,13 @@ err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int edge_port_remove(struct usb_serial_port *port)
|
static void edge_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct edgeport_port *edge_port;
|
struct edgeport_port *edge_port;
|
||||||
|
|
||||||
edge_port = usb_get_serial_port_data(port);
|
edge_port = usb_get_serial_port_data(port);
|
||||||
edge_remove_sysfs_attrs(port);
|
edge_remove_sysfs_attrs(port);
|
||||||
kfree(edge_port);
|
kfree(edge_port);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sysfs Attributes */
|
/* Sysfs Attributes */
|
||||||
|
|
|
@ -100,7 +100,7 @@ static int iuu_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iuu_port_remove(struct usb_serial_port *port)
|
static void iuu_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct iuu_private *priv = usb_get_serial_port_data(port);
|
struct iuu_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
|
@ -108,8 +108,6 @@ static int iuu_port_remove(struct usb_serial_port *port)
|
||||||
kfree(priv->writebuf);
|
kfree(priv->writebuf);
|
||||||
kfree(priv->buf);
|
kfree(priv->buf);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iuu_tiocmset(struct tty_struct *tty,
|
static int iuu_tiocmset(struct tty_struct *tty,
|
||||||
|
|
|
@ -49,7 +49,7 @@ static int keyspan_startup(struct usb_serial *serial);
|
||||||
static void keyspan_disconnect(struct usb_serial *serial);
|
static void keyspan_disconnect(struct usb_serial *serial);
|
||||||
static void keyspan_release(struct usb_serial *serial);
|
static void keyspan_release(struct usb_serial *serial);
|
||||||
static int keyspan_port_probe(struct usb_serial_port *port);
|
static int keyspan_port_probe(struct usb_serial_port *port);
|
||||||
static int keyspan_port_remove(struct usb_serial_port *port);
|
static void keyspan_port_remove(struct usb_serial_port *port);
|
||||||
static int keyspan_write_room(struct tty_struct *tty);
|
static int keyspan_write_room(struct tty_struct *tty);
|
||||||
static int keyspan_write(struct tty_struct *tty, struct usb_serial_port *port,
|
static int keyspan_write(struct tty_struct *tty, struct usb_serial_port *port,
|
||||||
const unsigned char *buf, int count);
|
const unsigned char *buf, int count);
|
||||||
|
@ -2985,7 +2985,7 @@ err_in_buffer:
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int keyspan_port_remove(struct usb_serial_port *port)
|
static void keyspan_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct keyspan_port_private *p_priv;
|
struct keyspan_port_private *p_priv;
|
||||||
int i;
|
int i;
|
||||||
|
@ -3014,8 +3014,6 @@ static int keyspan_port_remove(struct usb_serial_port *port)
|
||||||
kfree(p_priv->in_buffer[i]);
|
kfree(p_priv->in_buffer[i]);
|
||||||
|
|
||||||
kfree(p_priv);
|
kfree(p_priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Structs for the devices, pre and post renumeration. */
|
/* Structs for the devices, pre and post renumeration. */
|
||||||
|
|
|
@ -672,14 +672,12 @@ static int keyspan_pda_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int keyspan_pda_port_remove(struct usb_serial_port *port)
|
static void keyspan_pda_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct keyspan_pda_private *priv;
|
struct keyspan_pda_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver keyspan_pda_fake_device = {
|
static struct usb_serial_driver keyspan_pda_fake_device = {
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
* Function prototypes
|
* Function prototypes
|
||||||
*/
|
*/
|
||||||
static int klsi_105_port_probe(struct usb_serial_port *port);
|
static int klsi_105_port_probe(struct usb_serial_port *port);
|
||||||
static int klsi_105_port_remove(struct usb_serial_port *port);
|
static void klsi_105_port_remove(struct usb_serial_port *port);
|
||||||
static int klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void klsi_105_close(struct usb_serial_port *port);
|
static void klsi_105_close(struct usb_serial_port *port);
|
||||||
static void klsi_105_set_termios(struct tty_struct *tty,
|
static void klsi_105_set_termios(struct tty_struct *tty,
|
||||||
|
@ -231,14 +231,12 @@ static int klsi_105_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int klsi_105_port_remove(struct usb_serial_port *port)
|
static void klsi_105_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct klsi_105_private *priv;
|
struct klsi_105_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
/* Function prototypes */
|
/* Function prototypes */
|
||||||
static int kobil_port_probe(struct usb_serial_port *probe);
|
static int kobil_port_probe(struct usb_serial_port *probe);
|
||||||
static int kobil_port_remove(struct usb_serial_port *probe);
|
static void kobil_port_remove(struct usb_serial_port *probe);
|
||||||
static int kobil_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int kobil_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void kobil_close(struct usb_serial_port *port);
|
static void kobil_close(struct usb_serial_port *port);
|
||||||
static int kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
|
static int kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
|
||||||
|
@ -143,14 +143,12 @@ static int kobil_port_probe(struct usb_serial_port *port)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int kobil_port_remove(struct usb_serial_port *port)
|
static void kobil_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct kobil_private *priv;
|
struct kobil_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kobil_init_termios(struct tty_struct *tty)
|
static void kobil_init_termios(struct tty_struct *tty)
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
* Function prototypes
|
* Function prototypes
|
||||||
*/
|
*/
|
||||||
static int mct_u232_port_probe(struct usb_serial_port *port);
|
static int mct_u232_port_probe(struct usb_serial_port *port);
|
||||||
static int mct_u232_port_remove(struct usb_serial_port *remove);
|
static void mct_u232_port_remove(struct usb_serial_port *remove);
|
||||||
static int mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void mct_u232_close(struct usb_serial_port *port);
|
static void mct_u232_close(struct usb_serial_port *port);
|
||||||
static void mct_u232_dtr_rts(struct usb_serial_port *port, int on);
|
static void mct_u232_dtr_rts(struct usb_serial_port *port, int on);
|
||||||
|
@ -400,14 +400,12 @@ static int mct_u232_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mct_u232_port_remove(struct usb_serial_port *port)
|
static void mct_u232_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct mct_u232_private *priv;
|
struct mct_u232_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -256,14 +256,12 @@ static int metrousb_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int metrousb_port_remove(struct usb_serial_port *port)
|
static void metrousb_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct metrousb_private *metro_priv;
|
struct metrousb_private *metro_priv;
|
||||||
|
|
||||||
metro_priv = usb_get_serial_port_data(port);
|
metro_priv = usb_get_serial_port_data(port);
|
||||||
kfree(metro_priv);
|
kfree(metro_priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void metrousb_throttle(struct tty_struct *tty)
|
static void metrousb_throttle(struct tty_struct *tty)
|
||||||
|
|
|
@ -1760,14 +1760,12 @@ static int mos7720_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mos7720_port_remove(struct usb_serial_port *port)
|
static void mos7720_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct moschip_port *mos7720_port;
|
struct moschip_port *mos7720_port;
|
||||||
|
|
||||||
mos7720_port = usb_get_serial_port_data(port);
|
mos7720_port = usb_get_serial_port_data(port);
|
||||||
kfree(mos7720_port);
|
kfree(mos7720_port);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver moschip7720_2port_driver = {
|
static struct usb_serial_driver moschip7720_2port_driver = {
|
||||||
|
|
|
@ -1745,7 +1745,7 @@ error:
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mos7840_port_remove(struct usb_serial_port *port)
|
static void mos7840_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
|
struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
|
@ -1762,8 +1762,6 @@ static int mos7840_port_remove(struct usb_serial_port *port)
|
||||||
}
|
}
|
||||||
|
|
||||||
kfree(mos7840_port);
|
kfree(mos7840_port);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver moschip7840_4port_device = {
|
static struct usb_serial_driver moschip7840_4port_device = {
|
||||||
|
|
|
@ -36,7 +36,7 @@ static int omninet_prepare_write_buffer(struct usb_serial_port *port,
|
||||||
static int omninet_calc_num_ports(struct usb_serial *serial,
|
static int omninet_calc_num_ports(struct usb_serial *serial,
|
||||||
struct usb_serial_endpoints *epds);
|
struct usb_serial_endpoints *epds);
|
||||||
static int omninet_port_probe(struct usb_serial_port *port);
|
static int omninet_port_probe(struct usb_serial_port *port);
|
||||||
static int omninet_port_remove(struct usb_serial_port *port);
|
static void omninet_port_remove(struct usb_serial_port *port);
|
||||||
|
|
||||||
static const struct usb_device_id id_table[] = {
|
static const struct usb_device_id id_table[] = {
|
||||||
{ USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNINET_ID) },
|
{ USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNINET_ID) },
|
||||||
|
@ -121,14 +121,12 @@ static int omninet_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int omninet_port_remove(struct usb_serial_port *port)
|
static void omninet_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct omninet_data *od;
|
struct omninet_data *od;
|
||||||
|
|
||||||
od = usb_get_serial_port_data(port);
|
od = usb_get_serial_port_data(port);
|
||||||
kfree(od);
|
kfree(od);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define OMNINET_HEADERLEN 4
|
#define OMNINET_HEADERLEN 4
|
||||||
|
|
|
@ -385,13 +385,11 @@ static int opticon_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int opticon_port_remove(struct usb_serial_port *port)
|
static void opticon_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct opticon_private *priv = usb_get_serial_port_data(port);
|
struct opticon_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver opticon_device = {
|
static struct usb_serial_driver opticon_device = {
|
||||||
|
|
|
@ -132,7 +132,7 @@ static int oti6858_tiocmget(struct tty_struct *tty);
|
||||||
static int oti6858_tiocmset(struct tty_struct *tty,
|
static int oti6858_tiocmset(struct tty_struct *tty,
|
||||||
unsigned int set, unsigned int clear);
|
unsigned int set, unsigned int clear);
|
||||||
static int oti6858_port_probe(struct usb_serial_port *port);
|
static int oti6858_port_probe(struct usb_serial_port *port);
|
||||||
static int oti6858_port_remove(struct usb_serial_port *port);
|
static void oti6858_port_remove(struct usb_serial_port *port);
|
||||||
|
|
||||||
/* device info */
|
/* device info */
|
||||||
static struct usb_serial_driver oti6858_device = {
|
static struct usb_serial_driver oti6858_device = {
|
||||||
|
@ -344,14 +344,12 @@ static int oti6858_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int oti6858_port_remove(struct usb_serial_port *port)
|
static void oti6858_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct oti6858_private *priv;
|
struct oti6858_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int oti6858_write(struct tty_struct *tty, struct usb_serial_port *port,
|
static int oti6858_write(struct tty_struct *tty, struct usb_serial_port *port,
|
||||||
|
|
|
@ -450,13 +450,11 @@ static int pl2303_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pl2303_port_remove(struct usb_serial_port *port)
|
static void pl2303_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct pl2303_private *priv = usb_get_serial_port_data(port);
|
struct pl2303_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pl2303_set_control_lines(struct usb_serial_port *port, u8 value)
|
static int pl2303_set_control_lines(struct usb_serial_port *port, u8 value)
|
||||||
|
|
|
@ -727,7 +727,7 @@ err_buf:
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qt2_port_remove(struct usb_serial_port *port)
|
static void qt2_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct qt2_port_private *port_priv;
|
struct qt2_port_private *port_priv;
|
||||||
|
|
||||||
|
@ -735,8 +735,6 @@ static int qt2_port_remove(struct usb_serial_port *port)
|
||||||
usb_free_urb(port_priv->write_urb);
|
usb_free_urb(port_priv->write_urb);
|
||||||
kfree(port_priv->write_buffer);
|
kfree(port_priv->write_buffer);
|
||||||
kfree(port_priv);
|
kfree(port_priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qt2_tiocmget(struct tty_struct *tty)
|
static int qt2_tiocmget(struct tty_struct *tty)
|
||||||
|
|
|
@ -901,15 +901,13 @@ static int sierra_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sierra_port_remove(struct usb_serial_port *port)
|
static void sierra_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct sierra_port_private *portdata;
|
struct sierra_port_private *portdata;
|
||||||
|
|
||||||
portdata = usb_get_serial_port_data(port);
|
portdata = usb_get_serial_port_data(port);
|
||||||
usb_set_serial_port_data(port, NULL);
|
usb_set_serial_port_data(port, NULL);
|
||||||
kfree(portdata);
|
kfree(portdata);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
|
@ -169,14 +169,12 @@ static int spcp8x5_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int spcp8x5_port_remove(struct usb_serial_port *port)
|
static void spcp8x5_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct spcp8x5_private *priv;
|
struct spcp8x5_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int spcp8x5_set_ctrl_line(struct usb_serial_port *port, u8 mcr)
|
static int spcp8x5_set_ctrl_line(struct usb_serial_port *port, u8 mcr)
|
||||||
|
|
|
@ -366,14 +366,12 @@ static int ssu100_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ssu100_port_remove(struct usb_serial_port *port)
|
static void ssu100_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct ssu100_port_private *priv;
|
struct ssu100_port_private *priv;
|
||||||
|
|
||||||
priv = usb_get_serial_port_data(port);
|
priv = usb_get_serial_port_data(port);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ssu100_tiocmget(struct tty_struct *tty)
|
static int ssu100_tiocmget(struct tty_struct *tty)
|
||||||
|
|
|
@ -160,13 +160,11 @@ static int symbol_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int symbol_port_remove(struct usb_serial_port *port)
|
static void symbol_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct symbol_private *priv = usb_get_serial_port_data(port);
|
struct symbol_private *priv = usb_get_serial_port_data(port);
|
||||||
|
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_serial_driver symbol_device = {
|
static struct usb_serial_driver symbol_device = {
|
||||||
|
|
|
@ -303,7 +303,7 @@ struct ti_device {
|
||||||
static int ti_startup(struct usb_serial *serial);
|
static int ti_startup(struct usb_serial *serial);
|
||||||
static void ti_release(struct usb_serial *serial);
|
static void ti_release(struct usb_serial *serial);
|
||||||
static int ti_port_probe(struct usb_serial_port *port);
|
static int ti_port_probe(struct usb_serial_port *port);
|
||||||
static int ti_port_remove(struct usb_serial_port *port);
|
static void ti_port_remove(struct usb_serial_port *port);
|
||||||
static int ti_open(struct tty_struct *tty, struct usb_serial_port *port);
|
static int ti_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
static void ti_close(struct usb_serial_port *port);
|
static void ti_close(struct usb_serial_port *port);
|
||||||
static int ti_write(struct tty_struct *tty, struct usb_serial_port *port,
|
static int ti_write(struct tty_struct *tty, struct usb_serial_port *port,
|
||||||
|
@ -629,14 +629,12 @@ static int ti_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ti_port_remove(struct usb_serial_port *port)
|
static void ti_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct ti_port *tport;
|
struct ti_port *tport;
|
||||||
|
|
||||||
tport = usb_get_serial_port_data(port);
|
tport = usb_get_serial_port_data(port);
|
||||||
kfree(tport);
|
kfree(tport);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ti_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int ti_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -171,15 +171,13 @@ static int upd78f0730_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int upd78f0730_port_remove(struct usb_serial_port *port)
|
static void upd78f0730_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct upd78f0730_port_private *private;
|
struct upd78f0730_port_private *private;
|
||||||
|
|
||||||
private = usb_get_serial_port_data(port);
|
private = usb_get_serial_port_data(port);
|
||||||
mutex_destroy(&private->lock);
|
mutex_destroy(&private->lock);
|
||||||
kfree(private);
|
kfree(private);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int upd78f0730_tiocmget(struct tty_struct *tty)
|
static int upd78f0730_tiocmget(struct tty_struct *tty)
|
||||||
|
|
|
@ -10,7 +10,7 @@ extern void usb_wwan_dtr_rts(struct usb_serial_port *port, int on);
|
||||||
extern int usb_wwan_open(struct tty_struct *tty, struct usb_serial_port *port);
|
extern int usb_wwan_open(struct tty_struct *tty, struct usb_serial_port *port);
|
||||||
extern void usb_wwan_close(struct usb_serial_port *port);
|
extern void usb_wwan_close(struct usb_serial_port *port);
|
||||||
extern int usb_wwan_port_probe(struct usb_serial_port *port);
|
extern int usb_wwan_port_probe(struct usb_serial_port *port);
|
||||||
extern int usb_wwan_port_remove(struct usb_serial_port *port);
|
extern void usb_wwan_port_remove(struct usb_serial_port *port);
|
||||||
extern int usb_wwan_write_room(struct tty_struct *tty);
|
extern int usb_wwan_write_room(struct tty_struct *tty);
|
||||||
extern int usb_wwan_tiocmget(struct tty_struct *tty);
|
extern int usb_wwan_tiocmget(struct tty_struct *tty);
|
||||||
extern int usb_wwan_tiocmset(struct tty_struct *tty,
|
extern int usb_wwan_tiocmset(struct tty_struct *tty,
|
||||||
|
|
|
@ -544,7 +544,7 @@ bail_out_error:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(usb_wwan_port_probe);
|
EXPORT_SYMBOL_GPL(usb_wwan_port_probe);
|
||||||
|
|
||||||
int usb_wwan_port_remove(struct usb_serial_port *port)
|
void usb_wwan_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct usb_wwan_port_private *portdata;
|
struct usb_wwan_port_private *portdata;
|
||||||
|
@ -562,8 +562,6 @@ int usb_wwan_port_remove(struct usb_serial_port *port)
|
||||||
}
|
}
|
||||||
|
|
||||||
kfree(portdata);
|
kfree(portdata);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(usb_wwan_port_remove);
|
EXPORT_SYMBOL(usb_wwan_port_remove);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ static int whiteheat_firmware_attach(struct usb_serial *serial);
|
||||||
static int whiteheat_attach(struct usb_serial *serial);
|
static int whiteheat_attach(struct usb_serial *serial);
|
||||||
static void whiteheat_release(struct usb_serial *serial);
|
static void whiteheat_release(struct usb_serial *serial);
|
||||||
static int whiteheat_port_probe(struct usb_serial_port *port);
|
static int whiteheat_port_probe(struct usb_serial_port *port);
|
||||||
static int whiteheat_port_remove(struct usb_serial_port *port);
|
static void whiteheat_port_remove(struct usb_serial_port *port);
|
||||||
static int whiteheat_open(struct tty_struct *tty,
|
static int whiteheat_open(struct tty_struct *tty,
|
||||||
struct usb_serial_port *port);
|
struct usb_serial_port *port);
|
||||||
static void whiteheat_close(struct usb_serial_port *port);
|
static void whiteheat_close(struct usb_serial_port *port);
|
||||||
|
@ -345,14 +345,12 @@ static int whiteheat_port_probe(struct usb_serial_port *port)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int whiteheat_port_remove(struct usb_serial_port *port)
|
static void whiteheat_port_remove(struct usb_serial_port *port)
|
||||||
{
|
{
|
||||||
struct whiteheat_private *info;
|
struct whiteheat_private *info;
|
||||||
|
|
||||||
info = usb_get_serial_port_data(port);
|
info = usb_get_serial_port_data(port);
|
||||||
kfree(info);
|
kfree(info);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int whiteheat_open(struct tty_struct *tty, struct usb_serial_port *port)
|
static int whiteheat_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||||
|
|
|
@ -260,7 +260,7 @@ struct usb_serial_driver {
|
||||||
void (*release)(struct usb_serial *serial);
|
void (*release)(struct usb_serial *serial);
|
||||||
|
|
||||||
int (*port_probe)(struct usb_serial_port *port);
|
int (*port_probe)(struct usb_serial_port *port);
|
||||||
int (*port_remove)(struct usb_serial_port *port);
|
void (*port_remove)(struct usb_serial_port *port);
|
||||||
|
|
||||||
int (*suspend)(struct usb_serial *serial, pm_message_t message);
|
int (*suspend)(struct usb_serial *serial, pm_message_t message);
|
||||||
int (*resume)(struct usb_serial *serial);
|
int (*resume)(struct usb_serial *serial);
|
||||||
|
|
Loading…
Reference in New Issue