From 08b6b2c794efd20bb2f84575aec03186e483776d Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman
Date: Wed, 26 Jun 2013 16:26:15 -0700
Subject: misc usb cleanup patches added
---
series | 10 +
...e-custom-debug-macro-and-module-parameter.patch | 125 +++++++++
usb-adutux-remove-custom-debug-macro.patch | 283 +++++++++++++++++++++
usb-adutux-remove-direct-calls-to-printk.patch | 56 ++++
usb-adutux-remove-unneeded-tracing-macros.patch | 211 +++++++++++++++
usb-ldusb-remove-custom-dbg_info-macro.patch | 86 +++++++
...e-custom-debug-macro-and-module-parameter.patch | 114 +++++++++
usb-legotower-remove-direct-calls-to-printk.patch | 64 +++++
usb-legotower-remove-unneeded-tracing-macros.patch | 217 ++++++++++++++++
usb-legousbtower-remove-custom-debug-macro.patch | 110 ++++++++
...isc-remove-config_usb_debug-from-makefile.patch | 27 ++
usb-serial-idr.patch | 2 +-
usb-serial-ports-add-minor-and-port-number.patch | 10 +-
13 files changed, 1309 insertions(+), 6 deletions(-)
create mode 100644 usb-adutux-remove-custom-debug-macro-and-module-parameter.patch
create mode 100644 usb-adutux-remove-custom-debug-macro.patch
create mode 100644 usb-adutux-remove-direct-calls-to-printk.patch
create mode 100644 usb-adutux-remove-unneeded-tracing-macros.patch
create mode 100644 usb-ldusb-remove-custom-dbg_info-macro.patch
create mode 100644 usb-legotower-remove-custom-debug-macro-and-module-parameter.patch
create mode 100644 usb-legotower-remove-direct-calls-to-printk.patch
create mode 100644 usb-legotower-remove-unneeded-tracing-macros.patch
create mode 100644 usb-legousbtower-remove-custom-debug-macro.patch
create mode 100644 usb-misc-remove-config_usb_debug-from-makefile.patch
diff --git a/series b/series
index ddc316cbf379f6..048b44eb81eb06 100644
--- a/series
+++ b/series
@@ -1,4 +1,14 @@
# My specific stuff, at the top to make it easier to work stuff below.
+usb-ldusb-remove-custom-dbg_info-macro.patch
+usb-legotower-remove-unneeded-tracing-macros.patch
+usb-legousbtower-remove-custom-debug-macro.patch
+usb-legotower-remove-custom-debug-macro-and-module-parameter.patch
+usb-legotower-remove-direct-calls-to-printk.patch
+usb-adutux-remove-unneeded-tracing-macros.patch
+usb-adutux-remove-custom-debug-macro.patch
+usb-adutux-remove-custom-debug-macro-and-module-parameter.patch
+usb-adutux-remove-direct-calls-to-printk.patch
+usb-misc-remove-config_usb_debug-from-makefile.patch
cdc-acm.patch
usb-serial-ports-add-minor-and-port-number.patch
usb-serial-idr.patch
diff --git a/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch b/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch
new file mode 100644
index 00000000000000..902e4fb2eee2d5
--- /dev/null
+++ b/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch
@@ -0,0 +1,125 @@
+From foo@baz Wed Jun 26 16:22:38 PDT 2013
+Date: Wed, 26 Jun 2013 16:22:38 -0700
+To: Greg KH
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: adutux: remove custom debug macro and module parameter
+
+Now that we don't use the dbg() macro, remove it, and the module
+parameter. Also fix up the "dump_data" function to properly use the
+dynamic debug core and the correct printk options, and don't call it
+twice per function, as the data doesn't change from the beginning and
+the end of the call.
+
+Signed-off-by: Greg Kroah-Hartman
+
+---
+ drivers/usb/misc/adutux.c | 50 ++++++++--------------------------------------
+ 1 file changed, 9 insertions(+), 41 deletions(-)
+
+--- a/drivers/usb/misc/adutux.c
++++ b/drivers/usb/misc/adutux.c
+@@ -27,30 +27,11 @@
+ #include
+ #include
+
+-#ifdef CONFIG_USB_DEBUG
+-static int debug = 5;
+-#else
+-static int debug = 1;
+-#endif
+-
+-/* Use our own dbg macro */
+-#undef dbg
+-#define dbg(lvl, format, arg...) \
+-do { \
+- if (debug >= lvl) \
+- printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg); \
+-} while (0)
+-
+-
+ /* Version Information */
+ #define DRIVER_VERSION "v0.0.13"
+ #define DRIVER_AUTHOR "John Homppi"
+ #define DRIVER_DESC "adutux (see www.ontrak.net)"
+
+-/* Module parameters */
+-module_param(debug, int, S_IRUGO | S_IWUSR);
+-MODULE_PARM_DESC(debug, "Debug enabled or not");
+-
+ /* Define these values to match your device */
+ #define ADU_VENDOR_ID 0x0a07
+ #define ADU_PRODUCT_ID 0x0064
+@@ -124,19 +105,11 @@ static DEFINE_MUTEX(adutux_mutex);
+
+ static struct usb_driver adu_driver;
+
+-static void adu_debug_data(int level, const char *function, int size,
+- const unsigned char *data)
++static inline void adu_debug_data(struct device *dev, const char *function,
++ int size, const unsigned char *data)
+ {
+- int i;
+-
+- if (debug < level)
+- return;
+-
+- printk(KERN_DEBUG "%s: %s - length = %d, data = ",
+- __FILE__, function, size);
+- for (i = 0; i < size; ++i)
+- printk("%.2x ", data[i]);
+- printk("\n");
++ dev_dbg(dev, "%s - length = %d, data = %*ph\n",
++ function, size, size, data);
+ }
+
+ /**
+@@ -185,8 +158,8 @@ static void adu_interrupt_in_callback(st
+ struct adu_device *dev = urb->context;
+ int status = urb->status;
+
+- adu_debug_data(5, __func__, urb->actual_length,
+- urb->transfer_buffer);
++ adu_debug_data(&dev->udev->dev, __func__,
++ urb->actual_length, urb->transfer_buffer);
+
+ spin_lock(&dev->buflock);
+
+@@ -222,8 +195,6 @@ exit:
+ spin_unlock(&dev->buflock);
+ /* always wake up so we recover from errors */
+ wake_up_interruptible(&dev->read_wait);
+- adu_debug_data(5, __func__, urb->actual_length,
+- urb->transfer_buffer);
+ }
+
+ static void adu_interrupt_out_callback(struct urb *urb)
+@@ -231,7 +202,8 @@ static void adu_interrupt_out_callback(s
+ struct adu_device *dev = urb->context;
+ int status = urb->status;
+
+- adu_debug_data(5,__func__, urb->actual_length, urb->transfer_buffer);
++ adu_debug_data(&dev->udev->dev, __func__,
++ urb->actual_length, urb->transfer_buffer);
+
+ if (status != 0) {
+ if ((status != -ENOENT) &&
+@@ -240,17 +212,13 @@ static void adu_interrupt_out_callback(s
+ "%s :nonzero status received: %d\n", __func__,
+ status);
+ }
+- goto exit;
++ return;
+ }
+
+ spin_lock(&dev->buflock);
+ dev->out_urb_finished = 1;
+ wake_up(&dev->write_wait);
+ spin_unlock(&dev->buflock);
+-exit:
+-
+- adu_debug_data(5, __func__, urb->actual_length,
+- urb->transfer_buffer);
+ }
+
+ static int adu_open(struct inode *inode, struct file *file)
diff --git a/usb-adutux-remove-custom-debug-macro.patch b/usb-adutux-remove-custom-debug-macro.patch
new file mode 100644
index 00000000000000..82102a623df3e9
--- /dev/null
+++ b/usb-adutux-remove-custom-debug-macro.patch
@@ -0,0 +1,283 @@
+From foo@baz Wed Jun 26 16:22:06 PDT 2013
+Date: Wed, 26 Jun 2013 16:22:06 -0700
+To: Greg KH
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: adutux: remove custom debug macro
+
+Don't use a custom debug macro for just one driver, instead rely on the
+in-kernel dynamic debugging logic, which can handle this much better.
+
+Signed-off-by: Greg Kroah-Hartman
+
+---
+ drivers/usb/misc/adutux.c | 97 +++++++++++++++++++++++++++-------------------
+ 1 file changed, 58 insertions(+), 39 deletions(-)
+
+--- a/drivers/usb/misc/adutux.c
++++ b/drivers/usb/misc/adutux.c
+@@ -147,10 +147,8 @@ static void adu_abort_transfers(struct a
+ {
+ unsigned long flags;
+
+- if (dev->udev == NULL) {
+- dbg(1," %s : udev is null", __func__);
++ if (dev->udev == NULL)
+ return;
+- }
+
+ /* shutdown transfer */
+
+@@ -195,8 +193,9 @@ static void adu_interrupt_in_callback(st
+ if (status != 0) {
+ if ((status != -ENOENT) && (status != -ECONNRESET) &&
+ (status != -ESHUTDOWN)) {
+- dbg(1," %s : nonzero status received: %d",
+- __func__, status);
++ dev_dbg(&dev->udev->dev,
++ "%s : nonzero status received: %d\n",
++ __func__, status);
+ }
+ goto exit;
+ }
+@@ -210,10 +209,11 @@ static void adu_interrupt_in_callback(st
+ dev->interrupt_in_buffer, urb->actual_length);
+
+ dev->read_buffer_length += urb->actual_length;
+- dbg(2," %s reading %d ", __func__,
+- urb->actual_length);
++ dev_dbg(&dev->udev->dev,"%s reading %d\n", __func__,
++ urb->actual_length);
+ } else {
+- dbg(1," %s : read_buffer overflow", __func__);
++ dev_dbg(&dev->udev->dev,"%s : read_buffer overflow\n",
++ __func__);
+ }
+ }
+
+@@ -236,8 +236,9 @@ static void adu_interrupt_out_callback(s
+ if (status != 0) {
+ if ((status != -ENOENT) &&
+ (status != -ECONNRESET)) {
+- dbg(1, " %s :nonzero status received: %d",
+- __func__, status);
++ dev_dbg(&dev->udev->dev,
++ "%s :nonzero status received: %d\n", __func__,
++ status);
+ }
+ goto exit;
+ }
+@@ -261,10 +262,8 @@ static int adu_open(struct inode *inode,
+
+ subminor = iminor(inode);
+
+- if ((retval = mutex_lock_interruptible(&adutux_mutex))) {
+- dbg(2, "%s : mutex lock failed", __func__);
++ if ((retval = mutex_lock_interruptible(&adutux_mutex)))
+ goto exit_no_lock;
+- }
+
+ interface = usb_find_interface(&adu_driver, subminor);
+ if (!interface) {
+@@ -287,7 +286,8 @@ static int adu_open(struct inode *inode,
+ }
+
+ ++dev->open_count;
+- dbg(2,"%s : open count %d", __func__, dev->open_count);
++ dev_dbg(&dev->udev->dev, "%s: open count %d\n", __func__,
++ dev->open_count);
+
+ /* save device in the file's private structure */
+ file->private_data = dev;
+@@ -324,7 +324,8 @@ static void adu_release_internal(struct
+ {
+ /* decrement our usage count for the device */
+ --dev->open_count;
+- dbg(2," %s : open count %d", __func__, dev->open_count);
++ dev_dbg(&dev->udev->dev, "%s : open count %d\n", __func__,
++ dev->open_count);
+ if (dev->open_count <= 0) {
+ adu_abort_transfers(dev);
+ dev->open_count = 0;
+@@ -337,14 +338,12 @@ static int adu_release(struct inode *ino
+ int retval = 0;
+
+ if (file == NULL) {
+- dbg(1," %s : file is NULL", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ dev = file->private_data;
+ if (dev == NULL) {
+- dbg(1," %s : object is NULL", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+@@ -352,7 +351,7 @@ static int adu_release(struct inode *ino
+ mutex_lock(&adutux_mutex); /* not interruptible */
+
+ if (dev->open_count <= 0) {
+- dbg(1," %s : device not opened", __func__);
++ dev_dbg(&dev->udev->dev, "%s : device not opened\n", __func__);
+ retval = -ENODEV;
+ goto unlock;
+ }
+@@ -396,17 +395,19 @@ static ssize_t adu_read(struct file *fil
+
+ /* verify that some data was requested */
+ if (count == 0) {
+- dbg(1," %s : read request of 0 bytes", __func__);
++ dev_dbg(&dev->udev->dev, "%s : read request of 0 bytes\n",
++ __func__);
+ goto exit;
+ }
+
+ timeout = COMMAND_TIMEOUT;
+- dbg(2," %s : about to start looping", __func__);
++ dev_dbg(&dev->udev->dev, "%s : about to start looping\n", __func__);
+ while (bytes_to_read) {
+ int data_in_secondary = dev->secondary_tail - dev->secondary_head;
+- dbg(2," %s : while, data_in_secondary=%d, status=%d",
+- __func__, data_in_secondary,
+- dev->interrupt_in_urb->status);
++ dev_dbg(&dev->udev->dev,
++ "%s : while, data_in_secondary=%d, status=%d\n",
++ __func__, data_in_secondary,
++ dev->interrupt_in_urb->status);
+
+ if (data_in_secondary) {
+ /* drain secondary buffer */
+@@ -429,8 +430,9 @@ static ssize_t adu_read(struct file *fil
+ if (dev->read_buffer_length) {
+ /* we secure access to the primary */
+ char *tmp;
+- dbg(2," %s : swap, read_buffer_length = %d",
+- __func__, dev->read_buffer_length);
++ dev_dbg(&dev->udev->dev,
++ "%s : swap, read_buffer_length = %d\n",
++ __func__, dev->read_buffer_length);
+ tmp = dev->read_buffer_secondary;
+ dev->read_buffer_secondary = dev->read_buffer_primary;
+ dev->read_buffer_primary = tmp;
+@@ -445,10 +447,14 @@ static ssize_t adu_read(struct file *fil
+ if (!dev->read_urb_finished) {
+ /* somebody is doing IO */
+ spin_unlock_irqrestore(&dev->buflock, flags);
+- dbg(2," %s : submitted already", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s : submitted already\n",
++ __func__);
+ } else {
+ /* we must initiate input */
+- dbg(2," %s : initiate input", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s : initiate input\n",
++ __func__);
+ dev->read_urb_finished = 0;
+ spin_unlock_irqrestore(&dev->buflock, flags);
+
+@@ -466,7 +472,9 @@ static ssize_t adu_read(struct file *fil
+ if (retval == -ENOMEM) {
+ retval = bytes_read ? bytes_read : -ENOMEM;
+ }
+- dbg(2," %s : submit failed", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s : submit failed\n",
++ __func__);
+ goto exit;
+ }
+ }
+@@ -485,13 +493,16 @@ static ssize_t adu_read(struct file *fil
+ remove_wait_queue(&dev->read_wait, &wait);
+
+ if (timeout <= 0) {
+- dbg(2," %s : timeout", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s : timeout\n", __func__);
+ retval = bytes_read ? bytes_read : -ETIMEDOUT;
+ goto exit;
+ }
+
+ if (signal_pending(current)) {
+- dbg(2," %s : signal pending", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s : signal pending\n",
++ __func__);
+ retval = bytes_read ? bytes_read : -EINTR;
+ goto exit;
+ }
+@@ -554,7 +565,8 @@ static ssize_t adu_write(struct file *fi
+
+ /* verify that we actually have some data to write */
+ if (count == 0) {
+- dbg(1," %s : write request of 0 bytes", __func__);
++ dev_dbg(&dev->udev->dev, "%s : write request of 0 bytes\n",
++ __func__);
+ goto exit;
+ }
+
+@@ -567,13 +579,15 @@ static ssize_t adu_write(struct file *fi
+
+ mutex_unlock(&dev->mtx);
+ if (signal_pending(current)) {
+- dbg(1," %s : interrupted", __func__);
++ dev_dbg(&dev->udev->dev, "%s : interrupted\n",
++ __func__);
+ set_current_state(TASK_RUNNING);
+ retval = -EINTR;
+ goto exit_onqueue;
+ }
+ if (schedule_timeout(COMMAND_TIMEOUT) == 0) {
+- dbg(1, "%s - command timed out.", __func__);
++ dev_dbg(&dev->udev->dev,
++ "%s - command timed out.\n", __func__);
+ retval = -ETIMEDOUT;
+ goto exit_onqueue;
+ }
+@@ -584,18 +598,22 @@ static ssize_t adu_write(struct file *fi
+ goto exit_nolock;
+ }
+
+- dbg(4," %s : in progress, count = %Zd", __func__, count);
++ dev_dbg(&dev->udev->dev,
++ "%s : in progress, count = %Zd\n",
++ __func__, count);
+ } else {
+ spin_unlock_irqrestore(&dev->buflock, flags);
+ set_current_state(TASK_RUNNING);
+ remove_wait_queue(&dev->write_wait, &waita);
+- dbg(4," %s : sending, count = %Zd", __func__, count);
++ dev_dbg(&dev->udev->dev, "%s : sending, count = %Zd\n",
++ __func__, count);
+
+ /* write the data into interrupt_out_buffer from userspace */
+ buffer_size = usb_endpoint_maxp(dev->interrupt_out_endpoint);
+ bytes_to_write = count > buffer_size ? buffer_size : count;
+- dbg(4," %s : buffer_size = %Zd, count = %Zd, bytes_to_write = %Zd",
+- __func__, buffer_size, count, bytes_to_write);
++ dev_dbg(&dev->udev->dev,
++ "%s : buffer_size = %Zd, count = %Zd, bytes_to_write = %Zd\n",
++ __func__, buffer_size, count, bytes_to_write);
+
+ if (copy_from_user(dev->interrupt_out_buffer, buffer, bytes_to_write) != 0) {
+ retval = -EFAULT;
+@@ -778,7 +796,7 @@ static int adu_probe(struct usb_interfac
+ dev_err(&interface->dev, "Could not retrieve serial number\n");
+ goto error;
+ }
+- dbg(2," %s : serial_number=%s", __func__, dev->serial_number);
++ dev_dbg(&interface->dev,"serial_number=%s", dev->serial_number);
+
+ /* we can register the device now, as it is ready */
+ usb_set_intfdata(interface, dev);
+@@ -828,7 +846,8 @@ static void adu_disconnect(struct usb_in
+ usb_set_intfdata(interface, NULL);
+
+ /* if the device is not opened, then we clean up right now */
+- dbg(2," %s : open count %d", __func__, dev->open_count);
++ dev_dbg(&dev->udev->dev, "%s : open count %d\n",
++ __func__, dev->open_count);
+ if (!dev->open_count)
+ adu_delete(dev);
+
diff --git a/usb-adutux-remove-direct-calls-to-printk.patch b/usb-adutux-remove-direct-calls-to-printk.patch
new file mode 100644
index 00000000000000..1160c65223bddf
--- /dev/null
+++ b/usb-adutux-remove-direct-calls-to-printk.patch
@@ -0,0 +1,56 @@
+From foo@baz Wed Jun 26 16:23:03 PDT 2013
+Date: Wed, 26 Jun 2013 16:23:03 -0700
+To: Greg KH
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: adutux: remove direct calls to printk()
+
+Use the pr_* calls instead, which are much more descriptive.
+
+Signed-off-by: Greg Kroah-Hartman
+---
+ drivers/usb/misc/adutux.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/usb/misc/adutux.c
++++ b/drivers/usb/misc/adutux.c
+@@ -18,6 +18,8 @@
+ *
+ */
+
++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
++
+ #include
+ #include
+ #include
+@@ -235,8 +237,8 @@ static int adu_open(struct inode *inode,
+
+ interface = usb_find_interface(&adu_driver, subminor);
+ if (!interface) {
+- printk(KERN_ERR "adutux: %s - error, can't find device for "
+- "minor %d\n", __func__, subminor);
++ pr_err("%s - error, can't find device for minor %d\n",
++ __func__, subminor);
+ retval = -ENODEV;
+ goto exit_no_device;
+ }
+@@ -356,8 +358,7 @@ static ssize_t adu_read(struct file *fil
+ /* verify that the device wasn't unplugged */
+ if (dev->udev == NULL) {
+ retval = -ENODEV;
+- printk(KERN_ERR "adutux: No device or device unplugged %d\n",
+- retval);
++ pr_err("No device or device unplugged %d\n", retval);
+ goto exit;
+ }
+
+@@ -526,8 +527,7 @@ static ssize_t adu_write(struct file *fi
+ /* verify that the device wasn't unplugged */
+ if (dev->udev == NULL) {
+ retval = -ENODEV;
+- printk(KERN_ERR "adutux: No device or device unplugged %d\n",
+- retval);
++ pr_err("No device or device unplugged %d\n", retval);
+ goto exit;
+ }
+
diff --git a/usb-adutux-remove-unneeded-tracing-macros.patch b/usb-adutux-remove-unneeded-tracing-macros.patch
new file mode 100644
index 00000000000000..d36b2d900c8190
--- /dev/null
+++ b/usb-adutux-remove-unneeded-tracing-macros.patch
@@ -0,0 +1,211 @@
+From foo@baz Wed Jun 26 16:21:19 PDT 2013
+Date: Wed, 26 Jun 2013 16:21:19 -0700
+To: Greg KH
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: adutux: remove unneeded tracing macros
+
+Remove the unneeded tracing macros in this driver. The kernel has a
+built-in trace function that can be used if this is really still needed.
+
+Signed-off-by: Greg Kroah-Hartman
+
+---
+ drivers/usb/misc/adutux.c | 41 +----------------------------------------
+ 1 file changed, 1 insertion(+), 40 deletions(-)
+
+--- a/drivers/usb/misc/adutux.c
++++ b/drivers/usb/misc/adutux.c
+@@ -147,11 +147,9 @@ static void adu_abort_transfers(struct a
+ {
+ unsigned long flags;
+
+- dbg(2," %s : enter", __func__);
+-
+ if (dev->udev == NULL) {
+ dbg(1," %s : udev is null", __func__);
+- goto exit;
++ return;
+ }
+
+ /* shutdown transfer */
+@@ -170,15 +168,10 @@ static void adu_abort_transfers(struct a
+ usb_kill_urb(dev->interrupt_out_urb);
+ } else
+ spin_unlock_irqrestore(&dev->buflock, flags);
+-
+-exit:
+- dbg(2," %s : leave", __func__);
+ }
+
+ static void adu_delete(struct adu_device *dev)
+ {
+- dbg(2, "%s enter", __func__);
+-
+ /* free data structures */
+ usb_free_urb(dev->interrupt_in_urb);
+ usb_free_urb(dev->interrupt_out_urb);
+@@ -187,8 +180,6 @@ static void adu_delete(struct adu_device
+ kfree(dev->interrupt_in_buffer);
+ kfree(dev->interrupt_out_buffer);
+ kfree(dev);
+-
+- dbg(2, "%s : leave", __func__);
+ }
+
+ static void adu_interrupt_in_callback(struct urb *urb)
+@@ -196,7 +187,6 @@ static void adu_interrupt_in_callback(st
+ struct adu_device *dev = urb->context;
+ int status = urb->status;
+
+- dbg(4," %s : enter, status %d", __func__, status);
+ adu_debug_data(5, __func__, urb->actual_length,
+ urb->transfer_buffer);
+
+@@ -234,7 +224,6 @@ exit:
+ wake_up_interruptible(&dev->read_wait);
+ adu_debug_data(5, __func__, urb->actual_length,
+ urb->transfer_buffer);
+- dbg(4," %s : leave, status %d", __func__, status);
+ }
+
+ static void adu_interrupt_out_callback(struct urb *urb)
+@@ -242,7 +231,6 @@ static void adu_interrupt_out_callback(s
+ struct adu_device *dev = urb->context;
+ int status = urb->status;
+
+- dbg(4," %s : enter, status %d", __func__, status);
+ adu_debug_data(5,__func__, urb->actual_length, urb->transfer_buffer);
+
+ if (status != 0) {
+@@ -262,7 +250,6 @@ exit:
+
+ adu_debug_data(5, __func__, urb->actual_length,
+ urb->transfer_buffer);
+- dbg(4," %s : leave, status %d", __func__, status);
+ }
+
+ static int adu_open(struct inode *inode, struct file *file)
+@@ -272,8 +259,6 @@ static int adu_open(struct inode *inode,
+ int subminor;
+ int retval;
+
+- dbg(2,"%s : enter", __func__);
+-
+ subminor = iminor(inode);
+
+ if ((retval = mutex_lock_interruptible(&adutux_mutex))) {
+@@ -332,14 +317,11 @@ static int adu_open(struct inode *inode,
+ exit_no_device:
+ mutex_unlock(&adutux_mutex);
+ exit_no_lock:
+- dbg(2,"%s : leave, return value %d ", __func__, retval);
+ return retval;
+ }
+
+ static void adu_release_internal(struct adu_device *dev)
+ {
+- dbg(2," %s : enter", __func__);
+-
+ /* decrement our usage count for the device */
+ --dev->open_count;
+ dbg(2," %s : open count %d", __func__, dev->open_count);
+@@ -347,8 +329,6 @@ static void adu_release_internal(struct
+ adu_abort_transfers(dev);
+ dev->open_count = 0;
+ }
+-
+- dbg(2," %s : leave", __func__);
+ }
+
+ static int adu_release(struct inode *inode, struct file *file)
+@@ -356,8 +336,6 @@ static int adu_release(struct inode *ino
+ struct adu_device *dev;
+ int retval = 0;
+
+- dbg(2," %s : enter", __func__);
+-
+ if (file == NULL) {
+ dbg(1," %s : file is NULL", __func__);
+ retval = -ENODEV;
+@@ -388,7 +366,6 @@ static int adu_release(struct inode *ino
+ unlock:
+ mutex_unlock(&adutux_mutex);
+ exit:
+- dbg(2," %s : leave, return value %d", __func__, retval);
+ return retval;
+ }
+
+@@ -405,11 +382,7 @@ static ssize_t adu_read(struct file *fil
+ unsigned long flags;
+ DECLARE_WAITQUEUE(wait, current);
+
+- dbg(2," %s : enter, count = %Zd, file=%p", __func__, count, file);
+-
+ dev = file->private_data;
+- dbg(2," %s : dev=%p", __func__, dev);
+-
+ if (mutex_lock_interruptible(&dev->mtx))
+ return -ERESTARTSYS;
+
+@@ -551,7 +524,6 @@ exit:
+ /* unlock the device */
+ mutex_unlock(&dev->mtx);
+
+- dbg(2," %s : leave, return value %d", __func__, retval);
+ return retval;
+ }
+
+@@ -566,8 +538,6 @@ static ssize_t adu_write(struct file *fi
+ unsigned long flags;
+ int retval;
+
+- dbg(2," %s : enter, count = %Zd", __func__, count);
+-
+ dev = file->private_data;
+
+ retval = mutex_lock_interruptible(&dev->mtx);
+@@ -664,7 +634,6 @@ static ssize_t adu_write(struct file *fi
+ exit:
+ mutex_unlock(&dev->mtx);
+ exit_nolock:
+- dbg(2," %s : leave, return value %d", __func__, retval);
+ return retval;
+
+ exit_onqueue:
+@@ -710,8 +679,6 @@ static int adu_probe(struct usb_interfac
+ int out_end_size;
+ int i;
+
+- dbg(2," %s : enter", __func__);
+-
+ if (udev == NULL) {
+ dev_err(&interface->dev, "udev is NULL.\n");
+ goto exit;
+@@ -832,8 +799,6 @@ static int adu_probe(struct usb_interfac
+ udev->descriptor.idProduct, dev->serial_number,
+ (dev->minor - ADU_MINOR_BASE));
+ exit:
+- dbg(2," %s : leave, return value %p (dev)", __func__, dev);
+-
+ return retval;
+
+ error:
+@@ -851,8 +816,6 @@ static void adu_disconnect(struct usb_in
+ struct adu_device *dev;
+ int minor;
+
+- dbg(2," %s : enter", __func__);
+-
+ dev = usb_get_intfdata(interface);
+
+ mutex_lock(&dev->mtx); /* not interruptible */
+@@ -873,8 +836,6 @@ static void adu_disconnect(struct usb_in
+
+ dev_info(&interface->dev, "ADU device adutux%d now disconnected\n",
+ (minor - ADU_MINOR_BASE));
+-
+- dbg(2," %s : leave", __func__);
+ }
+
+ /* usb specific object needed to register this driver with the usb subsystem */
diff --git a/usb-ldusb-remove-custom-dbg_info-macro.patch b/usb-ldusb-remove-custom-dbg_info-macro.patch
new file mode 100644
index 00000000000000..ebb53dde670bad
--- /dev/null
+++ b/usb-ldusb-remove-custom-dbg_info-macro.patch
@@ -0,0 +1,86 @@
+From foo@baz Wed Jun 26 16:13:27 PDT 2013
+Date: Wed, 26 Jun 2013 16:13:27 -0700
+To: Greg KH
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: ldusb: remove custom dbg_info() macro
+
+We want to get rid of CONFIG_USB_DEBUG, so remove the reliance of the
+ldusb driver on it. Don't use the custom macro, or a special module
+parameter, instead, rely on the in-kernel dynamic debugging
+infrastructure, which is much easier to use, and consistant across the
+whole kernel.
+
+Signed-off-by: Greg Kroah-Hartman
+---
+ drivers/usb/misc/ldusb.c | 31 ++++++++++---------------------
+ 1 file changed, 10 insertions(+), 21 deletions(-)
+
+--- a/drivers/usb/misc/ldusb.c
++++ b/drivers/usb/misc/ldusb.c
+@@ -129,19 +129,6 @@ MODULE_DESCRIPTION("LD USB Driver");
+ MODULE_LICENSE("GPL");
+ MODULE_SUPPORTED_DEVICE("LD USB Devices");
+
+-#ifdef CONFIG_USB_DEBUG
+- static int debug = 1;
+-#else
+- static int debug = 0;
+-#endif
+-
+-/* Use our own dbg macro */
+-#define dbg_info(dev, format, arg...) do { if (debug) dev_info(dev , format , ## arg); } while (0)
+-
+-/* Module parameters */
+-module_param(debug, int, S_IRUGO | S_IWUSR);
+-MODULE_PARM_DESC(debug, "Debug enabled or not");
+-
+ /* All interrupt in transfers are collected in a ring buffer to
+ * avoid racing conditions and get better performance of the driver.
+ */
+@@ -256,8 +243,9 @@ static void ld_usb_interrupt_in_callback
+ status == -ESHUTDOWN) {
+ goto exit;
+ } else {
+- dbg_info(&dev->intf->dev, "%s: nonzero status received: %d\n",
+- __func__, status);
++ dev_dbg(&dev->intf->dev,
++ "%s: nonzero status received: %d\n", __func__,
++ status);
+ spin_lock(&dev->rbsl);
+ goto resubmit; /* maybe we can recover */
+ }
+@@ -272,8 +260,8 @@ static void ld_usb_interrupt_in_callback
+ *actual_buffer = urb->actual_length;
+ memcpy(actual_buffer+1, dev->interrupt_in_buffer, urb->actual_length);
+ dev->ring_head = next_ring_head;
+- dbg_info(&dev->intf->dev, "%s: received %d bytes\n",
+- __func__, urb->actual_length);
++ dev_dbg(&dev->intf->dev, "%s: received %d bytes\n",
++ __func__, urb->actual_length);
+ } else {
+ dev_warn(&dev->intf->dev,
+ "Ring buffer overflow, %d bytes dropped\n",
+@@ -310,9 +298,9 @@ static void ld_usb_interrupt_out_callbac
+ if (status && !(status == -ENOENT ||
+ status == -ECONNRESET ||
+ status == -ESHUTDOWN))
+- dbg_info(&dev->intf->dev,
+- "%s - nonzero write interrupt status received: %d\n",
+- __func__, status);
++ dev_dbg(&dev->intf->dev,
++ "%s - nonzero write interrupt status received: %d\n",
++ __func__, status);
+
+ dev->interrupt_out_busy = 0;
+ wake_up_interruptible(&dev->write_wait);
+@@ -585,7 +573,8 @@ static ssize_t ld_usb_write(struct file
+ bytes_to_write = min(count, write_buffer_size*dev->interrupt_out_endpoint_size);
+ if (bytes_to_write < count)
+ dev_warn(&dev->intf->dev, "Write buffer overflow, %zd bytes dropped\n",count-bytes_to_write);
+- dbg_info(&dev->intf->dev, "%s: count = %zd, bytes_to_write = %zd\n", __func__, count, bytes_to_write);
++ dev_dbg(&dev->intf->dev, "%s: count = %zd, bytes_to_write = %zd\n",
++ __func__, count, bytes_to_write);
+
+ if (copy_from_user(dev->interrupt_out_buffer, buffer, bytes_to_write)) {
+ retval = -EFAULT;
diff --git a/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch b/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch
new file mode 100644
index 00000000000000..b2ac3a9adb1445
--- /dev/null
+++ b/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch
@@ -0,0 +1,114 @@
+From foo@baz Wed Jun 26 16:17:57 PDT 2013
+Date: Wed, 26 Jun 2013 16:17:57 -0700
+To: Greg KH , Juergen Stuber
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: legotower: remove custom debug macro and module parameter
+
+Now that we don't use the dbg() macro, remove it, and the module
+parameter. Also fix up the "dump_data" function to properly use the
+dynamic debug core and the correct printk options, and don't call it
+twice per function, as the data doesn't change from the beginning and
+the end of the call.
+
+Cc: Juergen Stuber
+Signed-off-by: Greg Kroah-Hartman
+
+
+---
+ drivers/usb/misc/legousbtower.c | 43 ++++++++--------------------------------
+ 1 file changed, 9 insertions(+), 34 deletions(-)
+
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -87,28 +87,11 @@
+ #include
+
+
+-#ifdef CONFIG_USB_DEBUG
+- static int debug = 4;
+-#else
+- static int debug = 0;
+-#endif
+-
+-/* Use our own dbg macro */
+-#undef dbg
+-#define dbg(lvl, format, arg...) \
+-do { \
+- if (debug >= lvl) \
+- printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg); \
+-} while (0)
+-
+ /* Version Information */
+ #define DRIVER_VERSION "v0.96"
+ #define DRIVER_AUTHOR "Juergen Stuber "
+ #define DRIVER_DESC "LEGO USB Tower Driver"
+
+-/* Module parameters */
+-module_param(debug, int, S_IRUGO | S_IWUSR);
+-MODULE_PARM_DESC(debug, "Debug enabled or not");
+
+ /* The defaults are chosen to work with the latest versions of leJOS and NQC.
+ */
+@@ -298,18 +281,12 @@ static struct usb_driver tower_driver =
+ /**
+ * lego_usb_tower_debug_data
+ */
+-static inline void lego_usb_tower_debug_data (int level, const char *function, int size, const unsigned char *data)
++static inline void lego_usb_tower_debug_data(struct device *dev,
++ const char *function, int size,
++ const unsigned char *data)
+ {
+- int i;
+-
+- if (debug < level)
+- return;
+-
+- printk (KERN_DEBUG "%s: %s - length = %d, data = ", __FILE__, function, size);
+- for (i = 0; i < size; ++i) {
+- printk ("%.2x ", data[i]);
+- }
+- printk ("\n");
++ dev_dbg(dev, "%s - length = %d, data = %*ph\n",
++ function, size, size, data);
+ }
+
+
+@@ -744,7 +721,8 @@ static void tower_interrupt_in_callback
+ int status = urb->status;
+ int retval;
+
+- lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
++ lego_usb_tower_debug_data(&dev->udev->dev, __func__,
++ urb->actual_length, urb->transfer_buffer);
+
+ if (status) {
+ if (status == -ENOENT ||
+@@ -788,8 +766,6 @@ resubmit:
+ exit:
+ dev->interrupt_in_done = 1;
+ wake_up_interruptible (&dev->read_wait);
+-
+- lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+ }
+
+
+@@ -801,7 +777,8 @@ static void tower_interrupt_out_callback
+ struct lego_usb_tower *dev = urb->context;
+ int status = urb->status;
+
+- lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
++ lego_usb_tower_debug_data(&dev->udev->dev, __func__,
++ urb->actual_length, urb->transfer_buffer);
+
+ /* sync/async unlink faults aren't errors */
+ if (status && !(status == -ENOENT ||
+@@ -814,8 +791,6 @@ static void tower_interrupt_out_callback
+
+ dev->interrupt_out_busy = 0;
+ wake_up_interruptible(&dev->write_wait);
+-
+- lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+ }
+
+
diff --git a/usb-legotower-remove-direct-calls-to-printk.patch b/usb-legotower-remove-direct-calls-to-printk.patch
new file mode 100644
index 00000000000000..de03d6ee712f12
--- /dev/null
+++ b/usb-legotower-remove-direct-calls-to-printk.patch
@@ -0,0 +1,64 @@
+From foo@baz Wed Jun 26 16:19:44 PDT 2013
+Date: Wed, 26 Jun 2013 16:19:44 -0700
+To: Greg KH , Juergen Stuber
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: legotower: remove direct calls to printk()
+
+Use the pr_* calls instead, which are much more descriptive.
+
+Cc: Juergen Stuber
+Signed-off-by: Greg Kroah-Hartman
+---
+ drivers/usb/misc/legousbtower.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -75,6 +75,8 @@
+ * - move reset into open to clean out spurious data
+ */
+
++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
++
+ #include
+ #include
+ #include
+@@ -325,8 +327,7 @@ static int tower_open (struct inode *ino
+ interface = usb_find_interface (&tower_driver, subminor);
+
+ if (!interface) {
+- printk(KERN_ERR "%s - error, can't find device for minor %d\n",
+- __func__, subminor);
++ pr_err("error, can't find device for minor %d\n", subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+@@ -563,7 +564,7 @@ static ssize_t tower_read (struct file *
+ /* verify that the device wasn't unplugged */
+ if (dev->udev == NULL) {
+ retval = -ENODEV;
+- printk(KERN_ERR "legousbtower: No device or device unplugged %d\n", retval);
++ pr_err("No device or device unplugged %d\n", retval);
+ goto unlock_exit;
+ }
+
+@@ -649,7 +650,7 @@ static ssize_t tower_write (struct file
+ /* verify that the device wasn't unplugged */
+ if (dev->udev == NULL) {
+ retval = -ENODEV;
+- printk(KERN_ERR "legousbtower: No device or device unplugged %d\n", retval);
++ pr_err("No device or device unplugged %d\n", retval);
+ goto unlock_exit;
+ }
+
+@@ -748,7 +749,8 @@ static void tower_interrupt_in_callback
+ dev_dbg(&dev->udev->dev, "%s: received %d bytes\n",
+ __func__, urb->actual_length);
+ } else {
+- printk(KERN_WARNING "%s: read_buffer overflow, %d bytes dropped", __func__, urb->actual_length);
++ pr_warn("read_buffer overflow, %d bytes dropped\n",
++ urb->actual_length);
+ }
+ spin_unlock (&dev->read_buffer_lock);
+ }
diff --git a/usb-legotower-remove-unneeded-tracing-macros.patch b/usb-legotower-remove-unneeded-tracing-macros.patch
new file mode 100644
index 00000000000000..2a1566fa382755
--- /dev/null
+++ b/usb-legotower-remove-unneeded-tracing-macros.patch
@@ -0,0 +1,217 @@
+From foo@baz Wed Jun 26 16:15:10 PDT 2013
+Date: Wed, 26 Jun 2013 16:15:10 -0700
+To: Greg KH , Juergen Stuber
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: legotower: remove unneeded tracing macros
+
+Remove the unneeded tracing macros in this driver. The kernel has a
+built-in trace function that can be used if this is really still needed.
+
+
+Cc: Juergen Stuber
+Signed-off-by: Greg Kroah-Hartman
+---
+ drivers/usb/misc/legousbtower.c | 42 ----------------------------------------
+ 1 file changed, 1 insertion(+), 41 deletions(-)
+
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -318,8 +318,6 @@ static inline void lego_usb_tower_debug_
+ */
+ static inline void tower_delete (struct lego_usb_tower *dev)
+ {
+- dbg(2, "%s: enter", __func__);
+-
+ tower_abort_transfers (dev);
+
+ /* free data structures */
+@@ -329,8 +327,6 @@ static inline void tower_delete (struct
+ kfree (dev->interrupt_in_buffer);
+ kfree (dev->interrupt_out_buffer);
+ kfree (dev);
+-
+- dbg(2, "%s: leave", __func__);
+ }
+
+
+@@ -346,8 +342,6 @@ static int tower_open (struct inode *ino
+ struct tower_reset_reply reset_reply;
+ int result;
+
+- dbg(2, "%s: enter", __func__);
+-
+ nonseekable_open(inode, file);
+ subminor = iminor(inode);
+
+@@ -435,8 +429,6 @@ unlock_exit:
+ mutex_unlock(&dev->lock);
+
+ exit:
+- dbg(2, "%s: leave, return value %d ", __func__, retval);
+-
+ return retval;
+ }
+
+@@ -448,8 +440,6 @@ static int tower_release (struct inode *
+ struct lego_usb_tower *dev;
+ int retval = 0;
+
+- dbg(2, "%s: enter", __func__);
+-
+ dev = file->private_data;
+
+ if (dev == NULL) {
+@@ -491,7 +481,6 @@ unlock_exit:
+ exit:
+ mutex_unlock(&open_disc_mutex);
+ exit_nolock:
+- dbg(2, "%s: leave, return value %d", __func__, retval);
+ return retval;
+ }
+
+@@ -502,11 +491,9 @@ exit_nolock:
+ */
+ static void tower_abort_transfers (struct lego_usb_tower *dev)
+ {
+- dbg(2, "%s: enter", __func__);
+-
+ if (dev == NULL) {
+ dbg(1, "%s: dev is null", __func__);
+- goto exit;
++ return;
+ }
+
+ /* shutdown transfer */
+@@ -518,9 +505,6 @@ static void tower_abort_transfers (struc
+ }
+ if (dev->interrupt_out_busy && dev->udev)
+ usb_kill_urb(dev->interrupt_out_urb);
+-
+-exit:
+- dbg(2, "%s: leave", __func__);
+ }
+
+
+@@ -553,8 +537,6 @@ static unsigned int tower_poll (struct f
+ struct lego_usb_tower *dev;
+ unsigned int mask = 0;
+
+- dbg(2, "%s: enter", __func__);
+-
+ dev = file->private_data;
+
+ if (!dev->udev)
+@@ -571,8 +553,6 @@ static unsigned int tower_poll (struct f
+ mask |= POLLOUT | POLLWRNORM;
+ }
+
+- dbg(2, "%s: leave, mask = %d", __func__, mask);
+-
+ return mask;
+ }
+
+@@ -597,8 +577,6 @@ static ssize_t tower_read (struct file *
+ int retval = 0;
+ unsigned long timeout = 0;
+
+- dbg(2, "%s: enter, count = %Zd", __func__, count);
+-
+ dev = file->private_data;
+
+ /* lock this object */
+@@ -672,7 +650,6 @@ unlock_exit:
+ mutex_unlock(&dev->lock);
+
+ exit:
+- dbg(2, "%s: leave, return value %d", __func__, retval);
+ return retval;
+ }
+
+@@ -686,8 +663,6 @@ static ssize_t tower_write (struct file
+ size_t bytes_to_write;
+ int retval = 0;
+
+- dbg(2, "%s: enter, count = %Zd", __func__, count);
+-
+ dev = file->private_data;
+
+ /* lock this object */
+@@ -757,8 +732,6 @@ unlock_exit:
+ mutex_unlock(&dev->lock);
+
+ exit:
+- dbg(2, "%s: leave, return value %d", __func__, retval);
+-
+ return retval;
+ }
+
+@@ -772,8 +745,6 @@ static void tower_interrupt_in_callback
+ int status = urb->status;
+ int retval;
+
+- dbg(4, "%s: enter, status %d", __func__, status);
+-
+ lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+
+ if (status) {
+@@ -817,7 +788,6 @@ exit:
+ wake_up_interruptible (&dev->read_wait);
+
+ lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+- dbg(4, "%s: leave, status %d", __func__, status);
+ }
+
+
+@@ -829,7 +799,6 @@ static void tower_interrupt_out_callback
+ struct lego_usb_tower *dev = urb->context;
+ int status = urb->status;
+
+- dbg(4, "%s: enter, status %d", __func__, status);
+ lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+
+ /* sync/async unlink faults aren't errors */
+@@ -844,7 +813,6 @@ static void tower_interrupt_out_callback
+ wake_up_interruptible(&dev->write_wait);
+
+ lego_usb_tower_debug_data(5, __func__, urb->actual_length, urb->transfer_buffer);
+- dbg(4, "%s: leave, status %d", __func__, status);
+ }
+
+
+@@ -866,8 +834,6 @@ static int tower_probe (struct usb_inter
+ int retval = -ENOMEM;
+ int result;
+
+- dbg(2, "%s: enter", __func__);
+-
+ /* allocate memory for our device state and initialize it */
+
+ dev = kmalloc (sizeof(struct lego_usb_tower), GFP_KERNEL);
+@@ -993,8 +959,6 @@ static int tower_probe (struct usb_inter
+
+
+ exit:
+- dbg(2, "%s: leave, return value 0x%.8lx (dev)", __func__, (long) dev);
+-
+ return retval;
+
+ error:
+@@ -1013,8 +977,6 @@ static void tower_disconnect (struct usb
+ struct lego_usb_tower *dev;
+ int minor;
+
+- dbg(2, "%s: enter", __func__);
+-
+ dev = usb_get_intfdata (interface);
+ mutex_lock(&open_disc_mutex);
+ usb_set_intfdata (interface, NULL);
+@@ -1041,8 +1003,6 @@ static void tower_disconnect (struct usb
+
+ dev_info(&interface->dev, "LEGO USB Tower #%d now disconnected\n",
+ (minor - LEGO_USB_TOWER_MINOR_BASE));
+-
+- dbg(2, "%s: leave", __func__);
+ }
+
+ module_usb_driver(tower_driver);
diff --git a/usb-legousbtower-remove-custom-debug-macro.patch b/usb-legousbtower-remove-custom-debug-macro.patch
new file mode 100644
index 00000000000000..20e64efbc0d07e
--- /dev/null
+++ b/usb-legousbtower-remove-custom-debug-macro.patch
@@ -0,0 +1,110 @@
+From foo@baz Wed Jun 26 16:16:21 PDT 2013
+Date: Wed, 26 Jun 2013 16:16:21 -0700
+To: Greg KH , Juergen Stuber
+Cc: linux-usb@vger.kernel.org
+From: Greg Kroah-Hartman
+Subject: USB: legousbtower: remove custom debug macro
+
+Don't use a custom debug macro for just one driver, instead rely on the
+in-kernel dynamic debugging logic, which can handle this much better.
+
+Cc: Juergen Stuber
+Signed-off-by: Greg Kroah-Hartman
+
+---
+ drivers/usb/misc/legousbtower.c | 27 +++++++++++++++------------
+ 1 file changed, 15 insertions(+), 12 deletions(-)
+
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -443,7 +443,6 @@ static int tower_release (struct inode *
+ dev = file->private_data;
+
+ if (dev == NULL) {
+- dbg(1, "%s: object is NULL", __func__);
+ retval = -ENODEV;
+ goto exit_nolock;
+ }
+@@ -455,7 +454,8 @@ static int tower_release (struct inode *
+ }
+
+ if (dev->open_count != 1) {
+- dbg(1, "%s: device not opened exactly once", __func__);
++ dev_dbg(&dev->udev->dev, "%s: device not opened exactly once\n",
++ __func__);
+ retval = -ENODEV;
+ goto unlock_exit;
+ }
+@@ -491,10 +491,8 @@ exit_nolock:
+ */
+ static void tower_abort_transfers (struct lego_usb_tower *dev)
+ {
+- if (dev == NULL) {
+- dbg(1, "%s: dev is null", __func__);
++ if (dev == NULL)
+ return;
+- }
+
+ /* shutdown transfer */
+ if (dev->interrupt_in_running) {
+@@ -594,7 +592,7 @@ static ssize_t tower_read (struct file *
+
+ /* verify that we actually have some data to read */
+ if (count == 0) {
+- dbg(1, "%s: read request of 0 bytes", __func__);
++ dev_dbg(&dev->udev->dev, "read request of 0 bytes\n");
+ goto unlock_exit;
+ }
+
+@@ -680,7 +678,7 @@ static ssize_t tower_write (struct file
+
+ /* verify that we actually have some data to write */
+ if (count == 0) {
+- dbg(1, "%s: write request of 0 bytes", __func__);
++ dev_dbg(&dev->udev->dev, "write request of 0 bytes\n");
+ goto unlock_exit;
+ }
+
+@@ -698,7 +696,8 @@ static ssize_t tower_write (struct file
+
+ /* write the data into interrupt_out_buffer from userspace */
+ bytes_to_write = min_t(int, count, write_buffer_size);
+- dbg(4, "%s: count = %Zd, bytes_to_write = %Zd", __func__, count, bytes_to_write);
++ dev_dbg(&dev->udev->dev, "%s: count = %Zd, bytes_to_write = %Zd\n",
++ __func__, count, bytes_to_write);
+
+ if (copy_from_user (dev->interrupt_out_buffer, buffer, bytes_to_write)) {
+ retval = -EFAULT;
+@@ -753,7 +752,9 @@ static void tower_interrupt_in_callback
+ status == -ESHUTDOWN) {
+ goto exit;
+ } else {
+- dbg(1, "%s: nonzero status received: %d", __func__, status);
++ dev_dbg(&dev->udev->dev,
++ "%s: nonzero status received: %d\n", __func__,
++ status);
+ goto resubmit; /* maybe we can recover */
+ }
+ }
+@@ -766,7 +767,8 @@ static void tower_interrupt_in_callback
+ urb->actual_length);
+ dev->read_buffer_length += urb->actual_length;
+ dev->read_last_arrival = jiffies;
+- dbg(3, "%s: received %d bytes", __func__, urb->actual_length);
++ dev_dbg(&dev->udev->dev, "%s: received %d bytes\n",
++ __func__, urb->actual_length);
+ } else {
+ printk(KERN_WARNING "%s: read_buffer overflow, %d bytes dropped", __func__, urb->actual_length);
+ }
+@@ -805,8 +807,9 @@ static void tower_interrupt_out_callback
+ if (status && !(status == -ENOENT ||
+ status == -ECONNRESET ||
+ status == -ESHUTDOWN)) {
+- dbg(1, "%s - nonzero write bulk status received: %d",
+- __func__, status);
++ dev_dbg(&dev->udev->dev,
++ "%s: nonzero write bulk status received: %d\n", __func__,
++ status);
+ }
+
+ dev->interrupt_out_busy = 0;
diff --git a/usb-misc-remove-config_usb_debug-from-makefile.patch b/usb-misc-remove-config_usb_debug-from-makefile.patch
new file mode 100644
index 00000000000000..9ad231911543d0
--- /dev/null
+++ b/usb-misc-remove-config_usb_debug-from-makefile.patch
@@ -0,0 +1,27 @@
+From foo@baz Wed Jun 26 16:23:51 PDT 2013
+Date: Wed, 26 Jun 2013 16:23:51 -0700
+To: Greg KH
+From: Greg Kroah-Hartman
+Subject: USB: misc: remove CONFIG_USB_DEBUG from Makefile
+
+Now that no usb misc driver is looking for CONFIG_USB_DEBUG, or DEBUG,
+don't enable it in the Makefile, as that's pointless.
+
+Signed-off-by: Greg Kroah-Hartman
+
+---
+ drivers/usb/misc/Makefile | 3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/drivers/usb/misc/Makefile
++++ b/drivers/usb/misc/Makefile
+@@ -2,9 +2,6 @@
+ # Makefile for the rest of the USB drivers
+ # (the ones that don't fit into any other categories)
+ #
+-
+-ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG
+-
+ obj-$(CONFIG_USB_ADUTUX) += adutux.o
+ obj-$(CONFIG_USB_APPLEDISPLAY) += appledisplay.o
+ obj-$(CONFIG_USB_CYPRESS_CY7C63) += cypress_cy7c63.o
diff --git a/usb-serial-idr.patch b/usb-serial-idr.patch
index 44a3577165161e..1769d13bbab824 100644
--- a/usb-serial-idr.patch
+++ b/usb-serial-idr.patch
@@ -277,7 +277,7 @@ Changes v2 - v3:
tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
-@@ -1308,7 +1308,7 @@ static int ti_get_serial_info(struct ti_
+@@ -1309,7 +1309,7 @@ static int ti_get_serial_info(struct ti_
memset(&ret_serial, 0, sizeof(ret_serial));
ret_serial.type = PORT_16550A;
diff --git a/usb-serial-ports-add-minor-and-port-number.patch b/usb-serial-ports-add-minor-and-port-number.patch
index 6c01aad0e18d68..7b106cdf249b11 100644
--- a/usb-serial-ports-add-minor-and-port-number.patch
+++ b/usb-serial-ports-add-minor-and-port-number.patch
@@ -940,7 +940,7 @@ Signed-off-by: Greg Kroah-Hartman
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
-@@ -476,7 +476,7 @@ static int ti_open(struct tty_struct *tt
+@@ -477,7 +477,7 @@ static int ti_open(struct tty_struct *tt
if (mutex_lock_interruptible(&tdev->td_open_close_lock))
return -ERESTARTSYS;
@@ -949,7 +949,7 @@ Signed-off-by: Greg Kroah-Hartman
tport->tp_msr = 0;
tport->tp_shadow_mcr |= (TI_MCR_RTS | TI_MCR_DTR);
-@@ -618,7 +618,7 @@ static void ti_close(struct usb_serial_p
+@@ -619,7 +619,7 @@ static void ti_close(struct usb_serial_p
kfifo_reset_out(&tport->write_fifo);
spin_unlock_irqrestore(&tport->tp_lock, flags);
@@ -958,7 +958,7 @@ Signed-off-by: Greg Kroah-Hartman
dev_dbg(&port->dev, "%s - sending TI_CLOSE_PORT\n", __func__);
status = ti_command_out_sync(tdev, TI_CLOSE_PORT,
-@@ -776,7 +776,7 @@ static void ti_set_termios(struct tty_st
+@@ -777,7 +777,7 @@ static void ti_set_termios(struct tty_st
tcflag_t cflag, iflag;
int baud;
int status;
@@ -967,7 +967,7 @@ Signed-off-by: Greg Kroah-Hartman
unsigned int mcr;
cflag = tty->termios.c_cflag;
-@@ -1262,7 +1262,7 @@ static int ti_get_lsr(struct ti_port *tp
+@@ -1263,7 +1263,7 @@ static int ti_get_lsr(struct ti_port *tp
int size, status;
struct ti_device *tdev = tport->tp_tdev;
struct usb_serial_port *port = tport->tp_port;
@@ -976,7 +976,7 @@ Signed-off-by: Greg Kroah-Hartman
struct ti_port_status *data;
size = sizeof(struct ti_port_status);
-@@ -1309,7 +1309,7 @@ static int ti_get_serial_info(struct ti_
+@@ -1310,7 +1310,7 @@ static int ti_get_serial_info(struct ti_
ret_serial.type = PORT_16550A;
ret_serial.line = port->serial->minor;
--
cgit 1.2.3-korg