diff options
| -rw-r--r-- | series | 10 | ||||
| -rw-r--r-- | usb-adutux-remove-custom-debug-macro-and-module-parameter.patch | 125 | ||||
| -rw-r--r-- | usb-adutux-remove-custom-debug-macro.patch | 283 | ||||
| -rw-r--r-- | usb-adutux-remove-direct-calls-to-printk.patch | 56 | ||||
| -rw-r--r-- | usb-adutux-remove-unneeded-tracing-macros.patch | 211 | ||||
| -rw-r--r-- | usb-ldusb-remove-custom-dbg_info-macro.patch | 86 | ||||
| -rw-r--r-- | usb-legotower-remove-custom-debug-macro-and-module-parameter.patch | 114 | ||||
| -rw-r--r-- | usb-legotower-remove-direct-calls-to-printk.patch | 64 | ||||
| -rw-r--r-- | usb-legotower-remove-unneeded-tracing-macros.patch | 217 | ||||
| -rw-r--r-- | usb-legousbtower-remove-custom-debug-macro.patch | 110 | ||||
| -rw-r--r-- | usb-misc-remove-config_usb_debug-from-makefile.patch | 27 | ||||
| -rw-r--r-- | usb-serial-idr.patch | 2 | ||||
| -rw-r--r-- | usb-serial-ports-add-minor-and-port-number.patch | 10 |
13 files changed, 1309 insertions, 6 deletions
@@ -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 <gregkh@linuxfoundation.org> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <gregkh@linuxfoundation.org> + +--- + 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 <linux/mutex.h> + #include <asm/uaccess.h> + +-#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 <gregkh@linuxfoundation.org> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <gregkh@linuxfoundation.org> + +--- + 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 <gregkh@linuxfoundation.org> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Subject: USB: adutux: remove direct calls to printk() + +Use the pr_* calls instead, which are much more descriptive. + +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + 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 <linux/kernel.h> + #include <linux/errno.h> + #include <linux/init.h> +@@ -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 <gregkh@linuxfoundation.org> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <gregkh@linuxfoundation.org> + +--- + 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 <gregkh@linuxfoundation.org> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <gregkh@linuxfoundation.org> +--- + 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 <gregkh@linuxfoundation.org>, Juergen Stuber <starblue@users.sourceforge.net> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <starblue@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + + +--- + 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 <linux/poll.h> + + +-#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 <starblue@sourceforge.net>" + #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 <gregkh@linuxfoundation.org>, Juergen Stuber <starblue@users.sourceforge.net> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Subject: USB: legotower: remove direct calls to printk() + +Use the pr_* calls instead, which are much more descriptive. + +Cc: Juergen Stuber <starblue@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + 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 <linux/kernel.h> + #include <linux/errno.h> + #include <linux/init.h> +@@ -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 <gregkh@linuxfoundation.org>, Juergen Stuber <starblue@users.sourceforge.net> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <starblue@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + 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 <gregkh@linuxfoundation.org>, Juergen Stuber <starblue@users.sourceforge.net> +Cc: linux-usb@vger.kernel.org +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <starblue@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + +--- + 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 <gregkh@linuxfoundation.org> +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +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 <gregkh@linuxfoundation.org> + +--- + 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 <gregkh@linuxfoundation.org> --- 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 <gregkh@linuxfoundation.org> 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 <gregkh@linuxfoundation.org> 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 <gregkh@linuxfoundation.org> 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 <gregkh@linuxfoundation.org> 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; |
