aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2009-06-15 13:01:15 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-15 13:01:15 -0700
commita40f36137a30dc17b00c73bad543b90915bf24b7 (patch)
treee211752d32cc19269c6e73b3bb9e10a9dc60d3e0 /usb
parent0f3f33d3056bea4fc8cc48a18ced89762af3917e (diff)
downloadpatches-a40f36137a30dc17b00c73bad543b90915bf24b7.tar.gz
2.6.30-git8 resync
Remove patches already upstream (sierra) and lots of merges
Diffstat (limited to 'usb')
-rw-r--r--usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch2
-rw-r--r--usb/usb-ftdi_sio-fix-hi-speed-device-packet-size-calculation.patch22
-rw-r--r--usb/usb-garmin_gps-removes-usb_reset_device-from-garmin_close.patch20
-rw-r--r--usb/usb-identify-novatel-mc760-in-option-driver.patch4
-rw-r--r--usb/usb-ignore-storage-device-in-modem-mode-on-dwn-652.patch8
-rw-r--r--usb/usb-mos7840-fix-debug-log-messages.patch94
-rw-r--r--usb/usb-pl2303-usb_serial-implement-sysrq-handling-on-break.patch4
-rw-r--r--usb/usb-return-device-strings-in-utf-8.patch2
-rw-r--r--usb/usb-serial-adding-sierra_release_urb-function.patch56
-rw-r--r--usb/usb-serial-adding-sierra_setup_urb-function.patch70
-rw-r--r--usb/usb-serial-adding-sierra_stop_rx_urbs-function.patch42
-rw-r--r--usb/usb-serial-adding-sierra_submit_rx_urbs-function.patch70
-rw-r--r--usb/usb-serial-ftd_sio-implement-sysrq-handling-on-break.patch4
-rw-r--r--usb/usb-serial-ftd_sio-usb-move-status-check.patch4
-rw-r--r--usb/usb-serial-ftdi-add-high-speed-device-support.patch18
-rw-r--r--usb/usb-serial-sierra-driver-debug-info-visibility-improvement.patch81
-rw-r--r--usb/usb-serial-sierra-driver-interrupt-urb-resubmit-fix.patch4
-rw-r--r--usb/usb-serial-sierra-driver-performance-improvements.patch4
-rw-r--r--usb/usb-serial-sierra-driver-read-path-bug-fix.patch19
-rw-r--r--usb/usb-serial-sierra-driver-sierra_calc_num_ports-fix.patch12
-rw-r--r--usb/usb-serial-sierra-driver-write-path-improvements.patch8
-rw-r--r--usb/usb-serial-sierra-driver-zero-length-packet-fix.patch2
-rw-r--r--usb/usb-serial-usb_debug-usb_generic_serial-implement-sysrq-and-serial-break.patch12
-rw-r--r--usb/usb-sierra-fix-printk-warning.patch2
-rw-r--r--usb/usb-support-for-cdc-acm-of-single-interface-devices.patch53
-rw-r--r--usb/usb-usb-serial-call-port_probe-and-port_remove-at-the-right-times.patch4
-rw-r--r--usb/usb-usb-serial-replace-shutdown-with-disconnect-release.patch287
-rw-r--r--usb/usb-usb_debug-usb_generic_serial-implement-multi-urb-write.patch10
-rw-r--r--usb/usb-usb_serial-only-allow-sysrq-on-a-console-port.patch2
-rw-r--r--usb/usb-xhci-add-makefile-maintainers-and-kconfig-entries.patch2
30 files changed, 315 insertions, 607 deletions
diff --git a/usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch b/usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch
index 2d41a1f0d80c76..e3287d3b88115a 100644
--- a/usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch
+++ b/usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch
@@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
-@@ -1432,6 +1432,9 @@ static struct usb_device_id acm_ids[] =
+@@ -1495,6 +1495,9 @@ static struct usb_device_id acm_ids[] =
Maybe we should define a new
quirk for this. */
},
diff --git a/usb/usb-ftdi_sio-fix-hi-speed-device-packet-size-calculation.patch b/usb/usb-ftdi_sio-fix-hi-speed-device-packet-size-calculation.patch
index 2a69649632ce15..3852147ae623de 100644
--- a/usb/usb-ftdi_sio-fix-hi-speed-device-packet-size-calculation.patch
+++ b/usb/usb-ftdi_sio-fix-hi-speed-device-packet-size-calculation.patch
@@ -29,7 +29,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -94,6 +94,7 @@ struct ftdi_private {
+@@ -95,6 +95,7 @@ struct ftdi_private {
unsigned long tx_bytes;
unsigned long tx_outstanding_bytes;
unsigned long tx_outstanding_urbs;
@@ -37,7 +37,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
/* struct ftdi_sio_quirk is used by devices requiring special attention. */
-@@ -702,7 +703,6 @@ static const char *ftdi_chip_name[] = {
+@@ -703,7 +704,6 @@ static const char *ftdi_chip_name[] = {
/* Constants for read urb and write urb */
#define BUFSZ 512
@@ -45,7 +45,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* rx_flags */
#define THROTTLED 0x01
-@@ -1246,6 +1246,45 @@ static void ftdi_determine_type(struct u
+@@ -1296,6 +1296,45 @@ static void ftdi_determine_type(struct u
}
@@ -91,15 +91,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/*
* ***************************************************************************
* Sysfs Attribute
-@@ -1461,6 +1500,7 @@ static int ftdi_sio_port_probe(struct us
+@@ -1485,6 +1524,7 @@ static int ftdi_sio_port_probe(struct us
usb_set_serial_port_data(port, priv);
ftdi_determine_type(port);
+ ftdi_set_max_packet_size(port);
+ read_latency_timer(port);
create_sysfs_attrs(port);
return 0;
- }
-@@ -1713,8 +1753,8 @@ static int ftdi_write(struct tty_struct
+@@ -1740,8 +1780,8 @@ static int ftdi_write(struct tty_struct
if (data_offset > 0) {
/* Original sio needs control bytes too... */
transfer_size += (data_offset *
@@ -110,7 +110,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
buffer = kmalloc(transfer_size, GFP_ATOMIC);
-@@ -1736,7 +1776,7 @@ static int ftdi_write(struct tty_struct
+@@ -1763,7 +1803,7 @@ static int ftdi_write(struct tty_struct
if (data_offset > 0) {
/* Original sio requires control byte at start of
each packet. */
@@ -119,7 +119,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int todo = count;
unsigned char *first_byte = buffer;
const unsigned char *current_position = buf;
-@@ -1832,7 +1872,7 @@ static void ftdi_write_bulk_callback(str
+@@ -1859,7 +1899,7 @@ static void ftdi_write_bulk_callback(str
data_offset = priv->write_offset;
if (data_offset > 0) {
/* Subtract the control bytes */
@@ -128,7 +128,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
spin_lock_irqsave(&priv->tx_lock, flags);
--priv->tx_outstanding_urbs;
-@@ -1934,7 +1974,7 @@ static void ftdi_read_bulk_callback(stru
+@@ -1961,7 +2001,7 @@ static void ftdi_read_bulk_callback(stru
/* count data bytes, but not status bytes */
countread = urb->actual_length;
@@ -137,7 +137,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_lock_irqsave(&priv->rx_lock, flags);
priv->rx_bytes += countread;
spin_unlock_irqrestore(&priv->rx_lock, flags);
-@@ -2007,7 +2047,7 @@ static void ftdi_process_read(struct wor
+@@ -2034,7 +2074,7 @@ static void ftdi_process_read(struct wor
need_flip = 0;
for (packet_offset = priv->rx_processed;
@@ -146,7 +146,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int length;
/* Compare new line status to the old one, signal if different/
-@@ -2022,7 +2062,7 @@ static void ftdi_process_read(struct wor
+@@ -2049,7 +2089,7 @@ static void ftdi_process_read(struct wor
priv->prev_status = new_status;
}
diff --git a/usb/usb-garmin_gps-removes-usb_reset_device-from-garmin_close.patch b/usb/usb-garmin_gps-removes-usb_reset_device-from-garmin_close.patch
index eb7c1bb923597d..0d0d625da469b3 100644
--- a/usb/usb-garmin_gps-removes-usb_reset_device-from-garmin_close.patch
+++ b/usb/usb-garmin_gps-removes-usb_reset_device-from-garmin_close.patch
@@ -309,7 +309,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_unlock_irqrestore(&garmin_data_p->lock, flags);
/* shutdown any bulk reads that might be going on */
-@@ -1007,6 +974,7 @@ static void garmin_close(struct tty_stru
+@@ -1006,6 +973,7 @@ static void garmin_close(struct usb_seri
return;
mutex_lock(&port->serial->disc_mutex);
@@ -317,7 +317,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (!port->serial->disconnected)
garmin_clear(garmin_data_p);
-@@ -1014,25 +982,17 @@ static void garmin_close(struct tty_stru
+@@ -1013,25 +981,17 @@ static void garmin_close(struct usb_seri
usb_kill_urb(port->read_urb);
usb_kill_urb(port->write_urb);
@@ -347,7 +347,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (port) {
struct garmin_data *garmin_data_p =
-@@ -1040,20 +1000,13 @@ static void garmin_write_bulk_callback(s
+@@ -1039,20 +999,13 @@ static void garmin_write_bulk_callback(s
dbg("%s - port %d", __func__, port->number);
@@ -373,7 +373,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
usb_serial_port_softint(port);
}
-@@ -1109,7 +1062,11 @@ static int garmin_write_bulk(struct usb_
+@@ -1108,7 +1061,11 @@ static int garmin_write_bulk(struct usb_
urb->transfer_flags |= URB_ZERO_PACKET;
if (GARMIN_LAYERID_APPL == getLayerId(buffer)) {
@@ -386,7 +386,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (garmin_data_p->mode == MODE_GARMIN_SERIAL) {
pkt_clear(garmin_data_p);
garmin_data_p->state = STATE_GSP_WAIT_DATA;
-@@ -1141,6 +1098,9 @@ static int garmin_write(struct tty_struc
+@@ -1140,6 +1097,9 @@ static int garmin_write(struct tty_struc
usb_serial_debug_data(debug, &port->dev, __func__, count, buf);
@@ -396,7 +396,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* check for our private packets */
if (count >= GARMIN_PKTHDR_LENGTH) {
len = PRIVPKTSIZ;
-@@ -1185,7 +1145,7 @@ static int garmin_write(struct tty_struc
+@@ -1184,7 +1144,7 @@ static int garmin_write(struct tty_struc
break;
case PRIV_PKTID_RESET_REQ:
@@ -405,7 +405,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
break;
case PRIV_PKTID_SET_DEF_MODE:
-@@ -1201,8 +1161,6 @@ static int garmin_write(struct tty_struc
+@@ -1200,8 +1160,6 @@ static int garmin_write(struct tty_struc
}
}
@@ -414,7 +414,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (garmin_data_p->mode == MODE_GARMIN_SERIAL) {
return gsp_receive(garmin_data_p, buf, count);
} else { /* MODE_NATIVE */
-@@ -1225,31 +1183,33 @@ static int garmin_write_room(struct tty_
+@@ -1224,31 +1182,33 @@ static int garmin_write_room(struct tty_
static void garmin_read_process(struct garmin_data *garmin_data_p,
unsigned char *data, unsigned data_length)
{
@@ -460,7 +460,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
}
-@@ -1364,8 +1324,6 @@ static void garmin_read_int_callback(str
+@@ -1363,8 +1323,6 @@ static void garmin_read_int_callback(str
} else {
spin_lock_irqsave(&garmin_data_p->lock, flags);
garmin_data_p->flags |= FLAGS_BULK_IN_ACTIVE;
@@ -469,7 +469,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_unlock_irqrestore(&garmin_data_p->lock,
flags);
}
-@@ -1392,17 +1350,7 @@ static void garmin_read_int_callback(str
+@@ -1391,17 +1349,7 @@ static void garmin_read_int_callback(str
__func__, garmin_data_p->serial_num);
}
diff --git a/usb/usb-identify-novatel-mc760-in-option-driver.patch b/usb/usb-identify-novatel-mc760-in-option-driver.patch
index c80f131ce9796b..029b812bf31510 100644
--- a/usb/usb-identify-novatel-mc760-in-option-driver.patch
+++ b/usb/usb-identify-novatel-mc760-in-option-driver.patch
@@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -203,9 +203,9 @@ static int option_resume(struct usb_ser
+@@ -204,9 +204,9 @@ static int option_resume(struct usb_ser
#define NOVATELWIRELESS_PRODUCT_MC727 0x4100
#define NOVATELWIRELESS_PRODUCT_MC950D 0x4400
#define NOVATELWIRELESS_PRODUCT_U727 0x5010
@@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0X6001
#define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0X7000
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0X7001
-@@ -427,7 +427,7 @@ static struct usb_device_id option_ids[]
+@@ -428,7 +428,7 @@ static struct usb_device_id option_ids[]
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel MC727/U727/USB727 */
diff --git a/usb/usb-ignore-storage-device-in-modem-mode-on-dwn-652.patch b/usb/usb-ignore-storage-device-in-modem-mode-on-dwn-652.patch
index 9e25e166a4794c..7d8797db7f334b 100644
--- a/usb/usb-ignore-storage-device-in-modem-mode-on-dwn-652.patch
+++ b/usb/usb-ignore-storage-device-in-modem-mode-on-dwn-652.patch
@@ -34,16 +34,16 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ const struct usb_device_id *id);
static int option_open(struct tty_struct *tty, struct usb_serial_port *port,
struct file *filp);
- static void option_close(struct tty_struct *tty, struct usb_serial_port *port,
-@@ -554,6 +556,7 @@ static struct usb_serial_driver option_1
+ static void option_close(struct usb_serial_port *port);
+@@ -555,6 +557,7 @@ static struct usb_serial_driver option_1
.usb_driver = &option_driver,
.id_table = option_ids,
.num_ports = 1,
+ .probe = option_probe,
.open = option_open,
.close = option_close,
- .write = option_write,
-@@ -629,6 +632,18 @@ static void __exit option_exit(void)
+ .dtr_rts = option_dtr_rts,
+@@ -631,6 +634,18 @@ static void __exit option_exit(void)
module_init(option_init);
module_exit(option_exit);
diff --git a/usb/usb-mos7840-fix-debug-log-messages.patch b/usb/usb-mos7840-fix-debug-log-messages.patch
index 3f8e71d1707ab4..da267c5a08465e 100644
--- a/usb/usb-mos7840-fix-debug-log-messages.patch
+++ b/usb/usb-mos7840-fix-debug-log-messages.patch
@@ -386,7 +386,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return 0;
}
-@@ -1190,16 +1194,16 @@ static void mos7840_close(struct tty_str
+@@ -1148,16 +1152,16 @@ static void mos7840_close(struct usb_ser
int j;
__u16 Data;
@@ -406,7 +406,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -1231,27 +1235,27 @@ static void mos7840_close(struct tty_str
+@@ -1185,27 +1189,27 @@ static void mos7840_close(struct usb_ser
* and interrupt read if they exists */
if (serial->dev) {
if (mos7840_port->write_urb) {
@@ -439,7 +439,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
usb_kill_urb(serial->port[0]->interrupt_in_urb);
}
}
-@@ -1271,7 +1275,7 @@ static void mos7840_close(struct tty_str
+@@ -1225,7 +1229,7 @@ static void mos7840_close(struct usb_ser
mos7840_port->open = 0;
@@ -448,7 +448,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
/************************************************************************
-@@ -1326,17 +1330,17 @@ static void mos7840_break(struct tty_str
+@@ -1280,17 +1284,17 @@ static void mos7840_break(struct tty_str
struct usb_serial *serial;
struct moschip_port *mos7840_port;
@@ -470,7 +470,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -1356,7 +1360,7 @@ static void mos7840_break(struct tty_str
+@@ -1310,7 +1314,7 @@ static void mos7840_break(struct tty_str
/* FIXME: no locking on shadowLCR anywhere in driver */
mos7840_port->shadowLCR = data;
@@ -479,7 +479,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port->shadowLCR);
mos7840_set_uart_reg(port, LINE_CONTROL_REGISTER,
mos7840_port->shadowLCR);
-@@ -1380,17 +1384,17 @@ static int mos7840_write_room(struct tty
+@@ -1334,17 +1338,17 @@ static int mos7840_write_room(struct tty
unsigned long flags;
struct moschip_port *mos7840_port;
@@ -501,7 +501,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
-@@ -1430,16 +1434,16 @@ static int mos7840_write(struct tty_stru
+@@ -1384,16 +1388,16 @@ static int mos7840_write(struct tty_stru
/* __u16 Data; */
const unsigned char *current_position = data;
unsigned char *data1;
@@ -522,7 +522,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port->shadowLCR);
/* Data = 0x03; */
-@@ -1453,32 +1457,32 @@ static int mos7840_write(struct tty_stru
+@@ -1407,32 +1411,32 @@ static int mos7840_write(struct tty_stru
/* status = mos7840_set_uart_reg(port,DIVISOR_LATCH_LSB,Data); */
Data = 0x00;
status = mos7840_get_uart_reg(port, DIVISOR_LATCH_LSB, &Data);
@@ -561,7 +561,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
-@@ -1490,7 +1494,7 @@ static int mos7840_write(struct tty_stru
+@@ -1444,7 +1448,7 @@ static int mos7840_write(struct tty_stru
if (!mos7840_port->busy[i]) {
mos7840_port->busy[i] = 1;
urb = mos7840_port->write_urb_pool[i];
@@ -570,7 +570,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
break;
}
}
-@@ -1525,7 +1529,7 @@ static int mos7840_write(struct tty_stru
+@@ -1479,7 +1483,7 @@ static int mos7840_write(struct tty_stru
mos7840_bulk_out_data_callback, mos7840_port);
data1 = urb->transfer_buffer;
@@ -579,7 +579,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* send it down the pipe */
status = usb_submit_urb(urb, GFP_ATOMIC);
-@@ -1540,7 +1544,7 @@ static int mos7840_write(struct tty_stru
+@@ -1494,7 +1498,7 @@ static int mos7840_write(struct tty_stru
bytes_sent = transfer_size;
mos7840_port->icount.tx += transfer_size;
smp_wmb();
@@ -588,7 +588,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
exit:
return bytes_sent;
-@@ -1559,11 +1563,11 @@ static void mos7840_throttle(struct tty_
+@@ -1513,11 +1517,11 @@ static void mos7840_throttle(struct tty_
int status;
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -602,7 +602,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port = mos7840_get_port_private(port);
-@@ -1571,11 +1575,11 @@ static void mos7840_throttle(struct tty_
+@@ -1525,11 +1529,11 @@ static void mos7840_throttle(struct tty_
return;
if (!mos7840_port->open) {
@@ -616,7 +616,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* if we are implementing XON/XOFF, send the stop character */
if (I_IXOFF(tty)) {
-@@ -1609,7 +1613,7 @@ static void mos7840_unthrottle(struct tt
+@@ -1563,7 +1567,7 @@ static void mos7840_unthrottle(struct tt
struct moschip_port *mos7840_port = mos7840_get_port_private(port);
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -625,7 +625,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -1621,7 +1625,7 @@ static void mos7840_unthrottle(struct tt
+@@ -1575,7 +1579,7 @@ static void mos7840_unthrottle(struct tt
return;
}
@@ -634,7 +634,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* if we are implementing XON/XOFF, send the start character */
if (I_IXOFF(tty)) {
-@@ -1706,7 +1710,7 @@ static int mos7840_tiocmset(struct tty_s
+@@ -1660,7 +1664,7 @@ static int mos7840_tiocmset(struct tty_s
status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, mcr);
if (status < 0) {
@@ -643,7 +643,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return status;
}
-@@ -1775,11 +1779,11 @@ static int mos7840_calc_baud_rate_diviso
+@@ -1729,11 +1733,11 @@ static int mos7840_calc_baud_rate_diviso
custom++;
*divisor = custom;
@@ -657,7 +657,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
#endif
}
-@@ -1805,16 +1809,16 @@ static int mos7840_send_cmd_write_baud_r
+@@ -1759,16 +1763,16 @@ static int mos7840_send_cmd_write_baud_r
port = (struct usb_serial_port *)mos7840_port->port;
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -677,7 +677,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
number = mos7840_port->port->number - mos7840_port->port->serial->minor;
-@@ -1830,7 +1834,7 @@ static int mos7840_send_cmd_write_baud_r
+@@ -1784,7 +1788,7 @@ static int mos7840_send_cmd_write_baud_r
status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
Data);
if (status < 0) {
@@ -686,7 +686,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
#endif
-@@ -1843,7 +1847,7 @@ static int mos7840_send_cmd_write_baud_r
+@@ -1797,7 +1801,7 @@ static int mos7840_send_cmd_write_baud_r
status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
Data);
if (status < 0) {
@@ -695,7 +695,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
#endif
-@@ -1858,14 +1862,14 @@ static int mos7840_send_cmd_write_baud_r
+@@ -1812,14 +1816,14 @@ static int mos7840_send_cmd_write_baud_r
status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset,
&Data);
if (status < 0) {
@@ -712,7 +712,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
/* Calculate the Divisor */
-@@ -1881,11 +1885,11 @@ static int mos7840_send_cmd_write_baud_r
+@@ -1835,11 +1839,11 @@ static int mos7840_send_cmd_write_baud_r
/* Write the divisor */
Data = (unsigned char)(divisor & 0xff);
@@ -726,7 +726,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_set_uart_reg(port, DIVISOR_LATCH_MSB, Data);
/* Disable access to divisor latch */
-@@ -1923,12 +1927,12 @@ static void mos7840_change_port_settings
+@@ -1877,12 +1881,12 @@ static void mos7840_change_port_settings
port = (struct usb_serial_port *)mos7840_port->port;
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -741,7 +741,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -1941,7 +1945,7 @@ static void mos7840_change_port_settings
+@@ -1895,7 +1899,7 @@ static void mos7840_change_port_settings
return;
}
@@ -750,7 +750,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
lData = LCR_BITS_8;
lStop = LCR_STOP_1;
-@@ -2001,7 +2005,7 @@ static void mos7840_change_port_settings
+@@ -1955,7 +1959,7 @@ static void mos7840_change_port_settings
~(LCR_BITS_MASK | LCR_STOP_MASK | LCR_PAR_MASK);
mos7840_port->shadowLCR |= (lData | lParity | lStop);
@@ -759,7 +759,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port->shadowLCR);
/* Disable Interrupts */
Data = 0x00;
-@@ -2043,7 +2047,7 @@ static void mos7840_change_port_settings
+@@ -1997,7 +2001,7 @@ static void mos7840_change_port_settings
if (!baud) {
/* pick a default, any default... */
@@ -768,7 +768,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
baud = 9600;
}
-@@ -2066,7 +2070,7 @@ static void mos7840_change_port_settings
+@@ -2020,7 +2024,7 @@ static void mos7840_change_port_settings
}
wake_up(&mos7840_port->delta_msr_wait);
mos7840_port->delta_msr_cond = 1;
@@ -777,7 +777,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port->shadowLCR);
return;
-@@ -2086,16 +2090,16 @@ static void mos7840_set_termios(struct t
+@@ -2040,16 +2044,16 @@ static void mos7840_set_termios(struct t
unsigned int cflag;
struct usb_serial *serial;
struct moschip_port *mos7840_port;
@@ -797,7 +797,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -2109,7 +2113,7 @@ static void mos7840_set_termios(struct t
+@@ -2063,7 +2067,7 @@ static void mos7840_set_termios(struct t
return;
}
@@ -806,7 +806,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
cflag = tty->termios->c_cflag;
-@@ -2124,7 +2128,7 @@ static void mos7840_set_termios(struct t
+@@ -2078,7 +2082,7 @@ static void mos7840_set_termios(struct t
mos7840_change_port_settings(tty, mos7840_port, old_termios);
if (!mos7840_port->read_urb) {
@@ -815,7 +815,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -2190,7 +2194,7 @@ static int mos7840_set_modem_info(struct
+@@ -2144,7 +2148,7 @@ static int mos7840_set_modem_info(struct
port = (struct usb_serial_port *)mos7840_port->port;
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -824,7 +824,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
-@@ -2235,7 +2239,7 @@ static int mos7840_set_modem_info(struct
+@@ -2189,7 +2193,7 @@ static int mos7840_set_modem_info(struct
status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, Data);
unlock_kernel();
if (status < 0) {
@@ -833,7 +833,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
-@@ -2320,7 +2324,7 @@ static int mos7840_ioctl(struct tty_stru
+@@ -2274,7 +2278,7 @@ static int mos7840_ioctl(struct tty_stru
int mosret = 0;
if (mos7840_port_paranoia_check(port, __func__)) {
@@ -842,7 +842,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return -1;
}
-@@ -2420,9 +2424,8 @@ static int mos7840_calc_num_ports(struct
+@@ -2374,9 +2378,8 @@ static int mos7840_calc_num_ports(struct
{
int mos7840_num_ports = 0;
@@ -854,7 +854,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
(int)serial->interface->altsetting->desc.bNumEndpoints);
if (serial->interface->cur_altsetting->desc.bNumEndpoints == 5) {
mos7840_num_ports = serial->num_ports = 2;
-@@ -2431,7 +2434,7 @@ static int mos7840_calc_num_ports(struct
+@@ -2385,7 +2388,7 @@ static int mos7840_calc_num_ports(struct
serial->num_bulk_out = 4;
mos7840_num_ports = serial->num_ports = 4;
}
@@ -863,7 +863,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return mos7840_num_ports;
}
-@@ -2446,22 +2449,24 @@ static int mos7840_startup(struct usb_se
+@@ -2400,22 +2403,24 @@ static int mos7840_startup(struct usb_se
int i, status;
__u16 Data;
@@ -891,7 +891,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mos7840_port = kzalloc(sizeof(struct moschip_port), GFP_KERNEL);
if (mos7840_port == NULL) {
dev_err(&dev->dev, "%s - Out of memory\n", __func__);
-@@ -2519,10 +2524,10 @@ static int mos7840_startup(struct usb_se
+@@ -2473,10 +2478,10 @@ static int mos7840_startup(struct usb_se
status = mos7840_get_reg_sync(serial->port[i],
mos7840_port->ControlRegOffset, &Data);
if (status < 0) {
@@ -904,7 +904,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Data, status);
Data |= 0x08; /* setting driver done bit */
Data |= 0x04; /* sp1_bit to have cts change reflect in
-@@ -2532,10 +2537,10 @@ static int mos7840_startup(struct usb_se
+@@ -2486,10 +2491,10 @@ static int mos7840_startup(struct usb_se
status = mos7840_set_reg_sync(serial->port[i],
mos7840_port->ControlRegOffset, Data);
if (status < 0) {
@@ -917,7 +917,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
status);
/* Write default values in DCR (i.e 0x01 in DCR0, 0x05 in DCR2
-@@ -2544,48 +2549,48 @@ static int mos7840_startup(struct usb_se
+@@ -2498,48 +2503,48 @@ static int mos7840_startup(struct usb_se
status = mos7840_set_reg_sync(serial->port[i],
(__u16) (mos7840_port->DcrRegOffset + 0), Data);
if (status < 0) {
@@ -976,7 +976,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
status);
/* write value 0x0 to scratchpad register */
-@@ -2593,11 +2598,11 @@ static int mos7840_startup(struct usb_se
+@@ -2547,11 +2552,11 @@ static int mos7840_startup(struct usb_se
status = mos7840_set_uart_reg(serial->port[i],
SCRATCH_PAD_REGISTER, Data);
if (status < 0) {
@@ -990,7 +990,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
status);
/* Zero Length flag register */
-@@ -2608,30 +2613,30 @@ static int mos7840_startup(struct usb_se
+@@ -2562,30 +2567,30 @@ static int mos7840_startup(struct usb_se
status = mos7840_set_reg_sync(serial->port[i],
(__u16) (ZLP_REG1 +
((__u16)mos7840_port->port_num)), Data);
@@ -1027,7 +1027,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
i + 1, status);
}
-@@ -2645,15 +2650,16 @@ static int mos7840_startup(struct usb_se
+@@ -2599,15 +2604,16 @@ static int mos7840_startup(struct usb_se
goto error;
}
}
@@ -1046,7 +1046,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* setting configuration feature to one */
usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
-@@ -2682,10 +2688,10 @@ static void mos7840_shutdown(struct usb_
+@@ -2636,10 +2642,10 @@ static void mos7840_shutdown(struct usb_
int i;
unsigned long flags;
struct moschip_port *mos7840_port;
@@ -1059,7 +1059,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return;
}
-@@ -2709,7 +2715,7 @@ static void mos7840_shutdown(struct usb_
+@@ -2663,7 +2669,7 @@ static void mos7840_shutdown(struct usb_
mos7840_set_port_private(serial->port[i], NULL);
}
@@ -1068,7 +1068,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
-@@ -2760,7 +2766,7 @@ static int __init moschip7840_init(void)
+@@ -2714,7 +2720,7 @@ static int __init moschip7840_init(void)
{
int retval;
@@ -1077,7 +1077,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* Register with the usb serial */
retval = usb_serial_register(&moschip7840_4port_device);
-@@ -2768,14 +2774,14 @@ static int __init moschip7840_init(void)
+@@ -2722,14 +2728,14 @@ static int __init moschip7840_init(void)
if (retval)
goto failed_port_device_register;
@@ -1094,7 +1094,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return 0;
}
usb_serial_deregister(&moschip7840_4port_device);
-@@ -2790,13 +2796,13 @@ failed_port_device_register:
+@@ -2744,13 +2750,13 @@ failed_port_device_register:
static void __exit moschip7840_exit(void)
{
diff --git a/usb/usb-pl2303-usb_serial-implement-sysrq-handling-on-break.patch b/usb/usb-pl2303-usb_serial-implement-sysrq-handling-on-break.patch
index 2a8d4d084edd18..89be2b6e78fd0b 100644
--- a/usb/usb-pl2303-usb_serial-implement-sysrq-handling-on-break.patch
+++ b/usb/usb-pl2303-usb_serial-implement-sysrq-handling-on-break.patch
@@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
-@@ -946,6 +946,8 @@ static void pl2303_update_line_status(st
+@@ -927,6 +927,8 @@ static void pl2303_update_line_status(st
spin_lock_irqsave(&priv->lock, flags);
priv->line_status = data[status_idx];
spin_unlock_irqrestore(&priv->lock, flags);
@@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
wake_up_interruptible(&priv->delta_msr_wait);
}
-@@ -1056,7 +1058,8 @@ static void pl2303_read_bulk_callback(st
+@@ -1037,7 +1039,8 @@ static void pl2303_read_bulk_callback(st
if (line_status & UART_OVERRUN_ERROR)
tty_insert_flip_char(tty, 0, TTY_OVERRUN);
for (i = 0; i < urb->actual_length; ++i)
diff --git a/usb/usb-return-device-strings-in-utf-8.patch b/usb/usb-return-device-strings-in-utf-8.patch
index d6828a15389254..97fd90aac32a78 100644
--- a/usb/usb-return-device-strings-in-utf-8.patch
+++ b/usb/usb-return-device-strings-in-utf-8.patch
@@ -122,7 +122,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (!smallbuf)
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
-@@ -63,6 +63,7 @@ config USB_ARCH_HAS_EHCI
+@@ -64,6 +64,7 @@ config USB_ARCH_HAS_EHCI
config USB
tristate "Support for Host-side USB"
depends on USB_ARCH_HAS_HCD
diff --git a/usb/usb-serial-adding-sierra_release_urb-function.patch b/usb/usb-serial-adding-sierra_release_urb-function.patch
deleted file mode 100644
index 09c0142afca298..00000000000000
--- a/usb/usb-serial-adding-sierra_release_urb-function.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From epasheva@sierrawireless.com Tue Jun 2 13:26:43 2009
-From: Elina Pasheva <epasheva@sierrawireless.com>
-Date: Mon, 1 Jun 2009 11:00:19 -0700
-Subject: USB: serial: adding sierra_release_urb() function
-To: <gregkh@suse.de>
-Cc: <epasheva@sierrawireless.com>, <rfiler@sierrawireless.com>
-Message-ID: <1243879219.6383.2.camel@Linuxdev3>
-
-
-From: Elina Pasheva <epasheva@sierrawireless.com>
-
-- Added function sierra_release_urb() to free an urb and its transfer
- buffer. This function is to be called by sierra_close() in subsequent
- patch.
-- Removed unecessary include file reference and comment
-
-Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/serial/sierra.c | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -29,12 +29,10 @@
- #include <linux/module.h>
- #include <linux/usb.h>
- #include <linux/usb/serial.h>
--#include <linux/usb/ch9.h>
-
- #define SWIMS_USB_REQUEST_SetPower 0x00
- #define SWIMS_USB_REQUEST_SetNmea 0x07
-
--/* per port private data */
- #define N_IN_URB 8
- #define N_OUT_URB 64
- #define IN_BUFLEN 4096
-@@ -328,6 +326,17 @@ static int sierra_tiocmset(struct tty_st
- return sierra_send_setup(tty, port);
- }
-
-+static void sierra_release_urb(struct urb *urb)
-+{
-+ struct usb_serial_port *port;
-+ if (urb) {
-+ port = urb->context;
-+ dev_dbg(&port->dev, "%s: %p\n", __func__, urb);
-+ kfree(urb->transfer_buffer);
-+ usb_free_urb(urb);
-+ }
-+}
-+
- static void sierra_outdat_callback(struct urb *urb)
- {
- struct usb_serial_port *port = urb->context;
diff --git a/usb/usb-serial-adding-sierra_setup_urb-function.patch b/usb/usb-serial-adding-sierra_setup_urb-function.patch
deleted file mode 100644
index 8b7a1094bcdf0b..00000000000000
--- a/usb/usb-serial-adding-sierra_setup_urb-function.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From epasheva@sierrawireless.com Tue Jun 2 13:28:39 2009
-From: Elina Pasheva <epasheva@sierrawireless.com>
-Date: Mon, 1 Jun 2009 11:03:05 -0700
-Subject: USB: serial: adding sierra_setup_urb() function
-To: <gregkh@suse.de>
-Cc: <epasheva@sierrawireless.com>, <rfiler@sierrawireless.com>
-Message-ID: <1243879385.6383.8.camel@Linuxdev3>
-
-
-From: Elina Pasheva <epasheva@sierrawireless.com>
-
-- Added new function sierra_setup_urb() that contains the functionality
- to allocate an urb, fill bulk urb using the supplied memory allocation
- flag and release urb upon error. Added parameter so that the caller
- pass the memory allocation flag for flexibility.
-
-Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/serial/sierra.c | 38 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -618,6 +618,44 @@ static int sierra_submit_rx_urbs(struct
- return err;
- }
-
-+static struct urb *sierra_setup_urb(struct usb_serial *serial, int endpoint,
-+ int dir, void *ctx, int len,
-+ gfp_t mem_flags,
-+ usb_complete_t callback)
-+{
-+ struct urb *urb;
-+ u8 *buf;
-+
-+ if (endpoint == -1)
-+ return NULL;
-+
-+ urb = usb_alloc_urb(0, mem_flags);
-+ if (urb == NULL) {
-+ dev_dbg(&serial->dev->dev, "%s: alloc for endpoint %d failed\n",
-+ __func__, endpoint);
-+ return NULL;
-+ }
-+
-+ buf = kmalloc(len, mem_flags);
-+ if (buf) {
-+ /* Fill URB using supplied data */
-+ usb_fill_bulk_urb(urb, serial->dev,
-+ usb_sndbulkpipe(serial->dev, endpoint) | dir,
-+ buf, len, callback, ctx);
-+
-+ /* debug */
-+ dev_dbg(&serial->dev->dev, "%s %c u : %p d:%p\n", __func__,
-+ dir == USB_DIR_IN ? 'i' : 'o', urb, buf);
-+ } else {
-+ dev_dbg(&serial->dev->dev, "%s %c u:%p d:%p\n", __func__,
-+ dir == USB_DIR_IN ? 'i' : 'o', urb, buf);
-+
-+ sierra_release_urb(urb);
-+ urb = NULL;
-+ }
-+
-+ return urb;
-+}
-
- static int sierra_open(struct tty_struct *tty,
- struct usb_serial_port *port, struct file *filp)
diff --git a/usb/usb-serial-adding-sierra_stop_rx_urbs-function.patch b/usb/usb-serial-adding-sierra_stop_rx_urbs-function.patch
deleted file mode 100644
index dab5d8b30bd754..00000000000000
--- a/usb/usb-serial-adding-sierra_stop_rx_urbs-function.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From epasheva@sierrawireless.com Tue Jun 2 13:27:24 2009
-From: Elina Pasheva <epasheva@sierrawireless.com>
-Date: Mon, 1 Jun 2009 11:01:14 -0700
-Subject: USB: serial: adding sierra_stop_rx_urbs() function
-To: <gregkh@suse.de>
-Cc: <epasheva@sierrawireless.com>, <rfiler@sierrawireless.com>
-Message-ID: <1243879274.6383.4.camel@Linuxdev3>
-
-
-From: Elina Pasheva <epasheva@sierrawireless.com>
-
-- Added function sierra_stop_rx_urbs() that takes care of the release of
- receive and interrupt urbs. This function is to be called by
- sierra_close() whenever an interface is de-activated.
-
-Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/serial/sierra.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -571,6 +571,17 @@ static int sierra_write_room(struct tty_
- return 2048;
- }
-
-+static void sierra_stop_rx_urbs(struct usb_serial_port *port)
-+{
-+ int i;
-+ struct sierra_port_private *portdata = usb_get_serial_port_data(port);
-+
-+ for (i = 0; i < ARRAY_SIZE(portdata->in_urbs); i++)
-+ usb_kill_urb(portdata->in_urbs[i]);
-+
-+ usb_kill_urb(port->interrupt_in_urb);
-+}
-+
- static int sierra_open(struct tty_struct *tty,
- struct usb_serial_port *port, struct file *filp)
- {
diff --git a/usb/usb-serial-adding-sierra_submit_rx_urbs-function.patch b/usb/usb-serial-adding-sierra_submit_rx_urbs-function.patch
deleted file mode 100644
index a4c22ca11c8ae0..00000000000000
--- a/usb/usb-serial-adding-sierra_submit_rx_urbs-function.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From epasheva@sierrawireless.com Tue Jun 2 13:27:51 2009
-From: Elina Pasheva <epasheva@sierrawireless.com>
-Date: Mon, 1 Jun 2009 11:02:15 -0700
-Subject: USB: serial: adding sierra_submit_rx_urbs() function
-To: <gregkh@suse.de>
-Cc: <epasheva@sierrawireless.com>, <rfiler@sierrawireless.com>
-Message-ID: <1243879335.6383.6.camel@Linuxdev3>
-
-From: Elina Pasheva <epasheva@sierrawireless.com>
-
-- Added new function sierra_submit_rx_urbs() that handles the submission
- of receive urbs and interrupt urbs (if any) during the interface
- activation. This function is to be called by sierra_open(). Added a
- second parameter to pass the memory allocation (as suggested by Oliver
- Neukum) so that this function can be used in post_reset() and
- resume().
-
-Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
-
- drivers/usb/serial/sierra.c | 37 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
-
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -582,6 +582,43 @@ static void sierra_stop_rx_urbs(struct u
- usb_kill_urb(port->interrupt_in_urb);
- }
-
-+static int sierra_submit_rx_urbs(struct usb_serial_port *port, gfp_t mem_flags)
-+{
-+ int ok_cnt;
-+ int err = -EINVAL;
-+ int i;
-+ struct urb *urb;
-+ struct sierra_port_private *portdata = usb_get_serial_port_data(port);
-+
-+ ok_cnt = 0;
-+ for (i = 0; i < ARRAY_SIZE(portdata->in_urbs); i++) {
-+ urb = portdata->in_urbs[i];
-+ if (!urb)
-+ continue;
-+ err = usb_submit_urb(urb, mem_flags);
-+ if (err) {
-+ dev_err(&port->dev, "%s: submit urb failed: %d\n",
-+ __func__, err);
-+ } else {
-+ ok_cnt++;
-+ }
-+ }
-+
-+ if (ok_cnt && port->interrupt_in_urb) {
-+ err = usb_submit_urb(port->interrupt_in_urb, mem_flags);
-+ if (err) {
-+ dev_err(&port->dev, "%s: submit intr urb failed: %d\n",
-+ __func__, err);
-+ }
-+ }
-+
-+ if (ok_cnt > 0) /* at least one rx urb submitted */
-+ return 0;
-+ else
-+ return err;
-+}
-+
-+
- static int sierra_open(struct tty_struct *tty,
- struct usb_serial_port *port, struct file *filp)
- {
diff --git a/usb/usb-serial-ftd_sio-implement-sysrq-handling-on-break.patch b/usb/usb-serial-ftd_sio-implement-sysrq-handling-on-break.patch
index 5dc82af2aa670a..33f9a0de21363b 100644
--- a/usb/usb-serial-ftd_sio-implement-sysrq-handling-on-break.patch
+++ b/usb/usb-serial-ftd_sio-implement-sysrq-handling-on-break.patch
@@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -2093,6 +2093,7 @@ static void ftdi_process_read(struct wor
+@@ -2120,6 +2120,7 @@ static void ftdi_process_read(struct wor
if (data[packet_offset+1] & FTDI_RS_BI) {
error_flag = TTY_BREAK;
dbg("BREAK received");
@@ -28,7 +28,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
if (data[packet_offset+1] & FTDI_RS_PE) {
error_flag = TTY_PARITY;
-@@ -2107,8 +2108,11 @@ static void ftdi_process_read(struct wor
+@@ -2134,8 +2135,11 @@ static void ftdi_process_read(struct wor
/* Note that the error flag is duplicated for
every character received since we don't know
which character it applied to */
diff --git a/usb/usb-serial-ftd_sio-usb-move-status-check.patch b/usb/usb-serial-ftd_sio-usb-move-status-check.patch
index 358b02d4064300..796907116c9f4d 100644
--- a/usb/usb-serial-ftd_sio-usb-move-status-check.patch
+++ b/usb/usb-serial-ftd_sio-usb-move-status-check.patch
@@ -23,7 +23,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -1857,11 +1857,6 @@ static void ftdi_write_bulk_callback(str
+@@ -1884,11 +1884,6 @@ static void ftdi_write_bulk_callback(str
dbg("%s - port %d", __func__, port->number);
@@ -35,7 +35,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
priv = usb_get_serial_port_data(port);
if (!priv) {
dbg("%s - bad port private data pointer - exiting", __func__);
-@@ -1879,6 +1874,11 @@ static void ftdi_write_bulk_callback(str
+@@ -1906,6 +1901,11 @@ static void ftdi_write_bulk_callback(str
priv->tx_outstanding_bytes -= countback;
spin_unlock_irqrestore(&priv->tx_lock, flags);
diff --git a/usb/usb-serial-ftdi-add-high-speed-device-support.patch b/usb/usb-serial-ftdi-add-high-speed-device-support.patch
index c7124626ae39dd..1c82d27992537d 100644
--- a/usb/usb-serial-ftdi-add-high-speed-device-support.patch
+++ b/usb/usb-serial-ftdi-add-high-speed-device-support.patch
@@ -46,7 +46,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
speed_t force_baud; /* if non-zero, force the baud rate to
this value */
-@@ -163,6 +164,7 @@ static struct usb_device_id id_table_com
+@@ -164,6 +165,7 @@ static struct usb_device_id id_table_com
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_232RL_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) },
@@ -54,7 +54,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
-@@ -693,6 +695,8 @@ static const char *ftdi_chip_name[] = {
+@@ -694,6 +696,8 @@ static const char *ftdi_chip_name[] = {
[FT232BM] = "FT232BM",
[FT2232C] = "FT2232C",
[FT232RL] = "FT232RL",
@@ -63,7 +63,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -744,6 +748,8 @@ static unsigned short int ftdi_232am_bau
+@@ -745,6 +749,8 @@ static unsigned short int ftdi_232am_bau
static unsigned short int ftdi_232am_baud_to_divisor(int baud);
static __u32 ftdi_232bm_baud_base_to_divisor(int baud, int base);
static __u32 ftdi_232bm_baud_to_divisor(int baud);
@@ -72,7 +72,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static struct usb_serial_driver ftdi_sio_device = {
.driver = {
-@@ -837,6 +843,36 @@ static __u32 ftdi_232bm_baud_to_divisor(
+@@ -839,6 +845,36 @@ static __u32 ftdi_232bm_baud_to_divisor(
return ftdi_232bm_baud_base_to_divisor(baud, 48000000);
}
@@ -109,7 +109,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define set_mctrl(port, set) update_mctrl((port), (set), 0)
#define clear_mctrl(port, clear) update_mctrl((port), 0, (clear))
-@@ -995,6 +1031,19 @@ static __u32 get_ftdi_divisor(struct tty
+@@ -997,6 +1033,19 @@ static __u32 get_ftdi_divisor(struct tty
baud = 9600;
}
break;
@@ -129,7 +129,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
} /* priv->chip_type */
if (div_okay) {
-@@ -1147,14 +1196,29 @@ static void ftdi_determine_type(struct u
+@@ -1197,14 +1246,29 @@ static void ftdi_determine_type(struct u
if (interfaces > 1) {
int inter;
@@ -165,7 +165,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* BM-type devices have a bug where bcdDevice gets set
* to 0x200 when iSerialNumber is 0. */
if (version < 0x500) {
-@@ -1291,7 +1355,9 @@ static int create_sysfs_attrs(struct usb
+@@ -1315,7 +1379,9 @@ static int create_sysfs_attrs(struct usb
if ((!retval) &&
(priv->chip_type == FT232BM ||
priv->chip_type == FT2232C ||
@@ -176,7 +176,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
retval = device_create_file(&port->dev,
&dev_attr_latency_timer);
}
-@@ -1310,7 +1376,9 @@ static void remove_sysfs_attrs(struct us
+@@ -1334,7 +1400,9 @@ static void remove_sysfs_attrs(struct us
device_remove_file(&port->dev, &dev_attr_event_char);
if (priv->chip_type == FT232BM ||
priv->chip_type == FT2232C ||
@@ -187,7 +187,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
device_remove_file(&port->dev, &dev_attr_latency_timer);
}
}
-@@ -2306,6 +2374,8 @@ static int ftdi_tiocmget(struct tty_stru
+@@ -2333,6 +2401,8 @@ static int ftdi_tiocmget(struct tty_stru
case FT232BM:
case FT2232C:
case FT232RL:
diff --git a/usb/usb-serial-sierra-driver-debug-info-visibility-improvement.patch b/usb/usb-serial-sierra-driver-debug-info-visibility-improvement.patch
index bb988b0d0ac648..45aa34cc281ce3 100644
--- a/usb/usb-serial-sierra-driver-debug-info-visibility-improvement.patch
+++ b/usb/usb-serial-sierra-driver-debug-info-visibility-improvement.patch
@@ -19,8 +19,8 @@ Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
- drivers/usb/serial/sierra.c | 56 ++++++++++++++++++++++----------------------
- 1 file changed, 28 insertions(+), 28 deletions(-)
+ drivers/usb/serial/sierra.c | 50 ++++++++++++++++++++++----------------------
+ 1 file changed, 25 insertions(+), 25 deletions(-)
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"
#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
-@@ -42,7 +42,7 @@ static int nmea;
+@@ -46,7 +46,7 @@ struct sierra_iface_info {
static int sierra_set_power_state(struct usb_device *udev, __u16 swiState)
{
int result;
@@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
result = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
SWIMS_USB_REQUEST_SetPower, /* __u8 request */
USB_TYPE_VENDOR, /* __u8 request type */
-@@ -57,7 +57,7 @@ static int sierra_set_power_state(struct
+@@ -61,7 +61,7 @@ static int sierra_set_power_state(struct
static int sierra_vsc_set_nmea(struct usb_device *udev, __u16 enable)
{
int result;
@@ -51,7 +51,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
result = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
SWIMS_USB_REQUEST_SetNmea, /* __u8 request */
USB_TYPE_VENDOR, /* __u8 request type */
-@@ -73,7 +73,7 @@ static int sierra_calc_num_ports(struct
+@@ -77,7 +77,7 @@ static int sierra_calc_num_ports(struct
{
int result;
int *num_ports = usb_get_serial_data(serial);
@@ -60,7 +60,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
result = *num_ports;
-@@ -90,7 +90,7 @@ static int sierra_calc_interface(struct
+@@ -111,7 +111,7 @@ static int sierra_calc_interface(struct
int interface;
struct usb_interface *p_interface;
struct usb_host_interface *p_host_interface;
@@ -69,7 +69,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* Get the interface structure pointer from the serial struct */
p_interface = serial->interface;
-@@ -115,7 +115,7 @@ static int sierra_probe(struct usb_seria
+@@ -136,7 +136,7 @@ static int sierra_probe(struct usb_seria
u8 ifnum;
u8 numendpoints;
@@ -78,25 +78,25 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
num_ports = kmalloc(sizeof(*num_ports), GFP_KERNEL);
if (!num_ports)
-@@ -247,7 +247,7 @@ static int sierra_send_setup(struct tty_
- struct sierra_port_private *portdata;
+@@ -289,7 +289,7 @@ static int sierra_send_setup(struct usb_
__u16 interface = 0;
+ int val = 0;
- dev_dbg(&port->dev, "%s", __func__);
+ dev_dbg(&port->dev, "%s\n", __func__);
portdata = usb_get_serial_port_data(port);
-@@ -297,7 +297,7 @@ static int sierra_send_setup(struct tty_
+@@ -332,7 +332,7 @@ static int sierra_send_setup(struct usb_
static void sierra_set_termios(struct tty_struct *tty,
struct usb_serial_port *port, struct ktermios *old_termios)
{
- dev_dbg(&port->dev, "%s", __func__);
+ dev_dbg(&port->dev, "%s\n", __func__);
tty_termios_copy_hw(tty->termios, old_termios);
- sierra_send_setup(tty, port);
+ sierra_send_setup(port);
}
-@@ -308,7 +308,7 @@ static int sierra_tiocmget(struct tty_st
+@@ -343,7 +343,7 @@ static int sierra_tiocmget(struct tty_st
unsigned int value;
struct sierra_port_private *portdata;
@@ -105,7 +105,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
portdata = usb_get_serial_port_data(port);
value = ((portdata->rts_state) ? TIOCM_RTS : 0) |
-@@ -348,14 +348,14 @@ static void sierra_outdat_callback(struc
+@@ -394,14 +394,14 @@ static void sierra_outdat_callback(struc
int status = urb->status;
unsigned long flags;
@@ -122,7 +122,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_lock_irqsave(&portdata->lock, flags);
--portdata->outstanding_urbs;
-@@ -377,7 +377,7 @@ static int sierra_write(struct tty_struc
+@@ -423,7 +423,7 @@ static int sierra_write(struct tty_struc
portdata = usb_get_serial_port_data(port);
@@ -131,7 +131,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_lock_irqsave(&portdata->lock, flags);
if (portdata->outstanding_urbs > N_OUT_URB) {
-@@ -452,7 +452,7 @@ static void sierra_indat_callback(struct
+@@ -498,7 +498,7 @@ static void sierra_indat_callback(struct
if (status) {
dev_dbg(&port->dev, "%s: nonzero status: %d on"
@@ -140,7 +140,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
} else {
if (urb->actual_length) {
tty = tty_port_tty_get(&port->port);
-@@ -462,7 +462,7 @@ static void sierra_indat_callback(struct
+@@ -508,7 +508,7 @@ static void sierra_indat_callback(struct
tty_kref_put(tty);
} else
dev_dbg(&port->dev, "%s: empty read urb"
@@ -148,8 +148,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ " received\n", __func__);
/* Resubmit urb so we continue receiving */
- if (port->port.count && status != -ESHUTDOWN) {
-@@ -483,8 +483,8 @@ static void sierra_instat_callback(struc
+ if (port->port.count && status != -ESHUTDOWN && status != -EPERM) {
+@@ -529,8 +529,8 @@ static void sierra_instat_callback(struc
struct sierra_port_private *portdata = usb_get_serial_port_data(port);
struct usb_serial *serial = port->serial;
@@ -160,7 +160,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
urb, port, portdata);
if (status == 0) {
-@@ -504,7 +504,7 @@ static void sierra_instat_callback(struc
+@@ -550,7 +550,7 @@ static void sierra_instat_callback(struc
sizeof(struct usb_ctrlrequest));
struct tty_struct *tty;
@@ -169,7 +169,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
signals);
old_dcd_state = portdata->dcd_state;
-@@ -519,12 +519,12 @@ static void sierra_instat_callback(struc
+@@ -565,12 +565,12 @@ static void sierra_instat_callback(struc
tty_hangup(tty);
tty_kref_put(tty);
} else {
@@ -184,7 +184,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* Resubmit urb so we continue receiving IRQ data */
if (status != -ESHUTDOWN) {
-@@ -532,7 +532,7 @@ static void sierra_instat_callback(struc
+@@ -578,7 +578,7 @@ static void sierra_instat_callback(struc
err = usb_submit_urb(urb, GFP_ATOMIC);
if (err)
dev_dbg(&port->dev, "%s: resubmit intr urb "
@@ -193,7 +193,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
}
-@@ -542,7 +542,7 @@ static int sierra_write_room(struct tty_
+@@ -588,7 +588,7 @@ static int sierra_write_room(struct tty_
struct sierra_port_private *portdata = usb_get_serial_port_data(port);
unsigned long flags;
@@ -202,7 +202,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* try to give a good number back based on if we have any free urbs at
* this point in time */
-@@ -568,7 +568,7 @@ static int sierra_open(struct tty_struct
+@@ -729,7 +729,7 @@ static int sierra_open(struct tty_struct
portdata = usb_get_serial_port_data(port);
@@ -211,52 +211,25 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* Set some sane defaults */
portdata->rts_state = 1;
-@@ -580,7 +580,7 @@ static int sierra_open(struct tty_struct
- if (!urb)
- continue;
- if (urb->dev != serial->dev) {
-- dev_dbg(&port->dev, "%s: dev %p != %p",
-+ dev_dbg(&port->dev, "%s: dev %p != %p\n",
- __func__, urb->dev, serial->dev);
- continue;
- }
-@@ -617,7 +617,7 @@ static void sierra_close(struct tty_stru
- struct usb_serial *serial = port->serial;
+@@ -782,7 +782,7 @@ static int sierra_startup(struct usb_ser
struct sierra_port_private *portdata;
-
-- dev_dbg(&port->dev, "%s", __func__);
-+ dev_dbg(&port->dev, "%s\n", __func__);
- portdata = usb_get_serial_port_data(port);
-
- portdata->rts_state = 0;
-@@ -646,7 +646,7 @@ static int sierra_startup(struct usb_ser
int i;
- int j;
- dev_dbg(&serial->dev->dev, "%s", __func__);
+ dev_dbg(&serial->dev->dev, "%s\n", __func__);
/* Set Device mode to D0 */
sierra_set_power_state(serial->dev, 0x0000);
-@@ -661,7 +661,7 @@ static int sierra_startup(struct usb_ser
+@@ -797,7 +797,7 @@ static int sierra_startup(struct usb_ser
portdata = kzalloc(sizeof(*portdata), GFP_KERNEL);
if (!portdata) {
dev_dbg(&port->dev, "%s: kmalloc for "
- "sierra_port_private (%d) failed!.",
-+ "sierra_port_private (%d) failed!\n",
++ "sierra_port_private (%d) failed!.\n",
__func__, i);
return -ENOMEM;
}
-@@ -683,7 +683,7 @@ static int sierra_startup(struct usb_ser
- urb = usb_alloc_urb(0, GFP_KERNEL);
- if (urb == NULL) {
- dev_dbg(&port->dev, "%s: alloc for in "
-- "port failed.", __func__);
-+ "port failed.\n", __func__);
- continue;
- }
- /* Fill URB using supplied data. */
-@@ -705,7 +705,7 @@ static void sierra_shutdown(struct usb_s
+@@ -815,7 +815,7 @@ static void sierra_shutdown(struct usb_s
struct usb_serial_port *port;
struct sierra_port_private *portdata;
diff --git a/usb/usb-serial-sierra-driver-interrupt-urb-resubmit-fix.patch b/usb/usb-serial-sierra-driver-interrupt-urb-resubmit-fix.patch
index 2729814e5fd552..3a92583d639ab2 100644
--- a/usb/usb-serial-sierra-driver-interrupt-urb-resubmit-fix.patch
+++ b/usb/usb-serial-sierra-driver-interrupt-urb-resubmit-fix.patch
@@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
-@@ -510,7 +510,6 @@ static void sierra_instat_callback(struc
+@@ -556,7 +556,6 @@ static void sierra_instat_callback(struc
struct sierra_port_private *portdata = usb_get_serial_port_data(port);
struct usb_serial *serial = port->serial;
@@ -35,7 +35,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dev_dbg(&port->dev, "%s: urb %p port %p has data %p\n", __func__,
urb, port, portdata);
-@@ -554,12 +553,12 @@ static void sierra_instat_callback(struc
+@@ -600,12 +599,12 @@ static void sierra_instat_callback(struc
dev_dbg(&port->dev, "%s: error %d\n", __func__, status);
/* Resubmit urb so we continue receiving IRQ data */
diff --git a/usb/usb-serial-sierra-driver-performance-improvements.patch b/usb/usb-serial-sierra-driver-performance-improvements.patch
index 66c878da5933f1..9a46f80ff98d07 100644
--- a/usb/usb-serial-sierra-driver-performance-improvements.patch
+++ b/usb/usb-serial-sierra-driver-performance-improvements.patch
@@ -33,10 +33,10 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"
#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
-@@ -32,8 +32,8 @@
+@@ -30,8 +30,8 @@
+ #define SWIMS_USB_REQUEST_SetPower 0x00
#define SWIMS_USB_REQUEST_SetNmea 0x07
- /* per port private data */
-#define N_IN_URB 4
-#define N_OUT_URB 4
+#define N_IN_URB 8
diff --git a/usb/usb-serial-sierra-driver-read-path-bug-fix.patch b/usb/usb-serial-sierra-driver-read-path-bug-fix.patch
index f89b2a39df7008..9333669c952c42 100644
--- a/usb/usb-serial-sierra-driver-read-path-bug-fix.patch
+++ b/usb/usb-serial-sierra-driver-read-path-bug-fix.patch
@@ -18,26 +18,27 @@ interface.
Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
---
- drivers/usb/serial/sierra.c | 26 ++++++++++++++++----------
- 1 file changed, 16 insertions(+), 10 deletions(-)
+ drivers/usb/serial/sierra.c | 28 +++++++++++++++++-----------
+ 1 file changed, 17 insertions(+), 11 deletions(-)
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
-@@ -463,33 +463,39 @@ static void sierra_indat_callback(struct
+@@ -509,10 +509,10 @@ static void sierra_indat_callback(struct
unsigned char *data = urb->transfer_buffer;
int status = urb->status;
- dbg("%s: %p", __func__, urb);
-
endpoint = usb_pipeendpoint(urb->pipe);
- port = urb->context;
-
-+ dev_dbg(&port->dev, "%s: %p\n", __func__, urb);
+- port = urb->context;
++ port = urb->context;
+
++ dev_dbg(&port->dev, "%s: %p\n", __func__, urb);
+
if (status) {
dev_dbg(&port->dev, "%s: nonzero status: %d on"
- " endpoint %02x\n", __func__, status, endpoint);
+@@ -520,22 +520,28 @@ static void sierra_indat_callback(struct
} else {
if (urb->actual_length) {
tty = tty_port_tty_get(&port->port);
@@ -55,7 +56,7 @@ Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
" received\n", __func__);
-
- /* Resubmit urb so we continue receiving */
-- if (port->port.count && status != -ESHUTDOWN) {
+- if (port->port.count && status != -ESHUTDOWN && status != -EPERM) {
- err = usb_submit_urb(urb, GFP_ATOMIC);
- if (err)
- dev_err(&port->dev, "resubmit read urb failed."
@@ -64,7 +65,7 @@ Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
}
+
+ /* Resubmit urb so we continue receiving */
-+ if (port->port.count && status != -ESHUTDOWN && status != -ENOENT) {
++ if (port->port.count && status != -ESHUTDOWN && status != -EPERM) {
+ err = usb_submit_urb(urb, GFP_ATOMIC);
+ if (err)
+ dev_err(&port->dev, "resubmit read urb failed."
diff --git a/usb/usb-serial-sierra-driver-sierra_calc_num_ports-fix.patch b/usb/usb-serial-sierra-driver-sierra_calc_num_ports-fix.patch
index dfb6dffbae88e3..26ab69a0a24c37 100644
--- a/usb/usb-serial-sierra-driver-sierra_calc_num_ports-fix.patch
+++ b/usb/usb-serial-sierra-driver-sierra_calc_num_ports-fix.patch
@@ -24,7 +24,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
-@@ -79,18 +79,22 @@ static int sierra_vsc_set_nmea(struct us
+@@ -83,18 +83,22 @@ static int sierra_vsc_set_nmea(struct us
static int sierra_calc_num_ports(struct usb_serial *serial)
{
@@ -55,8 +55,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ return num_ports;
}
- static int sierra_calc_interface(struct usb_serial *serial)
-@@ -119,23 +123,12 @@ static int sierra_probe(struct usb_seria
+ static int is_blacklisted(const u8 ifnum,
+@@ -140,23 +144,12 @@ static int sierra_probe(struct usb_seria
{
int result = 0;
struct usb_device *udev;
@@ -81,7 +81,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/*
* If this interface supports more than 1 alternate
* select the 2nd one
-@@ -147,20 +140,6 @@ static int sierra_probe(struct usb_seria
+@@ -168,20 +161,6 @@ static int sierra_probe(struct usb_seria
usb_set_interface(udev, ifnum, 1);
}
@@ -99,6 +99,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- */
- usb_set_serial_data(serial, (void *)num_ports);
-
- return result;
- }
+ /* ifnum could have changed - by calling usb_set_interface */
+ ifnum = sierra_calc_interface(serial);
diff --git a/usb/usb-serial-sierra-driver-write-path-improvements.patch b/usb/usb-serial-sierra-driver-write-path-improvements.patch
index e8d0af25d618f4..12649ed7842723 100644
--- a/usb/usb-serial-sierra-driver-write-path-improvements.patch
+++ b/usb/usb-serial-sierra-driver-write-path-improvements.patch
@@ -46,7 +46,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
#include <linux/kernel.h>
-@@ -36,6 +39,11 @@
+@@ -34,6 +37,11 @@
#define N_OUT_URB 64
#define IN_BUFLEN 4096
@@ -58,7 +58,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int debug;
static int nmea;
-@@ -373,50 +381,58 @@ static int sierra_write(struct tty_struc
+@@ -419,50 +427,58 @@ static int sierra_write(struct tty_struc
unsigned long flags;
unsigned char *buffer;
struct urb *urb;
@@ -129,7 +129,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
goto error;
}
-@@ -424,7 +440,7 @@ static int sierra_write(struct tty_struc
+@@ -470,7 +486,7 @@ static int sierra_write(struct tty_struc
* really free it when it is finished with it */
usb_free_urb(urb);
@@ -138,7 +138,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
error:
usb_free_urb(urb);
error_no_urb:
-@@ -432,8 +448,10 @@ error_no_urb:
+@@ -478,8 +494,10 @@ error_no_urb:
error_no_buffer:
spin_lock_irqsave(&portdata->lock, flags);
--portdata->outstanding_urbs;
diff --git a/usb/usb-serial-sierra-driver-zero-length-packet-fix.patch b/usb/usb-serial-sierra-driver-zero-length-packet-fix.patch
index f8c64ca80d6c36..b5bacb9cc016d4 100644
--- a/usb/usb-serial-sierra-driver-zero-length-packet-fix.patch
+++ b/usb/usb-serial-sierra-driver-zero-length-packet-fix.patch
@@ -32,7 +32,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define DRIVER_AUTHOR "Kevin Lloyd, Elina Pasheva, Matthew Safar, Rory Filer"
#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
-@@ -428,6 +428,9 @@ static int sierra_write(struct tty_struc
+@@ -474,6 +474,9 @@ static int sierra_write(struct tty_struc
port->bulk_out_endpointAddress),
buffer, writesize, sierra_outdat_callback, port);
diff --git a/usb/usb-serial-usb_debug-usb_generic_serial-implement-sysrq-and-serial-break.patch b/usb/usb-serial-usb_debug-usb_generic_serial-implement-sysrq-and-serial-break.patch
index 2030ec149f391f..6149b30cd0e46c 100644
--- a/usb/usb-serial-usb_debug-usb_generic_serial-implement-sysrq-and-serial-break.patch
+++ b/usb/usb-serial-usb_debug-usb_generic_serial-implement-sysrq-and-serial-break.patch
@@ -39,7 +39,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
-@@ -340,6 +340,7 @@ int usb_serial_generic_write(struct tty_
+@@ -339,6 +339,7 @@ int usb_serial_generic_write(struct tty_
/* no bulk out, so return 0 bytes written */
return 0;
}
@@ -47,7 +47,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int usb_serial_generic_write_room(struct tty_struct *tty)
{
-@@ -352,7 +353,9 @@ int usb_serial_generic_write_room(struct
+@@ -351,7 +352,9 @@ int usb_serial_generic_write_room(struct
spin_lock_irqsave(&port->lock, flags);
if (serial->type->max_in_flight_urbs) {
if (port->urbs_in_flight < serial->type->max_in_flight_urbs)
@@ -58,7 +58,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
} else if (serial->num_bulk_out && !(port->write_urb_busy)) {
room = port->bulk_out_size;
}
-@@ -386,7 +389,8 @@ int usb_serial_generic_chars_in_buffer(s
+@@ -385,7 +388,8 @@ int usb_serial_generic_chars_in_buffer(s
}
@@ -68,7 +68,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct urb *urb = port->read_urb;
struct usb_serial *serial = port->serial;
-@@ -407,25 +411,28 @@ static void resubmit_read_urb(struct usb
+@@ -406,25 +410,28 @@ static void resubmit_read_urb(struct usb
"%s - failed resubmitting read urb, error %d\n",
__func__, result);
}
@@ -106,7 +106,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
void usb_serial_generic_read_bulk_callback(struct urb *urb)
-@@ -516,10 +523,35 @@ void usb_serial_generic_unthrottle(struc
+@@ -515,10 +522,35 @@ void usb_serial_generic_unthrottle(struc
if (was_throttled) {
/* Resume reading from device */
@@ -223,7 +223,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct device dev;
};
#define to_usb_serial_port(d) container_of(d, struct usb_serial_port, dev)
-@@ -299,6 +301,12 @@ extern void usb_serial_generic_unthrottl
+@@ -301,6 +303,12 @@ extern void usb_serial_generic_unthrottl
extern void usb_serial_generic_shutdown(struct usb_serial *serial);
extern int usb_serial_generic_register(int debug);
extern void usb_serial_generic_deregister(void);
diff --git a/usb/usb-sierra-fix-printk-warning.patch b/usb/usb-sierra-fix-printk-warning.patch
index b90eb3e2a8907f..3b483300255f2d 100644
--- a/usb/usb-sierra-fix-printk-warning.patch
+++ b/usb/usb-sierra-fix-printk-warning.patch
@@ -24,7 +24,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
-@@ -369,7 +369,7 @@ static int sierra_write(struct tty_struc
+@@ -415,7 +415,7 @@ static int sierra_write(struct tty_struc
portdata = usb_get_serial_port_data(port);
diff --git a/usb/usb-support-for-cdc-acm-of-single-interface-devices.patch b/usb/usb-support-for-cdc-acm-of-single-interface-devices.patch
index 5986add158cc7c..d83641238826be 100644
--- a/usb/usb-support-for-cdc-acm-of-single-interface-devices.patch
+++ b/usb/usb-support-for-cdc-acm-of-single-interface-devices.patch
@@ -18,13 +18,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
- drivers/usb/class/cdc-acm.c | 63 +++++++++++++++++++++++++++++++++++++-------
+ drivers/usb/class/cdc-acm.c | 68 ++++++++++++++++++++++++++++++++++++--------
drivers/usb/class/cdc-acm.h | 2 +
- 2 files changed, 56 insertions(+), 9 deletions(-)
+ 2 files changed, 58 insertions(+), 12 deletions(-)
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
-@@ -891,9 +891,9 @@ static int acm_probe (struct usb_interfa
+@@ -937,9 +937,9 @@ static int acm_probe(struct usb_interfac
int buflen = intf->altsetting->extralen;
struct usb_interface *control_interface;
struct usb_interface *data_interface;
@@ -37,7 +37,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct usb_device *usb_dev = interface_to_usbdev(intf);
struct acm *acm;
int minor;
-@@ -906,6 +906,7 @@ static int acm_probe (struct usb_interfa
+@@ -952,6 +952,7 @@ static int acm_probe(struct usb_interfac
unsigned long quirks;
int num_rx_buf;
int i;
@@ -45,11 +45,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* normal quirks */
quirks = (unsigned long)id->driver_info;
-@@ -989,8 +990,15 @@ next_desc:
+@@ -1033,9 +1034,15 @@ next_desc:
data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
control_interface = intf;
} else {
-- dev_dbg(&intf->dev,"No union descriptor, giving up\n");
+- dev_dbg(&intf->dev,
+- "No union descriptor, giving up\n");
- return -ENODEV;
+ if (intf->cur_altsetting->desc.bNumEndpoints != 3) {
+ dev_dbg(&intf->dev,"No union descriptor, giving up\n");
@@ -63,9 +64,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
} else {
control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
-@@ -1004,6 +1012,36 @@ next_desc:
+@@ -1049,6 +1056,36 @@ next_desc:
if (data_interface_num != call_interface_num)
- dev_dbg(&intf->dev,"Separate call control interface. That is not fully supported.\n");
+ dev_dbg(&intf->dev, "Separate call control interface. That is not fully supported.\n");
+ if (control_interface == data_interface) {
+ /* some broken devices designed for windows work this way */
@@ -100,20 +101,21 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
skip_normal_probe:
/*workaround for switched interfaces */
-@@ -1021,10 +1059,10 @@ skip_normal_probe:
+@@ -1068,10 +1105,11 @@ skip_normal_probe:
}
/* Accept probe requests only for the control interface */
- if (intf != control_interface)
+ if (!combined_interfaces && intf != control_interface)
return -ENODEV;
-
+
- if (usb_interface_claimed(data_interface)) { /* valid in this context */
-+ if (!combined_interfaces && usb_interface_claimed(data_interface)) { /* valid in this context */
- dev_dbg(&intf->dev,"The data interface isn't available\n");
++ if (!combined_interfaces && usb_interface_claimed(data_interface)) {
++ /* valid in this context */
+ dev_dbg(&intf->dev, "The data interface isn't available\n");
return -EBUSY;
}
-@@ -1048,6 +1086,7 @@ skip_normal_probe:
+@@ -1095,6 +1133,7 @@ skip_normal_probe:
epread = epwrite;
epwrite = t;
}
@@ -121,10 +123,10 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dbg("interfaces are valid");
for (minor = 0; minor < ACM_TTY_MINORS && acm_table[minor]; minor++);
-@@ -1063,12 +1102,15 @@ skip_normal_probe:
-
+@@ -1112,12 +1151,15 @@ skip_normal_probe:
ctrlsize = le16_to_cpu(epctrl->wMaxPacketSize);
- readsize = le16_to_cpu(epread->wMaxPacketSize)* ( quirks == SINGLE_RX_URB ? 1 : 2);
+ readsize = le16_to_cpu(epread->wMaxPacketSize) *
+ (quirks == SINGLE_RX_URB ? 1 : 2);
+ acm->combined_interfaces = combined_interfaces;
acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize) * 20;
acm->control = control_interface;
@@ -137,19 +139,22 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
acm->ctrlsize = ctrlsize;
acm->readsize = readsize;
acm->rx_buflimit = num_rx_buf;
-@@ -1165,7 +1207,9 @@ skip_normal_probe:
+@@ -1223,9 +1265,10 @@ skip_normal_probe:
skip_countries:
- usb_fill_int_urb(acm->ctrlurb, usb_dev, usb_rcvintpipe(usb_dev, epctrl->bEndpointAddress),
-- acm->ctrl_buffer, ctrlsize, acm_ctrl_irq, acm, epctrl->bInterval);
+ usb_fill_int_urb(acm->ctrlurb, usb_dev,
+- usb_rcvintpipe(usb_dev, epctrl->bEndpointAddress),
+- acm->ctrl_buffer, ctrlsize, acm_ctrl_irq, acm,
+- epctrl->bInterval);
++ usb_rcvintpipe(usb_dev, epctrl->bEndpointAddress),
+ acm->ctrl_buffer, ctrlsize, acm_ctrl_irq, acm,
+ /* works around buggy devices */
+ epctrl->bInterval ? epctrl->bInterval : 0xff);
acm->ctrlurb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
acm->ctrlurb->transfer_dma = acm->ctrl_dma;
-@@ -1250,7 +1294,8 @@ static void acm_disconnect(struct usb_in
- usb_buffer_free(usb_dev, acm->ctrlsize, acm->ctrl_buffer, acm->ctrl_dma);
+@@ -1312,7 +1355,8 @@ static void acm_disconnect(struct usb_in
+ acm->ctrl_dma);
acm_read_buffers_free(acm);
- usb_driver_release_interface(&acm_driver, intf == acm->control ?
@@ -157,10 +162,10 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ usb_driver_release_interface(&acm_driver, intf == acm->control ?
acm->data : acm->control);
- if (!acm->used) {
+ if (acm->port.count == 0) {
--- a/drivers/usb/class/cdc-acm.h
+++ b/drivers/usb/class/cdc-acm.h
-@@ -126,6 +126,7 @@ struct acm {
+@@ -125,6 +125,7 @@ struct acm {
unsigned char clocal; /* termios CLOCAL */
unsigned int ctrl_caps; /* control capabilities from the class specific header */
unsigned int susp_count; /* number of suspended interfaces */
@@ -168,7 +173,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct acm_wb *delayed_wb; /* write queued for a device about to be woken */
};
-@@ -134,3 +135,4 @@ struct acm {
+@@ -133,3 +134,4 @@ struct acm {
/* constants describing various quirks and errors */
#define NO_UNION_NORMAL 1
#define SINGLE_RX_URB 2
diff --git a/usb/usb-usb-serial-call-port_probe-and-port_remove-at-the-right-times.patch b/usb/usb-usb-serial-call-port_probe-and-port_remove-at-the-right-times.patch
index c212843e83d48b..4f03dc4c441a1a 100644
--- a/usb/usb-usb-serial-call-port_probe-and-port_remove-at-the-right-times.patch
+++ b/usb/usb-usb-serial-call-port_probe-and-port_remove-at-the-right-times.patch
@@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dev_info(dev, "%s converter now disconnected from ttyUSB%d\n",
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
-@@ -995,10 +995,15 @@ int usb_serial_probe(struct usb_interfac
+@@ -1046,10 +1046,15 @@ int usb_serial_probe(struct usb_interfac
dev_set_name(&port->dev, "ttyUSB%d", port->number);
dbg ("%s - registering %s", __func__, dev_name(&port->dev));
@@ -97,7 +97,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
usb_serial_console_init(debug, minor);
-@@ -1076,7 +1081,22 @@ void usb_serial_disconnect(struct usb_in
+@@ -1130,7 +1135,22 @@ void usb_serial_disconnect(struct usb_in
}
kill_traffic(port);
cancel_work_sync(&port->work);
diff --git a/usb/usb-usb-serial-replace-shutdown-with-disconnect-release.patch b/usb/usb-usb-serial-replace-shutdown-with-disconnect-release.patch
index 3e7edc4b3299ed..78ca9d36bbaff9 100644
--- a/usb/usb-usb-serial-replace-shutdown-with-disconnect-release.patch
+++ b/usb/usb-usb-serial-replace-shutdown-with-disconnect-release.patch
@@ -50,7 +50,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/option.c | 17 +++++++++----
drivers/usb/serial/oti6858.c | 7 ++---
drivers/usb/serial/pl2303.c | 5 +---
- drivers/usb/serial/sierra.c | 28 +++++++++++++++++++---
+ drivers/usb/serial/sierra.c | 4 +--
drivers/usb/serial/spcp8x5.c | 5 +---
drivers/usb/serial/symbolserial.c | 14 ++++++++---
drivers/usb/serial/ti_usb_3410_5052.c | 10 +++-----
@@ -58,7 +58,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/visor.c | 13 ++++------
drivers/usb/serial/whiteheat.c | 6 ++--
include/linux/usb/serial.h | 12 ++++++---
- 37 files changed, 319 insertions(+), 200 deletions(-)
+ 37 files changed, 297 insertions(+), 198 deletions(-)
--- a/drivers/staging/uc2322/aten2011.c
+++ b/drivers/staging/uc2322/aten2011.c
@@ -118,8 +118,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void belkin_sa_release(struct usb_serial *serial);
static int belkin_sa_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void belkin_sa_close(struct tty_struct *tty,
-@@ -143,7 +143,7 @@ static struct usb_serial_driver belkin_d
+ static void belkin_sa_close(struct usb_serial_port *port);
+@@ -142,7 +142,7 @@ static struct usb_serial_driver belkin_d
.tiocmget = belkin_sa_tiocmget,
.tiocmset = belkin_sa_tiocmset,
.attach = belkin_sa_startup,
@@ -128,7 +128,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -198,14 +198,13 @@ static int belkin_sa_startup(struct usb_
+@@ -197,14 +197,13 @@ static int belkin_sa_startup(struct usb_
}
@@ -146,30 +146,30 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
priv = usb_get_serial_port_data(serial->port[i]);
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
-@@ -51,7 +51,7 @@ static int cp2101_tiocmset_port(struct u
+@@ -50,7 +50,7 @@ static int cp210x_tiocmset_port(struct u
unsigned int, unsigned int);
- static void cp2101_break_ctl(struct tty_struct *, int);
- static int cp2101_startup(struct usb_serial *);
--static void cp2101_shutdown(struct usb_serial *);
-+static void cp2101_disconnect(struct usb_serial *);
+ static void cp210x_break_ctl(struct tty_struct *, int);
+ static int cp210x_startup(struct usb_serial *);
+-static void cp210x_shutdown(struct usb_serial *);
++static void cp210x_disconnect(struct usb_serial *);
static int debug;
-@@ -131,7 +131,7 @@ static struct usb_serial_driver cp2101_d
- .tiocmget = cp2101_tiocmget,
- .tiocmset = cp2101_tiocmset,
- .attach = cp2101_startup,
-- .shutdown = cp2101_shutdown,
-+ .disconnect = cp2101_disconnect,
+@@ -137,7 +137,7 @@ static struct usb_serial_driver cp210x_d
+ .tiocmget = cp210x_tiocmget,
+ .tiocmset = cp210x_tiocmset,
+ .attach = cp210x_startup,
+- .shutdown = cp210x_shutdown,
++ .disconnect = cp210x_disconnect,
};
/* Config request types */
-@@ -773,7 +773,7 @@ static int cp2101_startup(struct usb_ser
+@@ -792,7 +792,7 @@ static int cp210x_startup(struct usb_ser
return 0;
}
--static void cp2101_shutdown(struct usb_serial *serial)
-+static void cp2101_disconnect(struct usb_serial *serial)
+-static void cp210x_shutdown(struct usb_serial *serial)
++static void cp210x_disconnect(struct usb_serial *serial)
{
int i;
@@ -184,8 +184,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void cyberjack_release(struct usb_serial *serial);
static int cyberjack_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void cyberjack_close(struct tty_struct *tty,
-@@ -95,7 +96,8 @@ static struct usb_serial_driver cyberjac
+ static void cyberjack_close(struct usb_serial_port *port);
+@@ -94,7 +95,8 @@ static struct usb_serial_driver cyberjac
.id_table = id_table,
.num_ports = 1,
.attach = cyberjack_startup,
@@ -195,7 +195,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.open = cyberjack_open,
.close = cyberjack_close,
.write = cyberjack_write,
-@@ -149,17 +151,25 @@ static int cyberjack_startup(struct usb_
+@@ -148,17 +150,25 @@ static int cyberjack_startup(struct usb_
return 0;
}
@@ -234,7 +234,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void cypress_release(struct usb_serial *serial);
static int cypress_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void cypress_close(struct tty_struct *tty,
+ static void cypress_close(struct usb_serial_port *port);
@@ -215,7 +215,7 @@ static struct usb_serial_driver cypress_
.id_table = id_table_earthmate,
.num_ports = 1,
@@ -243,8 +243,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ .release = cypress_release,
.open = cypress_open,
.close = cypress_close,
- .write = cypress_write,
-@@ -241,7 +241,7 @@ static struct usb_serial_driver cypress_
+ .dtr_rts = cypress_dtr_rts,
+@@ -242,7 +242,7 @@ static struct usb_serial_driver cypress_
.id_table = id_table_cyphidcomrs232,
.num_ports = 1,
.attach = cypress_hidcom_startup,
@@ -252,8 +252,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ .release = cypress_release,
.open = cypress_open,
.close = cypress_close,
- .write = cypress_write,
-@@ -267,7 +267,7 @@ static struct usb_serial_driver cypress_
+ .dtr_rts = cypress_dtr_rts,
+@@ -269,7 +269,7 @@ static struct usb_serial_driver cypress_
.id_table = id_table_nokiaca42v2,
.num_ports = 1,
.attach = cypress_ca42v2_startup,
@@ -261,8 +261,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ .release = cypress_release,
.open = cypress_open,
.close = cypress_close,
- .write = cypress_write,
-@@ -613,7 +613,7 @@ static int cypress_ca42v2_startup(struct
+ .dtr_rts = cypress_dtr_rts,
+@@ -616,7 +616,7 @@ static int cypress_ca42v2_startup(struct
} /* cypress_ca42v2_startup */
@@ -271,7 +271,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct cypress_private *priv;
-@@ -626,7 +626,6 @@ static void cypress_shutdown(struct usb_
+@@ -629,7 +629,6 @@ static void cypress_shutdown(struct usb_
if (priv) {
cypress_buf_free(priv->buf);
kfree(priv);
@@ -281,8 +281,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/digi_acceleport.c
+++ b/drivers/usb/serial/digi_acceleport.c
-@@ -460,7 +460,8 @@ static void digi_close(struct tty_struct
- struct file *filp);
+@@ -460,7 +460,8 @@ static int digi_carrier_raised(struct us
+ static void digi_dtr_rts(struct usb_serial_port *port, int on);
static int digi_startup_device(struct usb_serial *serial);
static int digi_startup(struct usb_serial *serial);
-static void digi_shutdown(struct usb_serial *serial);
@@ -291,7 +291,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static void digi_read_bulk_callback(struct urb *urb);
static int digi_read_inb_callback(struct urb *urb);
static int digi_read_oob_callback(struct urb *urb);
-@@ -522,7 +523,8 @@ static struct usb_serial_driver digi_acc
+@@ -524,7 +525,8 @@ static struct usb_serial_driver digi_acc
.tiocmget = digi_tiocmget,
.tiocmset = digi_tiocmset,
.attach = digi_startup,
@@ -301,7 +301,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
static struct usb_serial_driver digi_acceleport_4_device = {
-@@ -548,7 +550,8 @@ static struct usb_serial_driver digi_acc
+@@ -550,7 +552,8 @@ static struct usb_serial_driver digi_acc
.tiocmget = digi_tiocmget,
.tiocmset = digi_tiocmset,
.attach = digi_startup,
@@ -311,7 +311,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -1589,16 +1592,23 @@ static int digi_startup(struct usb_seria
+@@ -1556,16 +1559,23 @@ static int digi_startup(struct usb_seria
}
@@ -339,7 +339,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* number of regular ports + 1 for the out-of-band port */
--- a/drivers/usb/serial/empeg.c
+++ b/drivers/usb/serial/empeg.c
-@@ -91,7 +91,6 @@ static int empeg_chars_in_buffer(struct
+@@ -90,7 +90,6 @@ static int empeg_chars_in_buffer(struct
static void empeg_throttle(struct tty_struct *tty);
static void empeg_unthrottle(struct tty_struct *tty);
static int empeg_startup(struct usb_serial *serial);
@@ -347,7 +347,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static void empeg_set_termios(struct tty_struct *tty,
struct usb_serial_port *port, struct ktermios *old_termios);
static void empeg_write_bulk_callback(struct urb *urb);
-@@ -125,7 +124,6 @@ static struct usb_serial_driver empeg_de
+@@ -124,7 +123,6 @@ static struct usb_serial_driver empeg_de
.throttle = empeg_throttle,
.unthrottle = empeg_unthrottle,
.attach = empeg_startup,
@@ -355,7 +355,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.set_termios = empeg_set_termios,
.write = empeg_write,
.write_room = empeg_write_room,
-@@ -429,12 +427,6 @@ static int empeg_startup(struct usb_ser
+@@ -427,12 +425,6 @@ static int empeg_startup(struct usb_ser
}
@@ -370,7 +370,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -719,7 +719,6 @@ static const char *ftdi_chip_name[] = {
+@@ -720,7 +720,6 @@ static const char *ftdi_chip_name[] = {
/* function prototypes for a FTDI serial converter */
static int ftdi_sio_probe(struct usb_serial *serial,
const struct usb_device_id *id);
@@ -378,7 +378,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int ftdi_sio_port_probe(struct usb_serial_port *port);
static int ftdi_sio_port_remove(struct usb_serial_port *port);
static int ftdi_open(struct tty_struct *tty,
-@@ -777,7 +776,6 @@ static struct usb_serial_driver ftdi_sio
+@@ -779,7 +778,6 @@ static struct usb_serial_driver ftdi_sio
.ioctl = ftdi_ioctl,
.set_termios = ftdi_set_termios,
.break_ctl = ftdi_break_ctl,
@@ -386,7 +386,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -1569,18 +1567,6 @@ static int ftdi_mtxorb_hack_setup(struct
+@@ -1594,18 +1592,6 @@ static int ftdi_mtxorb_hack_setup(struct
return 0;
}
@@ -407,7 +407,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct ftdi_private *priv = container_of(k, struct ftdi_private, kref);
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
-@@ -1476,7 +1476,7 @@ static int garmin_attach(struct usb_seri
+@@ -1475,7 +1475,7 @@ static int garmin_attach(struct usb_seri
}
@@ -416,7 +416,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct usb_serial_port *port = serial->port[0];
struct garmin_data *garmin_data_p = usb_get_serial_port_data(port);
-@@ -1485,8 +1485,17 @@ static void garmin_shutdown(struct usb_s
+@@ -1484,8 +1484,17 @@ static void garmin_shutdown(struct usb_s
usb_kill_urb(port->interrupt_in_urb);
del_timer_sync(&garmin_data_p->timer);
@@ -435,7 +435,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
-@@ -1505,7 +1514,8 @@ static struct usb_serial_driver garmin_d
+@@ -1504,7 +1513,8 @@ static struct usb_serial_driver garmin_d
.throttle = garmin_throttle,
.unthrottle = garmin_unthrottle,
.attach = garmin_attach,
@@ -457,7 +457,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.throttle = usb_serial_generic_throttle,
.unthrottle = usb_serial_generic_unthrottle,
.resume = usb_serial_generic_resume,
-@@ -552,7 +553,7 @@ int usb_serial_handle_break(struct usb_s
+@@ -551,7 +552,7 @@ int usb_serial_handle_break(struct usb_s
}
EXPORT_SYMBOL_GPL(usb_serial_handle_break);
@@ -466,7 +466,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i;
-@@ -563,3 +564,7 @@ void usb_serial_generic_shutdown(struct
+@@ -562,3 +563,7 @@ void usb_serial_generic_shutdown(struct
generic_cleanup(serial->port[i]);
}
@@ -476,7 +476,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+}
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
-@@ -225,7 +225,8 @@ static int edge_tiocmget(struct tty_str
+@@ -224,7 +224,8 @@ static int edge_tiocmget(struct tty_str
static int edge_tiocmset(struct tty_struct *tty, struct file *file,
unsigned int set, unsigned int clear);
static int edge_startup(struct usb_serial *serial);
@@ -486,7 +486,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#include "io_tables.h" /* all of the devices that this driver supports */
-@@ -3195,21 +3196,16 @@ static int edge_startup(struct usb_seria
+@@ -3193,21 +3194,16 @@ static int edge_startup(struct usb_seria
/****************************************************************************
@@ -510,7 +510,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* free up our endpoint stuff */
if (edge_serial->is_epic) {
usb_kill_urb(edge_serial->interrupt_read_urb);
-@@ -3220,9 +3216,24 @@ static void edge_shutdown(struct usb_ser
+@@ -3218,9 +3214,24 @@ static void edge_shutdown(struct usb_ser
usb_free_urb(edge_serial->read_urb);
kfree(edge_serial->bulk_in_buffer);
}
@@ -580,7 +580,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.tiocmget = edge_tiocmget,
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
-@@ -2664,7 +2664,7 @@ cleanup:
+@@ -2663,7 +2663,7 @@ cleanup:
return -ENOMEM;
}
@@ -589,7 +589,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i;
struct edgeport_port *edge_port;
-@@ -2674,12 +2674,22 @@ static void edge_shutdown(struct usb_ser
+@@ -2673,12 +2673,22 @@ static void edge_shutdown(struct usb_ser
for (i = 0; i < serial->num_ports; ++i) {
edge_port = usb_get_serial_port_data(serial->port[i]);
edge_remove_sysfs_attrs(edge_port->port);
@@ -614,7 +614,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
-@@ -2916,7 +2926,8 @@ static struct usb_serial_driver edgeport
+@@ -2915,7 +2925,8 @@ static struct usb_serial_driver edgeport
.throttle = edge_throttle,
.unthrottle = edge_unthrottle,
.attach = edge_startup,
@@ -624,7 +624,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.port_probe = edge_create_sysfs_attrs,
.ioctl = edge_ioctl,
.set_termios = edge_set_termios,
-@@ -2945,7 +2956,8 @@ static struct usb_serial_driver edgeport
+@@ -2944,7 +2955,8 @@ static struct usb_serial_driver edgeport
.throttle = edge_throttle,
.unthrottle = edge_unthrottle,
.attach = edge_startup,
@@ -636,15 +636,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.set_termios = edge_set_termios,
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
-@@ -80,7 +80,6 @@ static void ipaq_close(struct tty_struct
- struct usb_serial_port *port, struct file *filp);
+@@ -79,7 +79,6 @@ static int ipaq_open(struct tty_struct
+ static void ipaq_close(struct usb_serial_port *port);
static int ipaq_calc_num_ports(struct usb_serial *serial);
static int ipaq_startup(struct usb_serial *serial);
-static void ipaq_shutdown(struct usb_serial *serial);
static int ipaq_write(struct tty_struct *tty, struct usb_serial_port *port,
const unsigned char *buf, int count);
static int ipaq_write_bulk(struct usb_serial_port *port,
-@@ -577,7 +576,6 @@ static struct usb_serial_driver ipaq_dev
+@@ -576,7 +575,6 @@ static struct usb_serial_driver ipaq_dev
.close = ipaq_close,
.attach = ipaq_startup,
.calc_num_ports = ipaq_calc_num_ports,
@@ -652,7 +652,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.write = ipaq_write,
.write_room = ipaq_write_room,
.chars_in_buffer = ipaq_chars_in_buffer,
-@@ -992,11 +990,6 @@ static int ipaq_startup(struct usb_seria
+@@ -990,11 +988,6 @@ static int ipaq_startup(struct usb_seria
return usb_reset_configuration(serial->dev);
}
@@ -666,7 +666,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int retval;
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
-@@ -122,8 +122,8 @@ static int iuu_startup(struct usb_serial
+@@ -121,8 +121,8 @@ static int iuu_startup(struct usb_serial
return 0;
}
@@ -677,9 +677,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct usb_serial_port *port = serial->port[0];
struct iuu_private *priv = usb_get_serial_port_data(port);
-@@ -1176,7 +1176,7 @@ static struct usb_serial_driver iuu_devi
- .tiocmget = iuu_tiocmget,
+@@ -1202,7 +1202,7 @@ static struct usb_serial_driver iuu_devi
.tiocmset = iuu_tiocmset,
+ .set_termios = iuu_set_termios,
.attach = iuu_startup,
- .shutdown = iuu_shutdown,
+ .release = iuu_release,
@@ -688,7 +688,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int __init iuu_init(void)
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
-@@ -2682,7 +2682,7 @@ static int keyspan_startup(struct usb_se
+@@ -2689,7 +2689,7 @@ static int keyspan_startup(struct usb_se
return 0;
}
@@ -697,7 +697,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i, j;
struct usb_serial_port *port;
-@@ -2722,6 +2722,17 @@ static void keyspan_shutdown(struct usb_
+@@ -2729,6 +2729,17 @@ static void keyspan_shutdown(struct usb_
usb_free_urb(p_priv->out_urbs[j]);
}
}
@@ -717,9 +717,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kfree(s_priv);
--- a/drivers/usb/serial/keyspan.h
+++ b/drivers/usb/serial/keyspan.h
-@@ -42,7 +42,8 @@ static void keyspan_close (struct tty_s
- struct usb_serial_port *port,
- struct file *filp);
+@@ -41,7 +41,8 @@ static int keyspan_open (struct tty_st
+ static void keyspan_close (struct usb_serial_port *port);
+ static void keyspan_dtr_rts (struct usb_serial_port *port, int on);
static int keyspan_startup (struct usb_serial *serial);
-static void keyspan_shutdown (struct usb_serial *serial);
+static void keyspan_disconnect (struct usb_serial *serial);
@@ -737,7 +737,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
static struct usb_serial_driver keyspan_2port_device = {
-@@ -589,7 +591,8 @@ static struct usb_serial_driver keyspan_
+@@ -590,7 +592,8 @@ static struct usb_serial_driver keyspan_
.tiocmget = keyspan_tiocmget,
.tiocmset = keyspan_tiocmset,
.attach = keyspan_startup,
@@ -747,7 +747,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
static struct usb_serial_driver keyspan_4port_device = {
-@@ -609,7 +612,8 @@ static struct usb_serial_driver keyspan_
+@@ -611,7 +614,8 @@ static struct usb_serial_driver keyspan_
.tiocmget = keyspan_tiocmget,
.tiocmset = keyspan_tiocmset,
.attach = keyspan_startup,
@@ -759,7 +759,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#endif
--- a/drivers/usb/serial/keyspan_pda.c
+++ b/drivers/usb/serial/keyspan_pda.c
-@@ -795,7 +795,7 @@ static int keyspan_pda_startup(struct us
+@@ -809,7 +809,7 @@ static int keyspan_pda_startup(struct us
return 0;
}
@@ -768,7 +768,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
dbg("%s", __func__);
-@@ -853,7 +853,7 @@ static struct usb_serial_driver keyspan_
+@@ -869,7 +869,7 @@ static struct usb_serial_driver keyspan_
.tiocmget = keyspan_pda_tiocmget,
.tiocmset = keyspan_pda_tiocmset,
.attach = keyspan_pda_startup,
@@ -788,8 +788,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void klsi_105_release(struct usb_serial *serial);
static int klsi_105_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void klsi_105_close(struct tty_struct *tty,
-@@ -132,7 +133,8 @@ static struct usb_serial_driver kl5kusb1
+ static void klsi_105_close(struct usb_serial_port *port);
+@@ -131,7 +132,8 @@ static struct usb_serial_driver kl5kusb1
.tiocmget = klsi_105_tiocmget,
.tiocmset = klsi_105_tiocmset,
.attach = klsi_105_startup,
@@ -799,7 +799,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.throttle = klsi_105_throttle,
.unthrottle = klsi_105_unthrottle,
};
-@@ -316,7 +318,7 @@ err_cleanup:
+@@ -315,7 +317,7 @@ err_cleanup:
} /* klsi_105_startup */
@@ -808,7 +808,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i;
-@@ -326,33 +328,36 @@ static void klsi_105_shutdown(struct usb
+@@ -325,33 +327,36 @@ static void klsi_105_shutdown(struct usb
for (i = 0; i < serial->num_ports; ++i) {
struct klsi_105_private *priv =
usb_get_serial_port_data(serial->port[i]);
@@ -869,8 +869,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void kobil_release(struct usb_serial *serial);
static int kobil_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void kobil_close(struct tty_struct *tty, struct usb_serial_port *port,
-@@ -118,7 +118,7 @@ static struct usb_serial_driver kobil_de
+ static void kobil_close(struct usb_serial_port *port);
+@@ -117,7 +117,7 @@ static struct usb_serial_driver kobil_de
.id_table = id_table,
.num_ports = 1,
.attach = kobil_startup,
@@ -879,7 +879,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.ioctl = kobil_ioctl,
.set_termios = kobil_set_termios,
.tiocmget = kobil_tiocmget,
-@@ -202,17 +202,13 @@ static int kobil_startup(struct usb_seri
+@@ -201,17 +201,13 @@ static int kobil_startup(struct usb_seri
}
@@ -891,7 +891,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- for (i = 0; i < serial->num_ports; ++i) {
- while (serial->port[i]->port.count > 0)
-- kobil_close(NULL, serial->port[i], NULL);
+- kobil_close(serial->port[i]);
+ for (i = 0; i < serial->num_ports; ++i)
kfree(usb_get_serial_port_data(serial->port[i]));
- usb_set_serial_port_data(serial->port[i], NULL);
@@ -909,8 +909,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void mct_u232_release(struct usb_serial *serial);
static int mct_u232_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void mct_u232_close(struct tty_struct *tty,
-@@ -148,7 +148,7 @@ static struct usb_serial_driver mct_u232
+ static void mct_u232_close(struct usb_serial_port *port);
+@@ -149,7 +149,7 @@ static struct usb_serial_driver mct_u232
.tiocmget = mct_u232_tiocmget,
.tiocmset = mct_u232_tiocmset,
.attach = mct_u232_startup,
@@ -919,7 +919,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -406,7 +406,7 @@ static int mct_u232_startup(struct usb_s
+@@ -407,7 +407,7 @@ static int mct_u232_startup(struct usb_s
} /* mct_u232_startup */
@@ -928,7 +928,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct mct_u232_private *priv;
int i;
-@@ -416,12 +416,9 @@ static void mct_u232_shutdown(struct usb
+@@ -417,12 +417,9 @@ static void mct_u232_shutdown(struct usb
for (i = 0; i < serial->num_ports; ++i) {
/* My special items, the standard routines free my urbs */
priv = usb_get_serial_port_data(serial->port[i]);
@@ -945,7 +945,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct usb_serial_port *port, struct file *filp)
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
-@@ -1522,19 +1522,16 @@ static int mos7720_startup(struct usb_se
+@@ -1521,19 +1521,16 @@ static int mos7720_startup(struct usb_se
return 0;
}
@@ -967,7 +967,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
static struct usb_driver usb_driver = {
-@@ -1559,7 +1556,7 @@ static struct usb_serial_driver moschip7
+@@ -1558,7 +1555,7 @@ static struct usb_serial_driver moschip7
.throttle = mos7720_throttle,
.unthrottle = mos7720_unthrottle,
.attach = mos7720_startup,
@@ -978,7 +978,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.write = mos7720_write,
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
-@@ -2679,16 +2679,16 @@ error:
+@@ -2633,16 +2633,16 @@ error:
}
/****************************************************************************
@@ -998,7 +998,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (!serial) {
dbg("%s", "Invalid Handler");
-@@ -2708,11 +2708,42 @@ static void mos7840_shutdown(struct usb_
+@@ -2662,11 +2662,42 @@ static void mos7840_shutdown(struct usb_
mos7840_port->zombie = 1;
spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
usb_kill_urb(mos7840_port->control_urb);
@@ -1042,7 +1042,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
dbg("%s", "Thank u :: ");
-@@ -2753,7 +2784,8 @@ static struct usb_serial_driver moschip7
+@@ -2707,7 +2738,8 @@ static struct usb_serial_driver moschip7
.tiocmget = mos7840_tiocmget,
.tiocmset = mos7840_tiocmset,
.attach = mos7840_startup,
@@ -1054,7 +1054,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
-@@ -73,7 +73,8 @@ static void omninet_write_bulk_callback(
+@@ -72,7 +72,8 @@ static void omninet_write_bulk_callback(
static int omninet_write(struct tty_struct *tty, struct usb_serial_port *port,
const unsigned char *buf, int count);
static int omninet_write_room(struct tty_struct *tty);
@@ -1064,7 +1064,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int omninet_attach(struct usb_serial *serial);
static struct usb_device_id id_table[] = {
-@@ -109,7 +110,8 @@ static struct usb_serial_driver zyxel_om
+@@ -108,7 +109,8 @@ static struct usb_serial_driver zyxel_om
.write_room = omninet_write_room,
.read_bulk_callback = omninet_read_bulk_callback,
.write_bulk_callback = omninet_write_bulk_callback,
@@ -1074,7 +1074,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
-@@ -347,13 +349,22 @@ static void omninet_write_bulk_callback(
+@@ -345,13 +347,22 @@ static void omninet_write_bulk_callback(
}
@@ -1101,7 +1101,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/opticon.c
+++ b/drivers/usb/serial/opticon.c
-@@ -464,7 +464,7 @@ error:
+@@ -463,7 +463,7 @@ error:
return retval;
}
@@ -1110,7 +1110,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct opticon_private *priv = usb_get_serial_data(serial);
-@@ -472,9 +472,16 @@ static void opticon_shutdown(struct usb_
+@@ -471,9 +471,16 @@ static void opticon_shutdown(struct usb_
usb_kill_urb(priv->bulk_read_urb);
usb_free_urb(priv->bulk_read_urb);
@@ -1128,7 +1128,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
static int opticon_suspend(struct usb_interface *intf, pm_message_t message)
-@@ -525,7 +532,8 @@ static struct usb_serial_driver opticon_
+@@ -524,7 +531,8 @@ static struct usb_serial_driver opticon_
.close = opticon_close,
.write = opticon_write,
.write_room = opticon_write_room,
@@ -1140,9 +1140,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.ioctl = opticon_ioctl,
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -50,7 +50,8 @@ static int option_open(struct tty_struc
- static void option_close(struct tty_struct *tty, struct usb_serial_port *port,
- struct file *filp);
+@@ -51,7 +51,8 @@ static void option_close(struct usb_seri
+ static void option_dtr_rts(struct usb_serial_port *port, int on);
+
static int option_startup(struct usb_serial *serial);
-static void option_shutdown(struct usb_serial *serial);
+static void option_disconnect(struct usb_serial *serial);
@@ -1150,7 +1150,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int option_write_room(struct tty_struct *tty);
static void option_instat_callback(struct urb *urb);
-@@ -566,7 +567,8 @@ static struct usb_serial_driver option_1
+@@ -568,7 +569,8 @@ static struct usb_serial_driver option_1
.tiocmget = option_tiocmget,
.tiocmset = option_tiocmset,
.attach = option_startup,
@@ -1187,7 +1187,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
port = serial->port[i];
--- a/drivers/usb/serial/oti6858.c
+++ b/drivers/usb/serial/oti6858.c
-@@ -160,7 +160,7 @@ static int oti6858_tiocmget(struct tty_s
+@@ -159,7 +159,7 @@ static int oti6858_tiocmget(struct tty_s
static int oti6858_tiocmset(struct tty_struct *tty, struct file *file,
unsigned int set, unsigned int clear);
static int oti6858_startup(struct usb_serial *serial);
@@ -1196,7 +1196,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* functions operating on buffers */
static struct oti6858_buf *oti6858_buf_alloc(unsigned int size);
-@@ -195,7 +195,7 @@ static struct usb_serial_driver oti6858_
+@@ -194,7 +194,7 @@ static struct usb_serial_driver oti6858_
.write_room = oti6858_write_room,
.chars_in_buffer = oti6858_chars_in_buffer,
.attach = oti6858_startup,
@@ -1205,7 +1205,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
};
struct oti6858_private {
-@@ -829,7 +829,7 @@ static int oti6858_ioctl(struct tty_stru
+@@ -782,7 +782,7 @@ static int oti6858_ioctl(struct tty_stru
}
@@ -1214,7 +1214,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct oti6858_private *priv;
int i;
-@@ -841,7 +841,6 @@ static void oti6858_shutdown(struct usb_
+@@ -794,7 +794,6 @@ static void oti6858_shutdown(struct usb_
if (priv) {
oti6858_buf_free(priv->buf);
kfree(priv);
@@ -1224,7 +1224,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
-@@ -897,7 +897,7 @@ static void pl2303_break_ctl(struct tty_
+@@ -878,7 +878,7 @@ static void pl2303_break_ctl(struct tty_
dbg("%s - error sending break = %d", __func__, result);
}
@@ -1233,7 +1233,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i;
struct pl2303_private *priv;
-@@ -909,7 +909,6 @@ static void pl2303_shutdown(struct usb_s
+@@ -890,7 +890,6 @@ static void pl2303_shutdown(struct usb_s
if (priv) {
pl2303_buf_free(priv->buf);
kfree(priv);
@@ -1241,7 +1241,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
}
}
-@@ -1140,7 +1139,7 @@ static struct usb_serial_driver pl2303_d
+@@ -1123,7 +1122,7 @@ static struct usb_serial_driver pl2303_d
.write_room = pl2303_write_room,
.chars_in_buffer = pl2303_chars_in_buffer,
.attach = pl2303_startup,
@@ -1252,54 +1252,21 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int __init pl2303_init(void)
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
-@@ -799,7 +799,7 @@ static int sierra_startup(struct usb_ser
+@@ -814,7 +814,7 @@ static int sierra_startup(struct usb_ser
return 0;
}
-static void sierra_shutdown(struct usb_serial *serial)
+static void sierra_disconnect(struct usb_serial *serial)
{
- int i, j;
+ int i;
struct usb_serial_port *port;
-@@ -818,10 +818,29 @@ static void sierra_shutdown(struct usb_s
- for (j = 0; j < N_IN_URB; j++) {
- usb_kill_urb(portdata->in_urbs[j]);
- usb_free_urb(portdata->in_urbs[j]);
-- kfree(portdata->in_buffer[j]);
- }
-+ }
-+}
-+
-+static void sierra_release(struct usb_serial *serial)
-+{
-+ int i, j;
-+ struct usb_serial_port *port;
-+ struct sierra_port_private *portdata;
-+
-+ dev_dbg(&serial->dev->dev, "%s\n", __func__);
-+
-+ for (i = 0; i < serial->num_ports; ++i) {
-+ port = serial->port[i];
-+ if (!port)
-+ continue;
-+ portdata = usb_get_serial_port_data(port);
-+ if (!portdata)
-+ continue;
-+
-+ for (j = 0; j < N_IN_URB; j++)
-+ kfree(portdata->in_buffer[j]);
- kfree(portdata);
-- usb_set_serial_port_data(port, NULL);
- }
- }
-
-@@ -843,7 +862,8 @@ static struct usb_serial_driver sierra_d
+@@ -853,7 +853,7 @@ static struct usb_serial_driver sierra_d
.tiocmget = sierra_tiocmget,
.tiocmset = sierra_tiocmset,
.attach = sierra_startup,
- .shutdown = sierra_shutdown,
+ .disconnect = sierra_disconnect,
-+ .release = sierra_release,
.read_int_callback = sierra_instat_callback,
};
@@ -1322,7 +1289,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
}
}
-@@ -1043,7 +1042,7 @@ static struct usb_serial_driver spcp8x5_
+@@ -1020,7 +1019,7 @@ static struct usb_serial_driver spcp8x5_
.write_bulk_callback = spcp8x5_write_bulk_callback,
.chars_in_buffer = spcp8x5_chars_in_buffer,
.attach = spcp8x5_startup,
@@ -1333,7 +1300,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static int __init spcp8x5_init(void)
--- a/drivers/usb/serial/symbolserial.c
+++ b/drivers/usb/serial/symbolserial.c
-@@ -268,7 +268,7 @@ error:
+@@ -267,7 +267,7 @@ error:
return retval;
}
@@ -1342,7 +1309,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct symbol_private *priv = usb_get_serial_data(serial);
-@@ -276,9 +276,16 @@ static void symbol_shutdown(struct usb_s
+@@ -275,9 +275,16 @@ static void symbol_shutdown(struct usb_s
usb_kill_urb(priv->int_urb);
usb_free_urb(priv->int_urb);
@@ -1360,7 +1327,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
static struct usb_driver symbol_driver = {
-@@ -300,7 +307,8 @@ static struct usb_serial_driver symbol_d
+@@ -299,7 +306,8 @@ static struct usb_serial_driver symbol_d
.attach = symbol_startup,
.open = symbol_open,
.close = symbol_close,
@@ -1380,8 +1347,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void ti_release(struct usb_serial *serial);
static int ti_open(struct tty_struct *tty, struct usb_serial_port *port,
struct file *file);
- static void ti_close(struct tty_struct *tty, struct usb_serial_port *port,
-@@ -231,7 +231,7 @@ static struct usb_serial_driver ti_1port
+ static void ti_close(struct usb_serial_port *port);
+@@ -230,7 +230,7 @@ static struct usb_serial_driver ti_1port
.id_table = ti_id_table_3410,
.num_ports = 1,
.attach = ti_startup,
@@ -1390,7 +1357,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.open = ti_open,
.close = ti_close,
.write = ti_write,
-@@ -259,7 +259,7 @@ static struct usb_serial_driver ti_2port
+@@ -258,7 +258,7 @@ static struct usb_serial_driver ti_2port
.id_table = ti_id_table_5052,
.num_ports = 2,
.attach = ti_startup,
@@ -1399,7 +1366,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.open = ti_open,
.close = ti_close,
.write = ti_write,
-@@ -474,7 +474,7 @@ free_tdev:
+@@ -473,7 +473,7 @@ free_tdev:
}
@@ -1408,7 +1375,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
int i;
struct ti_device *tdev = usb_get_serial_data(serial);
-@@ -487,12 +487,10 @@ static void ti_shutdown(struct usb_seria
+@@ -486,12 +486,10 @@ static void ti_shutdown(struct usb_seria
if (tport) {
ti_buf_free(tport->tp_write_buf);
kfree(tport);
@@ -1450,7 +1417,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
}
-@@ -1067,10 +1074,6 @@ void usb_serial_disconnect(struct usb_in
+@@ -1118,10 +1125,6 @@ void usb_serial_disconnect(struct usb_in
serial->disconnected = 1;
mutex_unlock(&serial->disc_mutex);
@@ -1461,7 +1428,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
for (i = 0; i < serial->num_ports; ++i) {
port = serial->port[i];
if (port) {
-@@ -1099,14 +1102,7 @@ void usb_serial_disconnect(struct usb_in
+@@ -1153,14 +1156,7 @@ void usb_serial_disconnect(struct usb_in
}
}
}
@@ -1477,7 +1444,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/* let the last holder of this object
* cause it to be cleaned up */
-@@ -1282,7 +1278,8 @@ static void fixup_generic(struct usb_ser
+@@ -1338,7 +1334,8 @@ static void fixup_generic(struct usb_ser
set_to_generic_if_null(device, chars_in_buffer);
set_to_generic_if_null(device, read_bulk_callback);
set_to_generic_if_null(device, write_bulk_callback);
@@ -1489,7 +1456,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int usb_serial_register(struct usb_serial_driver *driver)
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
-@@ -48,7 +48,7 @@ static void visor_unthrottle(struct tty_
+@@ -47,7 +47,7 @@ static void visor_unthrottle(struct tty_
static int visor_probe(struct usb_serial *serial,
const struct usb_device_id *id);
static int visor_calc_num_ports(struct usb_serial *serial);
@@ -1498,7 +1465,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static void visor_write_bulk_callback(struct urb *urb);
static void visor_read_bulk_callback(struct urb *urb);
static void visor_read_int_callback(struct urb *urb);
-@@ -203,7 +203,7 @@ static struct usb_serial_driver handspri
+@@ -202,7 +202,7 @@ static struct usb_serial_driver handspri
.attach = treo_attach,
.probe = visor_probe,
.calc_num_ports = visor_calc_num_ports,
@@ -1507,7 +1474,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.write = visor_write,
.write_room = visor_write_room,
.write_bulk_callback = visor_write_bulk_callback,
-@@ -228,7 +228,7 @@ static struct usb_serial_driver clie_5_d
+@@ -227,7 +227,7 @@ static struct usb_serial_driver clie_5_d
.attach = clie_5_attach,
.probe = visor_probe,
.calc_num_ports = visor_calc_num_ports,
@@ -1516,7 +1483,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.write = visor_write,
.write_room = visor_write_room,
.write_bulk_callback = visor_write_bulk_callback,
-@@ -920,7 +920,7 @@ static int clie_5_attach(struct usb_seri
+@@ -918,7 +918,7 @@ static int clie_5_attach(struct usb_seri
return generic_startup(serial);
}
@@ -1525,7 +1492,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{
struct visor_private *priv;
int i;
-@@ -929,10 +929,7 @@ static void visor_shutdown(struct usb_se
+@@ -927,10 +927,7 @@ static void visor_shutdown(struct usb_se
for (i = 0; i < serial->num_ports; i++) {
priv = usb_get_serial_port_data(serial->port[i]);
@@ -1547,8 +1514,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static void whiteheat_release(struct usb_serial *serial);
static int whiteheat_open(struct tty_struct *tty,
struct usb_serial_port *port, struct file *filp);
- static void whiteheat_close(struct tty_struct *tty,
-@@ -190,7 +190,7 @@ static struct usb_serial_driver whitehea
+ static void whiteheat_close(struct usb_serial_port *port);
+@@ -189,7 +189,7 @@ static struct usb_serial_driver whitehea
.id_table = id_table_std,
.num_ports = 4,
.attach = whiteheat_attach,
@@ -1557,7 +1524,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
.open = whiteheat_open,
.close = whiteheat_close,
.write = whiteheat_write,
-@@ -618,7 +618,7 @@ no_command_buffer:
+@@ -617,7 +617,7 @@ no_command_buffer:
}
@@ -1591,7 +1558,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int (*port_probe)(struct usb_serial_port *port);
int (*port_remove)(struct usb_serial_port *port);
-@@ -306,7 +309,8 @@ extern void usb_serial_generic_read_bulk
+@@ -308,7 +311,8 @@ extern void usb_serial_generic_read_bulk
extern void usb_serial_generic_write_bulk_callback(struct urb *urb);
extern void usb_serial_generic_throttle(struct tty_struct *tty);
extern void usb_serial_generic_unthrottle(struct tty_struct *tty);
diff --git a/usb/usb-usb_debug-usb_generic_serial-implement-multi-urb-write.patch b/usb/usb-usb_debug-usb_generic_serial-implement-multi-urb-write.patch
index a0bf4c200fa722..94ac64b4176f03 100644
--- a/usb/usb-usb_debug-usb_generic_serial-implement-multi-urb-write.patch
+++ b/usb/usb-usb_debug-usb_generic_serial-implement-multi-urb-write.patch
@@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
-@@ -191,6 +191,88 @@ void usb_serial_generic_close(struct tty
+@@ -190,6 +190,88 @@ void usb_serial_generic_close(struct usb
generic_cleanup(port);
}
@@ -127,7 +127,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int usb_serial_generic_write(struct tty_struct *tty,
struct usb_serial_port *port, const unsigned char *buf, int count)
{
-@@ -208,6 +290,11 @@ int usb_serial_generic_write(struct tty_
+@@ -207,6 +289,11 @@ int usb_serial_generic_write(struct tty_
/* only do something if we have a bulk out endpoint */
if (serial->num_bulk_out) {
unsigned long flags;
@@ -139,7 +139,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_lock_irqsave(&port->lock, flags);
if (port->write_urb_busy) {
spin_unlock_irqrestore(&port->lock, flags);
-@@ -258,15 +345,18 @@ int usb_serial_generic_write_room(struct
+@@ -257,15 +344,18 @@ int usb_serial_generic_write_room(struct
{
struct usb_serial_port *port = tty->driver_data;
struct usb_serial *serial = port->serial;
@@ -162,7 +162,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dbg("%s - returns %d", __func__, room);
return room;
-@@ -277,11 +367,16 @@ int usb_serial_generic_chars_in_buffer(s
+@@ -276,11 +366,16 @@ int usb_serial_generic_chars_in_buffer(s
struct usb_serial_port *port = tty->driver_data;
struct usb_serial *serial = port->serial;
int chars = 0;
@@ -181,7 +181,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (port->write_urb_busy)
chars = port->write_urb->transfer_buffer_length;
}
-@@ -364,12 +459,24 @@ EXPORT_SYMBOL_GPL(usb_serial_generic_rea
+@@ -363,12 +458,24 @@ EXPORT_SYMBOL_GPL(usb_serial_generic_rea
void usb_serial_generic_write_bulk_callback(struct urb *urb)
{
diff --git a/usb/usb-usb_serial-only-allow-sysrq-on-a-console-port.patch b/usb/usb-usb_serial-only-allow-sysrq-on-a-console-port.patch
index a1f96628a73fff..3c3815428dbb90 100644
--- a/usb/usb-usb_serial-only-allow-sysrq-on-a-console-port.patch
+++ b/usb/usb-usb_serial-only-allow-sysrq-on-a-console-port.patch
@@ -35,7 +35,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
-@@ -529,7 +529,7 @@ void usb_serial_generic_unthrottle(struc
+@@ -528,7 +528,7 @@ void usb_serial_generic_unthrottle(struc
int usb_serial_handle_sysrq_char(struct usb_serial_port *port, unsigned int ch)
{
diff --git a/usb/usb-xhci-add-makefile-maintainers-and-kconfig-entries.patch b/usb/usb-xhci-add-makefile-maintainers-and-kconfig-entries.patch
index bddd99b74e31e1..2313fae8a6b897 100644
--- a/usb/usb-xhci-add-makefile-maintainers-and-kconfig-entries.patch
+++ b/usb/usb-xhci-add-makefile-maintainers-and-kconfig-entries.patch
@@ -78,7 +78,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
obj-$(CONFIG_USB_R8A66597_HCD) += host/
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -6038,6 +6038,12 @@ L: linux-wireless@vger.kernel.org
+@@ -6138,6 +6138,12 @@ L: linux-wireless@vger.kernel.org
S: Maintained
F: drivers/net/wireless/rndis_wlan.c