aboutsummaryrefslogtreecommitdiffstats
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
parent0f3f33d3056bea4fc8cc48a18ced89762af3917e (diff)
downloadpatches-a40f36137a30dc17b00c73bad543b90915bf24b7.tar.gz
2.6.30-git8 resync
Remove patches already upstream (sierra) and lots of merges
-rw-r--r--driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch16
-rw-r--r--driver-core/debugfs-fix-terminology-inconsistency-of-dir-name-to-mount-debugfs-filesystem.patch72
-rw-r--r--driver-core/driver-core-add-bus_notify_unbound_driver-event.patch2
-rw-r--r--driver-core/driver-core-add-nodename-callbacks.patch8
-rw-r--r--driver-core/driver-core-block-add-nodename-support-for-block-drivers.patch10
-rw-r--r--driver-core/driver-core-devtmpfs-driver-core-maintained-dev-tmpfs.patch8
-rw-r--r--driver-core/driver-core-firmware_class-replace-kfree-with-put_device.patch8
-rw-r--r--driver-core/driver-core-fix-documentation-of-request_firmware_nowait.patch2
-rw-r--r--driver-core/driver-core-fix-gcc-4.3.3-warnings-about-string-literals.patch2
-rw-r--r--driver-core/driver-core-misc-add-nodename-support-for-misc-devices.patch10
-rw-r--r--driver-core/driver-core-set-default-sysfs_deprecated-n.patch2
-rw-r--r--driver-core/firmware-allocate-firmware-id-dynamically.patch12
-rw-r--r--driver-core/ibmvscsi-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch8
-rw-r--r--driver-core/ide-remove-driver_data-direct-access-of-struct-device.patch8
-rw-r--r--driver-core/kobject-samples-make-sample_kobject-module-only.patch4
-rw-r--r--driver-core/sched-delayed-cleanup-of-user_struct.patch4
-rw-r--r--driver-core/sound-remove-driver_data-direct-access-of-struct-device.patch159
-rw-r--r--driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch4
-rw-r--r--driver-core/xen-block-remove-driver_data-direct-access-of-struct-device.patch12
-rw-r--r--series5
-rw-r--r--staging/0079-Staging-rt2860-remove-DOT11_N_SUPPORT-ifdefs.patch2
-rw-r--r--staging/0080-Staging-rt2870-remove-DOT11_N_SUPPORT-ifdefs.patch2
-rw-r--r--staging/0081-Staging-rt3070-remove-DOT11_N_SUPPORT-ifdefs.patch2
-rw-r--r--staging/0088-Staging-rt2860-remove-dead-code.patch2
-rw-r--r--staging/0089-Staging-rt2870-remove-dead-code.patch2
-rw-r--r--staging/0094-Staging-rt-28-30-70-merge-rt-28-30-70-common-.-ch.patch2
-rw-r--r--staging/0100-Staging-rt28-67-0-merge-rt28-67-0-common-.-ch.patch2
-rw-r--r--staging/staging-add-mailing-list-address-for-staging-tree.patch2
-rw-r--r--usb.current/usb-ftdi-sio-new-device-ids.patch2
-rw-r--r--usb.current/usb-option.c-add-toshiba-3g-hsdpa-sm-bus-minicard-device-id.patch4
-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
-rw-r--r--version2
61 files changed, 423 insertions, 879 deletions
diff --git a/driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch
index 182964fc2d0bae..d891e90b693612 100644
--- a/driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch
+++ b/driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch
@@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int write = rq_data_dir(req), res;
const char *op = write ? "write" : "read";
u64 start_sector, sectors;
-@@ -169,7 +169,7 @@ static int ps3disk_submit_request_sg(str
+@@ -168,7 +168,7 @@ static int ps3disk_submit_request_sg(str
static int ps3disk_submit_flush_request(struct ps3_storage_device *dev,
struct request *req)
{
@@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
u64 res;
dev_dbg(&dev->sbd.core, "%s:%u: flush request\n", __func__, __LINE__);
-@@ -214,7 +214,7 @@ static void ps3disk_do_request(struct ps
+@@ -213,7 +213,7 @@ static void ps3disk_do_request(struct ps
static void ps3disk_request(struct request_queue *q)
{
struct ps3_storage_device *dev = q->queuedata;
@@ -51,7 +51,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (priv->req) {
dev_dbg(&dev->sbd.core, "%s:%u busy\n", __func__, __LINE__);
-@@ -247,7 +247,7 @@ static irqreturn_t ps3disk_interrupt(int
+@@ -245,7 +245,7 @@ static irqreturn_t ps3disk_interrupt(int
return IRQ_HANDLED;
}
@@ -60,7 +60,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
req = priv->req;
if (!req) {
dev_dbg(&dev->sbd.core,
-@@ -368,7 +368,7 @@ static void ata_id_c_string(const u16 *i
+@@ -364,7 +364,7 @@ static void ata_id_c_string(const u16 *i
static int ps3disk_identify(struct ps3_storage_device *dev)
{
@@ -69,7 +69,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct lv1_ata_cmnd_block ata_cmnd;
u16 *id = dev->bounce_buf;
u64 res;
-@@ -449,7 +449,7 @@ static int __devinit ps3disk_probe(struc
+@@ -445,7 +445,7 @@ static int __devinit ps3disk_probe(struc
goto fail;
}
@@ -78,7 +78,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
spin_lock_init(&priv->lock);
dev->bounce_size = BOUNCE_SIZE;
-@@ -527,7 +527,7 @@ fail_free_bounce:
+@@ -523,7 +523,7 @@ fail_free_bounce:
kfree(dev->bounce_buf);
fail_free_priv:
kfree(priv);
@@ -87,7 +87,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fail:
mutex_lock(&ps3disk_mask_mutex);
__clear_bit(devidx, &ps3disk_mask);
-@@ -538,7 +538,7 @@ fail:
+@@ -534,7 +534,7 @@ fail:
static int ps3disk_remove(struct ps3_system_bus_device *_dev)
{
struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core);
@@ -96,7 +96,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mutex_lock(&ps3disk_mask_mutex);
__clear_bit(MINOR(disk_devt(priv->gendisk)) / PS3DISK_MINORS,
-@@ -552,7 +552,7 @@ static int ps3disk_remove(struct ps3_sys
+@@ -548,7 +548,7 @@ static int ps3disk_remove(struct ps3_sys
ps3stor_teardown(dev);
kfree(dev->bounce_buf);
kfree(priv);
diff --git a/driver-core/debugfs-fix-terminology-inconsistency-of-dir-name-to-mount-debugfs-filesystem.patch b/driver-core/debugfs-fix-terminology-inconsistency-of-dir-name-to-mount-debugfs-filesystem.patch
index 452b898c36c986..956e99e07ebd58 100644
--- a/driver-core/debugfs-fix-terminology-inconsistency-of-dir-name-to-mount-debugfs-filesystem.patch
+++ b/driver-core/debugfs-fix-terminology-inconsistency-of-dir-name-to-mount-debugfs-filesystem.patch
@@ -338,7 +338,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: sched_switch
#
-@@ -574,13 +586,13 @@ new trace is saved.
+@@ -583,13 +595,13 @@ new trace is saved.
To reset the maximum, echo 0 into tracing_max_latency. Here is
an example:
@@ -357,7 +357,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: irqsoff
#
irqsoff latency trace v1.1.5 on 2.6.26
-@@ -681,13 +693,13 @@ Like the irqsoff tracer, it records the
+@@ -690,13 +702,13 @@ Like the irqsoff tracer, it records the
which preemption was disabled. The control of preemptoff tracer
is much like the irqsoff tracer.
@@ -376,7 +376,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: preemptoff
#
preemptoff latency trace v1.1.5 on 2.6.26-rc8
-@@ -828,13 +840,13 @@ tracer.
+@@ -837,13 +849,13 @@ tracer.
Again, using this trace is much like the irqsoff and preemptoff
tracers.
@@ -395,7 +395,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: preemptirqsoff
#
preemptirqsoff latency trace v1.1.5 on 2.6.26-rc8
-@@ -990,12 +1002,12 @@ slightly differently than we did with th
+@@ -999,12 +1011,12 @@ slightly differently than we did with th
Instead of performing an 'ls', we will run 'sleep 1' under
'chrt' which changes the priority of the task.
@@ -413,7 +413,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: wakeup
#
wakeup latency trace v1.1.5 on 2.6.26-rc8
-@@ -1105,11 +1117,11 @@ can be done from the debug file system.
+@@ -1114,11 +1126,11 @@ can be done from the debug file system.
ftrace_enabled is set; otherwise this tracer is a nop.
# sysctl kernel.ftrace_enabled=1
@@ -429,7 +429,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: function
#
# TASK-PID CPU# TIMESTAMP FUNCTION
-@@ -1146,7 +1158,7 @@ int trace_fd;
+@@ -1155,7 +1167,7 @@ int trace_fd;
[...]
int main(int argc, char *argv[]) {
[...]
@@ -438,7 +438,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
[...]
if (condition_hit()) {
write(trace_fd, "0", 1);
-@@ -1154,26 +1166,20 @@ int main(int argc, char *argv[]) {
+@@ -1163,26 +1175,20 @@ int main(int argc, char *argv[]) {
[...]
}
@@ -471,7 +471,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: function
#
# TASK-PID CPU# TIMESTAMP FUNCTION
-@@ -1184,8 +1190,8 @@ no pid
+@@ -1193,8 +1199,8 @@ no pid
yum-updatesd-3111 [003] 1637.254683: lock_hrtimer_base <-hrtimer_try_to_cancel
yum-updatesd-3111 [003] 1637.254685: fget_light <-do_sys_poll
yum-updatesd-3111 [003] 1637.254686: pipe_poll <-do_sys_poll
@@ -482,7 +482,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: function
#
# TASK-PID CPU# TIMESTAMP FUNCTION
-@@ -1207,6 +1213,51 @@ something like this simple program:
+@@ -1216,6 +1222,51 @@ something like this simple program:
#include <fcntl.h>
#include <unistd.h>
@@ -534,7 +534,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int main (int argc, char **argv)
{
if (argc < 1)
-@@ -1217,12 +1268,12 @@ int main (int argc, char **argv)
+@@ -1226,12 +1277,12 @@ int main (int argc, char **argv)
char line[64];
int s;
@@ -549,7 +549,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
s = sprintf(line, "%d\n", getpid());
write(fd, line, s);
-@@ -1374,22 +1425,22 @@ want, depending on your needs.
+@@ -1383,22 +1434,22 @@ want, depending on your needs.
tracing_cpu_mask file) or you might sometimes see unordered
function calls while cpu tracing switch.
@@ -578,7 +578,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
depends on: funcgraph-duration
ie:
-@@ -1418,8 +1469,8 @@ want, depending on your needs.
+@@ -1427,8 +1478,8 @@ want, depending on your needs.
- The task/pid field displays the thread cmdline and pid which
executed the function. It is default disabled.
@@ -589,7 +589,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ie:
-@@ -1442,8 +1493,8 @@ want, depending on your needs.
+@@ -1451,8 +1502,8 @@ want, depending on your needs.
system clock since it started. A snapshot of this time is
given on each entry/exit of functions
@@ -600,7 +600,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ie:
-@@ -1540,7 +1591,7 @@ listed in:
+@@ -1549,7 +1600,7 @@ listed in:
available_filter_functions
@@ -609,7 +609,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
put_prev_task_idle
kmem_cache_create
pick_next_task_rt
-@@ -1552,12 +1603,12 @@ mutex_lock
+@@ -1561,12 +1612,12 @@ mutex_lock
If I am only interested in sys_nanosleep and hrtimer_interrupt:
# echo sys_nanosleep hrtimer_interrupt \
@@ -627,7 +627,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: ftrace
#
# TASK-PID CPU# TIMESTAMP FUNCTION
-@@ -1568,7 +1619,7 @@ If I am only interested in sys_nanosleep
+@@ -1577,7 +1628,7 @@ If I am only interested in sys_nanosleep
To see which functions are being traced, you can cat the file:
@@ -636,7 +636,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hrtimer_interrupt
sys_nanosleep
-@@ -1588,7 +1639,7 @@ Note: It is better to use quotes to encl
+@@ -1597,7 +1648,7 @@ Note: It is better to use quotes to encl
otherwise the shell may expand the parameters into names
of files in the local directory.
@@ -645,7 +645,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Produces:
-@@ -1609,7 +1660,7 @@ Produces:
+@@ -1618,7 +1669,7 @@ Produces:
Notice that we lost the sys_nanosleep.
@@ -654,7 +654,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hrtimer_run_queues
hrtimer_run_pending
hrtimer_init
-@@ -1635,17 +1686,17 @@ To append to the filters, use '>>'
+@@ -1644,17 +1695,17 @@ To append to the filters, use '>>'
To clear out a filter so that all functions will be recorded
again:
@@ -678,7 +678,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hrtimer_run_queues
hrtimer_run_pending
hrtimer_init
-@@ -1668,7 +1719,7 @@ hrtimer_init_sleeper
+@@ -1677,7 +1728,7 @@ hrtimer_init_sleeper
The set_ftrace_notrace prevents those functions from being
traced.
@@ -687,7 +687,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Produces:
-@@ -1758,13 +1809,13 @@ the effect on the tracing is different.
+@@ -1767,13 +1818,13 @@ the effect on the tracing is different.
trace_pipe is consumed. This means that subsequent reads will be
different. The trace is live.
@@ -706,7 +706,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# tracer: function
#
# TASK-PID CPU# TIMESTAMP FUNCTION
-@@ -1800,7 +1851,7 @@ number listed is the number of entries t
+@@ -1809,7 +1860,7 @@ number listed is the number of entries t
CPU. To know the full size, multiply the number of possible CPUS
with the number of entries.
@@ -715,7 +715,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
1408 (units kilobytes)
Note, to modify this, you must have tracing completely disabled.
-@@ -1808,18 +1859,18 @@ To do that, echo "nop" into the current_
+@@ -1817,18 +1868,18 @@ To do that, echo "nop" into the current_
current_tracer is not set to "nop", an EINVAL error will be
returned.
@@ -873,7 +873,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
-@@ -328,7 +328,7 @@ static int drm_get_minor(struct drm_devi
+@@ -343,7 +343,7 @@ static int drm_get_minor(struct drm_devi
#if defined(CONFIG_DEBUG_FS)
ret = drm_debugfs_init(new_minor, minor_id, drm_debugfs_root);
if (ret) {
@@ -988,7 +988,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
echo "[ARGS]" > setuserscan
--- a/drivers/scsi/lpfc/lpfc_debugfs.c
+++ b/drivers/scsi/lpfc/lpfc_debugfs.c
-@@ -51,8 +51,8 @@
+@@ -53,8 +53,8 @@
* debugfs interface
*
* To access this interface the user should:
@@ -1012,7 +1012,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* From user space, examine the trace, and then echo 1 > tracing_on
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
-@@ -197,7 +197,7 @@ static inline void tracepoint_synchroniz
+@@ -198,7 +198,7 @@ static inline void tracepoint_synchroniz
* * This is how the trace record is structured and will
* * be saved into the ring buffer. These are the fields
* * that will be exposed to user-space in
@@ -1021,7 +1021,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* *
* * The declared 'local variable' is called '__entry'
* *
-@@ -257,7 +257,7 @@ static inline void tracepoint_synchroniz
+@@ -258,7 +258,7 @@ static inline void tracepoint_synchroniz
* tracepoint callback (this is used by programmatic plugins and
* can also by used by generic instrumentation like SystemTap), and
* it is also used to expose a structured trace record in
@@ -1032,7 +1032,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define TRACE_EVENT(name, proto, args, struct, assign, print) \
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
-@@ -120,7 +120,7 @@ config IRQSOFF_TRACER
+@@ -147,7 +147,7 @@ config IRQSOFF_TRACER
disabled by default and can be runtime (re-)started
via:
@@ -1041,7 +1041,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
(Note that kernel size and overhead increases with this option
enabled. This option and the preempt-off timing option can be
-@@ -141,7 +141,7 @@ config PREEMPT_TRACER
+@@ -168,7 +168,7 @@ config PREEMPT_TRACER
disabled by default and can be runtime (re-)started
via:
@@ -1050,7 +1050,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
(Note that kernel size and overhead increases with this option
enabled. This option and the irqs-off timing option can be
-@@ -213,7 +213,7 @@ config TRACE_BRANCH_PROFILING
+@@ -261,7 +261,7 @@ config PROFILE_ANNOTATED_BRANCHES
This tracer profiles all the the likely and unlikely macros
in the kernel. It will display the results in:
@@ -1059,16 +1059,16 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Note: this will add a significant overhead, only turn this
on if you need to profile the system's use of these macros.
-@@ -228,7 +228,7 @@ config PROFILE_ALL_BRANCHES
+@@ -274,7 +274,7 @@ config PROFILE_ALL_BRANCHES
taken in the kernel is recorded whether it hit or miss.
The results will be displayed in:
- /debugfs/tracing/profile_branch
+ /sys/kernel/debug/tracing/profile_branch
- This configuration, when enabled, will impose a great overhead
- on the system. This should only be enabled when the system
-@@ -276,7 +276,7 @@ config STACK_TRACER
+ This option also enables the likely/unlikely profiler.
+
+@@ -323,7 +323,7 @@ config STACK_TRACER
select KALLSYMS
help
This special tracer records the maximum stack footprint of the
@@ -1079,7 +1079,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel executes, and keeping a maximum stack depth value and
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
-@@ -335,7 +335,7 @@ static raw_spinlock_t ftrace_max_lock =
+@@ -344,7 +344,7 @@ static raw_spinlock_t ftrace_max_lock =
/*
* Copy the new maximum trace into the separate maximum-trace
* structure. (this way the maximum trace is permanently saved,
@@ -1088,7 +1088,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
*/
static void
__update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
-@@ -2366,21 +2366,21 @@ static const struct file_operations trac
+@@ -2414,21 +2414,21 @@ static const struct file_operations trac
static const char readme_msg[] =
"tracing mini-HOWTO:\n\n"
diff --git a/driver-core/driver-core-add-bus_notify_unbound_driver-event.patch b/driver-core/driver-core-add-bus_notify_unbound_driver-event.patch
index a3fb212b3f6693..7d5e63dd5657eb 100644
--- a/driver-core/driver-core-add-bus_notify_unbound_driver-event.patch
+++ b/driver-core/driver-core-add-bus_notify_unbound_driver-event.patch
@@ -35,7 +35,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -116,6 +116,8 @@ extern int bus_unregister_notifier(struc
+@@ -114,6 +114,8 @@ extern int bus_unregister_notifier(struc
#define BUS_NOTIFY_BOUND_DRIVER 0x00000003 /* driver bound to device */
#define BUS_NOTIFY_UNBIND_DRIVER 0x00000004 /* driver about to be
unbound */
diff --git a/driver-core/driver-core-add-nodename-callbacks.patch b/driver-core/driver-core-add-nodename-callbacks.patch
index f73fa70a49ffc3..6c5e9c6ff8e025 100644
--- a/driver-core/driver-core-add-nodename-callbacks.patch
+++ b/driver-core/driver-core-add-nodename-callbacks.patch
@@ -92,7 +92,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* @data: data for the callback.
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -196,6 +196,7 @@ struct class {
+@@ -194,6 +194,7 @@ struct class {
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env);
@@ -100,15 +100,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
void (*class_release)(struct class *class);
void (*dev_release)(struct device *dev);
-@@ -291,6 +292,7 @@ struct device_type {
+@@ -289,6 +290,7 @@ struct device_type {
const char *name;
struct attribute_group **groups;
int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
+ char *(*nodename)(struct device *dev);
void (*release)(struct device *dev);
- int (*suspend)(struct device *dev, pm_message_t state);
-@@ -493,6 +495,7 @@ extern struct device *device_find_child(
+ struct dev_pm_ops *pm;
+@@ -488,6 +490,7 @@ extern struct device *device_find_child(
extern int device_rename(struct device *dev, char *new_name);
extern int device_move(struct device *dev, struct device *new_parent,
enum dpm_order dpm_order);
diff --git a/driver-core/driver-core-block-add-nodename-support-for-block-drivers.patch b/driver-core/driver-core-block-add-nodename-support-for-block-drivers.patch
index b12b4d10fc71b4..01106c03570917 100644
--- a/driver-core/driver-core-block-add-nodename-support-for-block-drivers.patch
+++ b/driver-core/driver-core-block-add-nodename-support-for-block-drivers.patch
@@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/block/genhd.c
+++ b/block/genhd.c
-@@ -985,10 +985,20 @@ struct class block_class = {
+@@ -996,10 +996,20 @@ struct class block_class = {
.name = "block",
};
@@ -45,7 +45,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#ifdef CONFIG_PROC_FS
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
-@@ -2853,6 +2853,11 @@ static struct block_device_operations pk
+@@ -2855,6 +2855,11 @@ static struct block_device_operations pk
.media_changed = pkt_media_changed,
};
@@ -57,7 +57,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/*
* Set up mapping from pktcdvd device to CD-ROM device.
*/
-@@ -2905,6 +2910,7 @@ static int pkt_setup_dev(dev_t dev, dev_
+@@ -2907,6 +2912,7 @@ static int pkt_setup_dev(dev_t dev, dev_
disk->fops = &pktcdvd_ops;
disk->flags = GENHD_FL_REMOVABLE;
strcpy(disk->disk_name, pd->name);
@@ -65,7 +65,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
disk->private_data = pd;
disk->queue = blk_alloc_queue(GFP_KERNEL);
if (!disk->queue)
-@@ -3060,6 +3066,7 @@ static const struct file_operations pkt_
+@@ -3062,6 +3068,7 @@ static const struct file_operations pkt_
static struct miscdevice pkt_misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = DRIVER_NAME,
@@ -75,7 +75,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
-@@ -140,7 +140,7 @@ struct gendisk {
+@@ -142,7 +142,7 @@ struct gendisk {
* disks that can't be partitioned. */
char disk_name[DISK_NAME_LEN]; /* name of major driver */
diff --git a/driver-core/driver-core-devtmpfs-driver-core-maintained-dev-tmpfs.patch b/driver-core/driver-core-devtmpfs-driver-core-maintained-dev-tmpfs.patch
index 179b64dac128ad..306422406c2295 100644
--- a/driver-core/driver-core-devtmpfs-driver-core-maintained-dev-tmpfs.patch
+++ b/driver-core/driver-core-devtmpfs-driver-core-maintained-dev-tmpfs.patch
@@ -512,7 +512,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
obj-$(CONFIG_ISA) += isa.o
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -553,6 +553,16 @@ extern void put_device(struct device *de
+@@ -548,6 +548,16 @@ extern void put_device(struct device *de
extern void wait_for_device_probe(void);
@@ -554,15 +554,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
--- a/init/main.c
+++ b/init/main.c
-@@ -64,6 +64,7 @@
- #include <linux/idr.h>
+@@ -66,6 +66,7 @@
#include <linux/ftrace.h>
#include <linux/async.h>
+ #include <linux/kmemtrace.h>
+#include <linux/shmem_fs.h>
#include <trace/boot.h>
#include <asm/io.h>
-@@ -777,6 +778,7 @@ static void __init do_basic_setup(void)
+@@ -798,6 +799,7 @@ static void __init do_basic_setup(void)
init_workqueues();
cpuset_init_smp();
usermodehelper_init();
diff --git a/driver-core/driver-core-firmware_class-replace-kfree-with-put_device.patch b/driver-core/driver-core-firmware_class-replace-kfree-with-put_device.patch
index ab0b1ce93af3b4..7cedf0d29a0297 100644
--- a/driver-core/driver-core-firmware_class-replace-kfree-with-put_device.patch
+++ b/driver-core/driver-core-firmware_class-replace-kfree-with-put_device.patch
@@ -20,16 +20,16 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
-@@ -279,7 +279,7 @@ static void fw_dev_release(struct device
- struct firmware_priv *fw_priv = dev_get_drvdata(dev);
-
+@@ -356,7 +356,7 @@ static void fw_dev_release(struct device
+ __free_page(fw_priv->pages[i]);
+ kfree(fw_priv->pages);
kfree(fw_priv);
- kfree(dev);
+ put_device(dev);
module_put(THIS_MODULE);
}
-@@ -323,14 +323,16 @@ static int fw_register_device(struct dev
+@@ -400,14 +400,16 @@ static int fw_register_device(struct dev
retval = device_register(f_dev);
if (retval) {
dev_err(device, "%s: device_register failed\n", __func__);
diff --git a/driver-core/driver-core-fix-documentation-of-request_firmware_nowait.patch b/driver-core/driver-core-fix-documentation-of-request_firmware_nowait.patch
index 4a0720e5a711e7..417a23a3c7b407 100644
--- a/driver-core/driver-core-fix-documentation-of-request_firmware_nowait.patch
+++ b/driver-core/driver-core-fix-documentation-of-request_firmware_nowait.patch
@@ -35,7 +35,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
about in-kernel persistence:
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
-@@ -540,8 +540,9 @@ request_firmware_work_func(void *arg)
+@@ -617,8 +617,9 @@ request_firmware_work_func(void *arg)
* @cont: function will be called asynchronously when the firmware
* request is over.
*
diff --git a/driver-core/driver-core-fix-gcc-4.3.3-warnings-about-string-literals.patch b/driver-core/driver-core-fix-gcc-4.3.3-warnings-about-string-literals.patch
index e295042c5aab54..68fcb7d7216337 100644
--- a/driver-core/driver-core-fix-gcc-4.3.3-warnings-about-string-literals.patch
+++ b/driver-core/driver-core-fix-gcc-4.3.3-warnings-about-string-literals.patch
@@ -39,7 +39,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return ERR_PTR(err);
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
-@@ -322,7 +322,7 @@ static int fw_register_device(struct dev
+@@ -399,7 +399,7 @@ static int fw_register_device(struct dev
fw_priv->timeout.data = (u_long) fw_priv;
init_timer(&fw_priv->timeout);
diff --git a/driver-core/driver-core-misc-add-nodename-support-for-misc-devices.patch b/driver-core/driver-core-misc-add-nodename-support-for-misc-devices.patch
index 91080ef6454237..910c2043b1924a 100644
--- a/driver-core/driver-core-misc-add-nodename-support-for-misc-devices.patch
+++ b/driver-core/driver-core-misc-add-nodename-support-for-misc-devices.patch
@@ -26,12 +26,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/arch/x86/kernel/microcode_core.c
+++ b/arch/x86/kernel/microcode_core.c
-@@ -173,6 +173,7 @@ static const struct file_operations micr
+@@ -236,6 +236,7 @@ static const struct file_operations micr
static struct miscdevice microcode_dev = {
- .minor = MICROCODE_MINOR,
- .name = "microcode",
-+ .devnode = "cpu/microcode",
- .fops = &microcode_fops,
+ .minor = MICROCODE_MINOR,
+ .name = "microcode",
++ .devnode = "cpu/microcode",
+ .fops = &microcode_fops,
};
--- a/drivers/char/hw_random/core.c
diff --git a/driver-core/driver-core-set-default-sysfs_deprecated-n.patch b/driver-core/driver-core-set-default-sysfs_deprecated-n.patch
index 1e02e0b4d76207..e90e51ff534438 100644
--- a/driver-core/driver-core-set-default-sysfs_deprecated-n.patch
+++ b/driver-core/driver-core-set-default-sysfs_deprecated-n.patch
@@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -615,13 +615,13 @@ config SYSFS_DEPRECATED
+@@ -616,13 +616,13 @@ config SYSFS_DEPRECATED
bool
config SYSFS_DEPRECATED_V2
diff --git a/driver-core/firmware-allocate-firmware-id-dynamically.patch b/driver-core/firmware-allocate-firmware-id-dynamically.patch
index b458ccf1ae6aa1..27eaad2193d56e 100644
--- a/driver-core/firmware-allocate-firmware-id-dynamically.patch
+++ b/driver-core/firmware-allocate-firmware-id-dynamically.patch
@@ -36,15 +36,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct completion completion;
struct bin_attribute attr_data;
struct firmware *fw;
-@@ -278,6 +278,7 @@ static void fw_dev_release(struct device
- {
- struct firmware_priv *fw_priv = dev_get_drvdata(dev);
-
+@@ -355,6 +355,7 @@ static void fw_dev_release(struct device
+ for (i = 0; i < fw_priv->nr_pages; i++)
+ __free_page(fw_priv->pages[i]);
+ kfree(fw_priv->pages);
+ kfree(fw_priv->fw_id);
kfree(fw_priv);
put_device(dev);
-@@ -309,7 +310,13 @@ static int fw_register_device(struct dev
+@@ -386,7 +387,13 @@ static int fw_register_device(struct dev
init_completion(&fw_priv->completion);
fw_priv->attr_data = firmware_attr_data_tmpl;
@@ -59,7 +59,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fw_priv->timeout.function = firmware_class_timeout;
fw_priv->timeout.data = (u_long) fw_priv;
-@@ -324,14 +331,15 @@ static int fw_register_device(struct dev
+@@ -401,14 +408,15 @@ static int fw_register_device(struct dev
if (retval) {
dev_err(device, "%s: device_register failed\n", __func__);
put_device(f_dev);
diff --git a/driver-core/ibmvscsi-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/ibmvscsi-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch
index c8619642dec9ab..4d563587e6b8d4 100644
--- a/driver-core/ibmvscsi-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch
+++ b/driver-core/ibmvscsi-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
-@@ -1657,7 +1657,7 @@ static int ibmvscsi_probe(struct vio_dev
+@@ -1877,7 +1877,7 @@ static int ibmvscsi_probe(struct vio_dev
unsigned long wait_switch = 0;
int rc;
@@ -34,7 +34,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
host = scsi_host_alloc(&driver_template, sizeof(*hostdata));
if (!host) {
-@@ -1723,7 +1723,7 @@ static int ibmvscsi_probe(struct vio_dev
+@@ -1949,7 +1949,7 @@ static int ibmvscsi_probe(struct vio_dev
scsi_scan_host(host);
}
@@ -43,15 +43,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return 0;
add_srp_port_failed:
-@@ -1740,7 +1740,7 @@ static int ibmvscsi_probe(struct vio_dev
+@@ -1968,7 +1968,7 @@ static int ibmvscsi_probe(struct vio_dev
static int ibmvscsi_remove(struct vio_dev *vdev)
{
- struct ibmvscsi_host_data *hostdata = vdev->dev.driver_data;
+ struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev);
+ unmap_persist_bufs(hostdata);
release_event_pool(&hostdata->pool, hostdata);
ibmvscsi_ops->release_crq_queue(&hostdata->queue, hostdata,
- max_events);
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -892,7 +892,7 @@ free_vport:
diff --git a/driver-core/ide-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/ide-remove-driver_data-direct-access-of-struct-device.patch
index 0d907d96b342cf..1d61610d971e7d 100644
--- a/driver-core/ide-remove-driver_data-direct-access-of-struct-device.patch
+++ b/driver-core/ide-remove-driver_data-direct-access-of-struct-device.patch
@@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/ide/ide_platform.c
+++ b/drivers/ide/ide_platform.c
-@@ -113,7 +113,7 @@ out:
+@@ -112,7 +112,7 @@ out:
static int __devexit plat_ide_remove(struct platform_device *pdev)
{
@@ -43,7 +43,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
ide_hwif_t *hwif = drive->hwif;
struct request *rq;
struct request_pm_state rqpm;
-@@ -37,7 +38,8 @@ int generic_ide_suspend(struct device *d
+@@ -34,7 +35,8 @@ int generic_ide_suspend(struct device *d
int generic_ide_resume(struct device *dev)
{
@@ -55,7 +55,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct request_pm_state rqpm;
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
-@@ -553,7 +553,7 @@ static int ide_register_port(ide_hwif_t
+@@ -535,7 +535,7 @@ static int ide_register_port(ide_hwif_t
/* register with global device tree */
dev_set_name(&hwif->gendev, hwif->name);
@@ -64,7 +64,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (hwif->gendev.parent == NULL)
hwif->gendev.parent = hwif->dev;
hwif->gendev.release = hwif_release_dev;
-@@ -1002,9 +1002,9 @@ static void hwif_register_devices(ide_hw
+@@ -987,9 +987,9 @@ static void hwif_register_devices(ide_hw
int ret;
dev_set_name(dev, "%u.%u", hwif->index, i);
diff --git a/driver-core/kobject-samples-make-sample_kobject-module-only.patch b/driver-core/kobject-samples-make-sample_kobject-module-only.patch
index 6b2452b635661e..4c1912379498c1 100644
--- a/driver-core/kobject-samples-make-sample_kobject-module-only.patch
+++ b/driver-core/kobject-samples-make-sample_kobject-module-only.patch
@@ -17,8 +17,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/samples/Kconfig
+++ b/samples/Kconfig
-@@ -20,7 +20,8 @@ config SAMPLE_TRACEPOINTS
- This build tracepoints example modules.
+@@ -26,7 +26,8 @@ config SAMPLE_TRACE_EVENTS
+ This build trace event example modules.
config SAMPLE_KOBJECT
- tristate "Build kobject examples"
diff --git a/driver-core/sched-delayed-cleanup-of-user_struct.patch b/driver-core/sched-delayed-cleanup-of-user_struct.patch
index d92ae7e3479c9d..5f8f77a8d78fbb 100644
--- a/driver-core/sched-delayed-cleanup-of-user_struct.patch
+++ b/driver-core/sched-delayed-cleanup-of-user_struct.patch
@@ -47,7 +47,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -669,7 +669,7 @@ struct user_struct {
+@@ -673,7 +673,7 @@ struct user_struct {
struct task_group *tg;
#ifdef CONFIG_SYSFS
struct kobject kobj;
@@ -55,7 +55,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ struct delayed_work work;
#endif
#endif
- };
+
--- a/kernel/user.c
+++ b/kernel/user.c
@@ -75,21 +75,6 @@ static void uid_hash_remove(struct user_
diff --git a/driver-core/sound-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/sound-remove-driver_data-direct-access-of-struct-device.patch
deleted file mode 100644
index 21cf906036104b..00000000000000
--- a/driver-core/sound-remove-driver_data-direct-access-of-struct-device.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From foo@baz Mon May 4 12:40:54 PDT 2009
-Date: Mon, 04 May 2009 12:40:54 -0700
-To: Greg KH <greg@kroah.com>
-From: Greg Kroah-Hartman <gregkh@suse.de>
-Subject: [PATCH] sound: remove driver_data direct access of struct device
-
-From: Greg Kroah-Hartman <gregkh@suse.de>
-
-In the near future, the driver core is going to not allow direct access
-to the driver_data pointer in struct device. Instead, the functions
-dev_get_drvdata() and dev_set_drvdata() should be used. These functions
-have been around since the beginning, so are backwards compatible with
-all older kernel versions.
-
-Cc: Takashi Iwai <tiwai@suse.de>
-Cc: Jaroslav Kysela <perex@perex.cz>
-Cc: linuxppc-dev@ozlabs.org
-Cc: Johannes Berg <johannes@sipsolutions.net>
-Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-Cc: Liam Girdwood <lrg@slimlogic.co.uk>
-Cc: Philipp Zabel <philipp.zabel@gmail.com>
-Cc: Jean Delvare <khali@linux-fr.org>
-Cc: Timur Tabi <timur@freescale.com>
-CC: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
- sound/aoa/fabrics/layout.c | 8 ++++----
- sound/aoa/soundbus/i2sbus/core.c | 8 ++++----
- sound/soc/codecs/wm8400.c | 4 ++--
- sound/soc/codecs/wm8731.c | 4 ++--
- sound/soc/codecs/wm8753.c | 4 ++--
- 5 files changed, 14 insertions(+), 14 deletions(-)
-
---- a/sound/aoa/fabrics/layout.c
-+++ b/sound/aoa/fabrics/layout.c
-@@ -1037,7 +1037,7 @@ static int aoa_fabric_layout_probe(struc
- }
- ldev->selfptr_headphone.ptr = ldev;
- ldev->selfptr_lineout.ptr = ldev;
-- sdev->ofdev.dev.driver_data = ldev;
-+ dev_set_drvdata(&sdev->ofdev.dev, ldev);
- list_add(&ldev->list, &layouts_list);
- layouts_list_items++;
-
-@@ -1081,7 +1081,7 @@ static int aoa_fabric_layout_probe(struc
-
- static int aoa_fabric_layout_remove(struct soundbus_dev *sdev)
- {
-- struct layout_dev *ldev = sdev->ofdev.dev.driver_data;
-+ struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev);
- int i;
-
- for (i=0; i<MAX_CODECS_PER_BUS; i++) {
-@@ -1114,7 +1114,7 @@ static int aoa_fabric_layout_remove(stru
- #ifdef CONFIG_PM
- static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t state)
- {
-- struct layout_dev *ldev = sdev->ofdev.dev.driver_data;
-+ struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev);
-
- if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off)
- ldev->gpio.methods->all_amps_off(&ldev->gpio);
-@@ -1124,7 +1124,7 @@ static int aoa_fabric_layout_suspend(str
-
- static int aoa_fabric_layout_resume(struct soundbus_dev *sdev)
- {
-- struct layout_dev *ldev = sdev->ofdev.dev.driver_data;
-+ struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev);
-
- if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off)
- ldev->gpio.methods->all_amps_restore(&ldev->gpio);
---- a/sound/aoa/soundbus/i2sbus/core.c
-+++ b/sound/aoa/soundbus/i2sbus/core.c
-@@ -358,14 +358,14 @@ static int i2sbus_probe(struct macio_dev
- return -ENODEV;
- }
-
-- dev->ofdev.dev.driver_data = control;
-+ dev_set_drvdata(&dev->ofdev.dev, control);
-
- return 0;
- }
-
- static int i2sbus_remove(struct macio_dev* dev)
- {
-- struct i2sbus_control *control = dev->ofdev.dev.driver_data;
-+ struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev);
- struct i2sbus_dev *i2sdev, *tmp;
-
- list_for_each_entry_safe(i2sdev, tmp, &control->list, item)
-@@ -377,7 +377,7 @@ static int i2sbus_remove(struct macio_de
- #ifdef CONFIG_PM
- static int i2sbus_suspend(struct macio_dev* dev, pm_message_t state)
- {
-- struct i2sbus_control *control = dev->ofdev.dev.driver_data;
-+ struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev);
- struct codec_info_item *cii;
- struct i2sbus_dev* i2sdev;
- int err, ret = 0;
-@@ -407,7 +407,7 @@ static int i2sbus_suspend(struct macio_d
-
- static int i2sbus_resume(struct macio_dev* dev)
- {
-- struct i2sbus_control *control = dev->ofdev.dev.driver_data;
-+ struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev);
- struct codec_info_item *cii;
- struct i2sbus_dev* i2sdev;
- int err, ret = 0;
---- a/sound/soc/codecs/wm8400.c
-+++ b/sound/soc/codecs/wm8400.c
-@@ -1473,8 +1473,8 @@ static int wm8400_codec_probe(struct pla
-
- codec = &priv->codec;
- codec->private_data = priv;
-- codec->control_data = dev->dev.driver_data;
-- priv->wm8400 = dev->dev.driver_data;
-+ codec->control_data = dev_get_drvdata(&dev->dev);
-+ priv->wm8400 = dev_get_drvdata(&dev->dev);
-
- ret = regulator_bulk_get(priv->wm8400->dev,
- ARRAY_SIZE(power), &power[0]);
---- a/sound/soc/codecs/wm8731.c
-+++ b/sound/soc/codecs/wm8731.c
-@@ -666,14 +666,14 @@ static int __devinit wm8731_spi_probe(st
- codec->hw_write = (hw_write_t)wm8731_spi_write;
- codec->dev = &spi->dev;
-
-- spi->dev.driver_data = wm8731;
-+ dev_set_drvdata(&spi->dev, wm8731);
-
- return wm8731_register(wm8731);
- }
-
- static int __devexit wm8731_spi_remove(struct spi_device *spi)
- {
-- struct wm8731_priv *wm8731 = spi->dev.driver_data;
-+ struct wm8731_priv *wm8731 = dev_get_drvdata(&spi->dev);
-
- wm8731_unregister(wm8731);
-
---- a/sound/soc/codecs/wm8753.c
-+++ b/sound/soc/codecs/wm8753.c
-@@ -1822,14 +1822,14 @@ static int __devinit wm8753_spi_probe(st
- codec->hw_write = (hw_write_t)wm8753_spi_write;
- codec->dev = &spi->dev;
-
-- spi->dev.driver_data = wm8753;
-+ dev_set_drvdata(&spi->dev, wm8753);
-
- return wm8753_register(wm8753);
- }
-
- static int __devexit wm8753_spi_remove(struct spi_device *spi)
- {
-- struct wm8753_priv *wm8753 = spi->dev.driver_data;
-+ struct wm8753_priv *wm8753 = dev_get_drvdata(&spi->dev);
- wm8753_unregister(wm8753);
- return 0;
- }
diff --git a/driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch
index 9292e6eb858bcd..878d050dddb521 100644
--- a/driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch
+++ b/driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch
@@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
SET_NETDEV_DEV(dev,&device->pdev.dev);
--- a/arch/um/drivers/ubd_kern.c
+++ b/arch/um/drivers/ubd_kern.c
-@@ -799,7 +799,7 @@ static int ubd_open_dev(struct ubd *ubd_
+@@ -778,7 +778,7 @@ static int ubd_open_dev(struct ubd *ubd_
static void ubd_device_release(struct device *dev)
{
@@ -51,7 +51,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
blk_cleanup_queue(ubd_dev->queue);
*ubd_dev = ((struct ubd) DEFAULT_UBD);
-@@ -828,7 +828,7 @@ static int ubd_disk_register(int major,
+@@ -807,7 +807,7 @@ static int ubd_disk_register(int major,
ubd_devs[unit].pdev.id = unit;
ubd_devs[unit].pdev.name = DRIVER_NAME;
ubd_devs[unit].pdev.dev.release = ubd_device_release;
diff --git a/driver-core/xen-block-remove-driver_data-direct-access-of-struct-device.patch b/driver-core/xen-block-remove-driver_data-direct-access-of-struct-device.patch
index 500fd4feede4e3..1d61315f827f54 100644
--- a/driver-core/xen-block-remove-driver_data-direct-access-of-struct-device.patch
+++ b/driver-core/xen-block-remove-driver_data-direct-access-of-struct-device.patch
@@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
-@@ -755,12 +755,12 @@ static int blkfront_probe(struct xenbus_
+@@ -753,12 +753,12 @@ static int blkfront_probe(struct xenbus_
/* Front end dir is a number, which is used as the id. */
info->handle = simple_strtoul(strrchr(dev->nodename, '/')+1, NULL, 0);
@@ -37,7 +37,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return err;
}
-@@ -845,7 +845,7 @@ static int blkif_recover(struct blkfront
+@@ -843,7 +843,7 @@ static int blkif_recover(struct blkfront
*/
static int blkfront_resume(struct xenbus_device *dev)
{
@@ -46,7 +46,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
int err;
dev_dbg(&dev->dev, "blkfront_resume: %s\n", dev->nodename);
-@@ -924,7 +924,7 @@ static void blkfront_connect(struct blkf
+@@ -922,7 +922,7 @@ static void blkfront_connect(struct blkf
*/
static void blkfront_closing(struct xenbus_device *dev)
{
@@ -55,7 +55,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
unsigned long flags;
dev_dbg(&dev->dev, "blkfront_closing: %s removed\n", dev->nodename);
-@@ -959,7 +959,7 @@ static void blkfront_closing(struct xenb
+@@ -957,7 +957,7 @@ static void blkfront_closing(struct xenb
static void backend_changed(struct xenbus_device *dev,
enum xenbus_state backend_state)
{
@@ -64,7 +64,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
struct block_device *bd;
dev_dbg(&dev->dev, "blkfront:backend_changed.\n");
-@@ -999,7 +999,7 @@ static void backend_changed(struct xenbu
+@@ -997,7 +997,7 @@ static void backend_changed(struct xenbu
static int blkfront_remove(struct xenbus_device *dev)
{
@@ -73,7 +73,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
dev_dbg(&dev->dev, "blkfront_remove: %s removed\n", dev->nodename);
-@@ -1012,7 +1012,7 @@ static int blkfront_remove(struct xenbus
+@@ -1010,7 +1010,7 @@ static int blkfront_remove(struct xenbus
static int blkfront_is_ready(struct xenbus_device *dev)
{
diff --git a/series b/series
index 0ce4f9183d40b7..2211c4382d1b41 100644
--- a/series
+++ b/series
@@ -96,7 +96,6 @@ driver-core/parisc-remove-driver_data-direct-access-of-struct-device.patch
driver-core/parport-remove-driver_data-direct-access-of-struct-device.patch
driver-core/s390-remove-driver_data-direct-access-of-struct-device.patch
driver-core/block-ps3-remove-driver_data-direct-access-of-struct-device.patch
-driver-core/sound-remove-driver_data-direct-access-of-struct-device.patch
driver-core/uml-remove-driver_data-direct-access-of-struct-device.patch
driver-core/usb-gadget-at91_udc-remove-driver_data-direct-access-of-struct-device.patch
driver-core/xen-remove-driver_data-direct-access-of-struct-device-from-more-drivers.patch
@@ -191,10 +190,6 @@ usb/usb-usb-storage-add-filter-to-option_ms-to-leave-unrecognized-devices-alone.
usb/usb-r8a66597-hcd-use-platform_data-instead-of-module_param.patch
usb/usb-ehci-update-toggle-state-for-linked-qhs.patch
usb/usb-replace-dma_sync_single-and-dma_sync_sg-with-dma_sync_single_for_cpu-and-dma_sync_sg_for_cpu.patch
-usb/usb-serial-adding-sierra_release_urb-function.patch
-usb/usb-serial-adding-sierra_stop_rx_urbs-function.patch
-usb/usb-serial-adding-sierra_submit_rx_urbs-function.patch
-usb/usb-serial-adding-sierra_setup_urb-function.patch
usb/usb-gadget-g_serial-append-zlp-when-tx-buffer-becomes-empty.patch
usb/usb-gadget-imx_udc-don-t-queue-more-data-when-zlp-is-to-be-sent.patch
usb/usb-cdc-acm-quirk-for-alcatel-ot-i650.patch
diff --git a/staging/0079-Staging-rt2860-remove-DOT11_N_SUPPORT-ifdefs.patch b/staging/0079-Staging-rt2860-remove-DOT11_N_SUPPORT-ifdefs.patch
index cd1dfaaadbbdd0..1868e2275ba220 100644
--- a/staging/0079-Staging-rt2860-remove-DOT11_N_SUPPORT-ifdefs.patch
+++ b/staging/0079-Staging-rt2860-remove-DOT11_N_SUPPORT-ifdefs.patch
@@ -1120,7 +1120,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
RTMP_IO_READ32(pAd, TX_RTS_CFG, &MacReg);
@@ -5303,9 +5239,7 @@ VOID AsicUpdateProtect(
#else
- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+ // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
if ((
-#ifdef DOT11_N_SUPPORT
(pAd->CommonCfg.BACapability.field.AmsduEnable) ||
diff --git a/staging/0080-Staging-rt2870-remove-DOT11_N_SUPPORT-ifdefs.patch b/staging/0080-Staging-rt2870-remove-DOT11_N_SUPPORT-ifdefs.patch
index 5dafbb0a49a211..f3c6af7cbbe663 100644
--- a/staging/0080-Staging-rt2870-remove-DOT11_N_SUPPORT-ifdefs.patch
+++ b/staging/0080-Staging-rt2870-remove-DOT11_N_SUPPORT-ifdefs.patch
@@ -1141,7 +1141,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
RTMP_IO_READ32(pAd, TX_RTS_CFG, &MacReg);
@@ -5204,9 +5142,7 @@ VOID AsicUpdateProtect(
#else
- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+ // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
if ((
-#ifdef DOT11_N_SUPPORT
(pAd->CommonCfg.BACapability.field.AmsduEnable) ||
diff --git a/staging/0081-Staging-rt3070-remove-DOT11_N_SUPPORT-ifdefs.patch b/staging/0081-Staging-rt3070-remove-DOT11_N_SUPPORT-ifdefs.patch
index ce499241e1899a..add2b3bb6934e5 100644
--- a/staging/0081-Staging-rt3070-remove-DOT11_N_SUPPORT-ifdefs.patch
+++ b/staging/0081-Staging-rt3070-remove-DOT11_N_SUPPORT-ifdefs.patch
@@ -1161,7 +1161,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
RTMP_IO_READ32(pAd, TX_RTS_CFG, &MacReg);
@@ -5213,9 +5151,7 @@ VOID AsicUpdateProtect(
- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+ // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
if ((
-#ifdef DOT11_N_SUPPORT
(pAd->CommonCfg.BACapability.field.AmsduEnable) ||
diff --git a/staging/0088-Staging-rt2860-remove-dead-code.patch b/staging/0088-Staging-rt2860-remove-dead-code.patch
index ca9504a94a291b..fd439460e4943f 100644
--- a/staging/0088-Staging-rt2860-remove-dead-code.patch
+++ b/staging/0088-Staging-rt2860-remove-dead-code.patch
@@ -268,7 +268,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- MacReg |= (pAd->CommonCfg.RtsThreshold << 8);
-#else
+
- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+ // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
if ((
(pAd->CommonCfg.BACapability.field.AmsduEnable) ||
@@ -5231,7 +5223,6 @@ VOID AsicUpdateProtect(
diff --git a/staging/0089-Staging-rt2870-remove-dead-code.patch b/staging/0089-Staging-rt2870-remove-dead-code.patch
index 3395004beaa4a5..dbcfaa6e5ffac0 100644
--- a/staging/0089-Staging-rt2870-remove-dead-code.patch
+++ b/staging/0089-Staging-rt2870-remove-dead-code.patch
@@ -1275,7 +1275,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- MacReg |= (pAd->CommonCfg.RtsThreshold << 8);
-#else
+
- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+ // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
if ((
(pAd->CommonCfg.BACapability.field.AmsduEnable) ||
@@ -5137,7 +5070,6 @@ VOID AsicUpdateProtect(
diff --git a/staging/0094-Staging-rt-28-30-70-merge-rt-28-30-70-common-.-ch.patch b/staging/0094-Staging-rt-28-30-70-merge-rt-28-30-70-common-.-ch.patch
index 4fb26493747c35..0fb9e4c6be3d68 100644
--- a/staging/0094-Staging-rt-28-30-70-merge-rt-28-30-70-common-.-ch.patch
+++ b/staging/0094-Staging-rt-28-30-70-merge-rt-28-30-70-common-.-ch.patch
@@ -22790,7 +22790,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- RTMP_IO_READ32(pAd, TX_RTS_CFG, &MacReg);
- MacReg &= 0xFF0000FF;
-
-- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+- // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
- if ((
- (pAd->CommonCfg.BACapability.field.AmsduEnable) ||
- (pAd->CommonCfg.bAggregationCapable == TRUE))
diff --git a/staging/0100-Staging-rt28-67-0-merge-rt28-67-0-common-.-ch.patch b/staging/0100-Staging-rt28-67-0-merge-rt28-67-0-common-.-ch.patch
index 3776b069634e95..1d2fa8285162d8 100644
--- a/staging/0100-Staging-rt28-67-0-merge-rt28-67-0-common-.-ch.patch
+++ b/staging/0100-Staging-rt28-67-0-merge-rt28-67-0-common-.-ch.patch
@@ -20349,7 +20349,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- RTMP_IO_READ32(pAd, TX_RTS_CFG, &MacReg);
- MacReg &= 0xFF0000FF;
-
-- // If the user want disable RtsThreshold and enbale Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
+- // If the user want disable RtsThreshold and enable Amsdu/Ralink-Aggregation, set the RtsThreshold as 4096
- if ((
- (pAd->CommonCfg.BACapability.field.AmsduEnable) ||
- (pAd->CommonCfg.bAggregationCapable == TRUE))
diff --git a/staging/staging-add-mailing-list-address-for-staging-tree.patch b/staging/staging-add-mailing-list-address-for-staging-tree.patch
index f5027b474aba8b..dd36d745e8d3cc 100644
--- a/staging/staging-add-mailing-list-address-for-staging-tree.patch
+++ b/staging/staging-add-mailing-list-address-for-staging-tree.patch
@@ -13,7 +13,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -5383,6 +5383,7 @@ P: Greg Kroah-Hartman
+@@ -5496,6 +5496,7 @@ P: Greg Kroah-Hartman
M: gregkh@suse.de
L: linux-kernel@vger.kernel.org
T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
diff --git a/usb.current/usb-ftdi-sio-new-device-ids.patch b/usb.current/usb-ftdi-sio-new-device-ids.patch
index dd4f7bad571f55..3ff238fee24cbf 100644
--- a/usb.current/usb-ftdi-sio-new-device-ids.patch
+++ b/usb.current/usb-ftdi-sio-new-device-ids.patch
@@ -24,7 +24,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -672,6 +672,7 @@ static struct usb_device_id id_table_com
+@@ -673,6 +673,7 @@ static struct usb_device_id id_table_com
{ USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
{ USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
diff --git a/usb.current/usb-option.c-add-toshiba-3g-hsdpa-sm-bus-minicard-device-id.patch b/usb.current/usb-option.c-add-toshiba-3g-hsdpa-sm-bus-minicard-device-id.patch
index c865699bd73a99..62a5280656b65d 100644
--- a/usb.current/usb-option.c-add-toshiba-3g-hsdpa-sm-bus-minicard-device-id.patch
+++ b/usb.current/usb-option.c-add-toshiba-3g-hsdpa-sm-bus-minicard-device-id.patch
@@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -304,6 +304,10 @@ static int option_resume(struct usb_ser
+@@ -305,6 +305,10 @@ static int option_resume(struct usb_ser
#define DLINK_PRODUCT_DWM_652 0x3e04
@@ -32,7 +32,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
-@@ -522,6 +526,7 @@ static struct usb_device_id option_ids[]
+@@ -523,6 +527,7 @@ static struct usb_device_id option_ids[]
{ USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
{ USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
{ USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */
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
diff --git a/version b/version
index cb7a35cabde906..ac195eb95b602e 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-2.6.30
+2.6.30-git8