diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-04 13:07:52 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-04 13:07:52 -0700 |
commit | bbcc0c699929d3b01ecf3066a35799defe733dd2 (patch) | |
tree | 5fd368175f54e652b663ebd33dc78e174a288445 | |
parent | cba9545b635d1566060d5a8f1a9dc78680f4e839 (diff) | |
download | patches-bbcc0c699929d3b01ecf3066a35799defe733dd2.tar.gz |
remove a bunch of patches now in Linus's tree
71 files changed, 24 insertions, 8878 deletions
diff --git a/applied/misc-c2port-use-dev_bin_attrs-instead-of-hand-coding-it.patch b/applied/misc-c2port-use-dev_bin_attrs-instead-of-hand-coding-it.patch deleted file mode 100644 index 79a279f1d14c21..00000000000000 --- a/applied/misc-c2port-use-dev_bin_attrs-instead-of-hand-coding-it.patch +++ /dev/null @@ -1,93 +0,0 @@ -From foo@baz Mon Jul 8 11:31:26 PDT 2013 -Date: Mon, 08 Jul 2013 11:31:26 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH] misc: c2port: use dev_bin_attrs instead of hand-coding it - -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - -Classes support a list of default binary attributes, so use that in the -c2port driver, instead of hand creating and destroying the file, which -is racing with userspace. Bonus is this removes lines of code. - -Cc: Rodolfo Giometti <giometti@linux.it> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- - drivers/misc/c2port/core.c | 30 +++++++++++++----------------- - 1 file changed, 13 insertions(+), 17 deletions(-) - ---- a/drivers/misc/c2port/core.c -+++ b/drivers/misc/c2port/core.c -@@ -867,14 +867,17 @@ static struct device_attribute c2port_at - __ATTR_NULL, - }; - --static struct bin_attribute c2port_bin_attrs = { -- .attr = { -- .name = "flash_data", -- .mode = 0644 -+static struct bin_attribute c2port_bin_attrs[] = { -+ { -+ .attr = { -+ .name = "flash_data", -+ .mode = 0644 -+ }, -+ .read = c2port_read_flash_data, -+ .write = c2port_write_flash_data, -+ /* .size is computed at run-time */ - }, -- .read = c2port_read_flash_data, -- .write = c2port_write_flash_data, -- /* .size is computed at run-time */ -+ __ATTR_NULL - }; - - /* -@@ -907,6 +910,8 @@ struct c2port_device *c2port_device_regi - goto error_idr_alloc; - c2dev->id = ret; - -+ c2port_bin_attrs[0].size = ops->blocks_num * ops->block_size; -+ - c2dev->dev = device_create(c2port_class, NULL, 0, c2dev, - "c2port%d", c2dev->id); - if (unlikely(IS_ERR(c2dev->dev))) { -@@ -919,12 +924,6 @@ struct c2port_device *c2port_device_regi - c2dev->ops = ops; - mutex_init(&c2dev->mutex); - -- /* Create binary file */ -- c2port_bin_attrs.size = ops->blocks_num * ops->block_size; -- ret = device_create_bin_file(c2dev->dev, &c2port_bin_attrs); -- if (unlikely(ret)) -- goto error_device_create_bin_file; -- - /* By default C2 port access is off */ - c2dev->access = c2dev->flash_access = 0; - ops->access(c2dev, 0); -@@ -937,9 +936,6 @@ struct c2port_device *c2port_device_regi - - return c2dev; - --error_device_create_bin_file: -- device_destroy(c2port_class, 0); -- - error_device_create: - spin_lock_irq(&c2port_idr_lock); - idr_remove(&c2port_idr, c2dev->id); -@@ -959,7 +955,6 @@ void c2port_device_unregister(struct c2p - - dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name); - -- device_remove_bin_file(c2dev->dev, &c2port_bin_attrs); - spin_lock_irq(&c2port_idr_lock); - idr_remove(&c2port_idr, c2dev->id); - spin_unlock_irq(&c2port_idr_lock); -@@ -985,6 +980,7 @@ static int __init c2port_init(void) - return PTR_ERR(c2port_class); - } - c2port_class->dev_attrs = c2port_attrs; -+ c2port_class->dev_bin_attrs = c2port_bin_attrs; - - return 0; - } diff --git a/applied/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch b/applied/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch deleted file mode 100644 index 5677c3185c92f4..00000000000000 --- a/applied/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch +++ /dev/null @@ -1,125 +0,0 @@ -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 <linux/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/applied/usb-adutux-remove-custom-debug-macro.patch b/applied/usb-adutux-remove-custom-debug-macro.patch deleted file mode 100644 index e8482b5b86b4ee..00000000000000 --- a/applied/usb-adutux-remove-custom-debug-macro.patch +++ /dev/null @@ -1,283 +0,0 @@ -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; - } -@@ -262,10 +263,8 @@ static int adu_open(struct inode *inode, - subminor = iminor(inode); - - retval = mutex_lock_interruptible(&adutux_mutex); -- if (retval) { -- dbg(2, "%s : mutex lock failed", __func__); -+ if (retval) - goto exit_no_lock; -- } - - interface = usb_find_interface(&adu_driver, subminor); - if (!interface) { -@@ -288,7 +287,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; -@@ -325,7 +325,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; -@@ -338,14 +339,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; - } -@@ -353,7 +352,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; - } -@@ -397,17 +396,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 */ -@@ -430,8 +431,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; -@@ -446,10 +448,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); - -@@ -467,7 +473,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; - } - } -@@ -486,13 +494,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; - } -@@ -555,7 +566,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; - } - -@@ -568,13 +580,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; - } -@@ -585,18 +599,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; -@@ -779,7 +797,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); -@@ -829,7 +847,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/applied/usb-adutux-remove-direct-calls-to-printk.patch b/applied/usb-adutux-remove-direct-calls-to-printk.patch deleted file mode 100644 index 56463b6254d5cf..00000000000000 --- a/applied/usb-adutux-remove-direct-calls-to-printk.patch +++ /dev/null @@ -1,56 +0,0 @@ -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> -@@ -236,8 +238,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; - } -@@ -357,8 +359,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; - } - -@@ -527,8 +528,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/applied/usb-adutux-remove-unneeded-tracing-macros.patch b/applied/usb-adutux-remove-unneeded-tracing-macros.patch deleted file mode 100644 index b44db147c9ba90..00000000000000 --- a/applied/usb-adutux-remove-unneeded-tracing-macros.patch +++ /dev/null @@ -1,211 +0,0 @@ -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); - - retval = mutex_lock_interruptible(&adutux_mutex); -@@ -333,14 +318,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); -@@ -348,8 +330,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) -@@ -357,8 +337,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; -@@ -389,7 +367,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; - } - -@@ -406,11 +383,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; - -@@ -552,7 +525,6 @@ exit: - /* unlock the device */ - mutex_unlock(&dev->mtx); - -- dbg(2, " %s : leave, return value %d", __func__, retval); - return retval; - } - -@@ -567,8 +539,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); -@@ -665,7 +635,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: -@@ -711,8 +680,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; -@@ -833,8 +800,6 @@ static int adu_probe(struct usb_interfac - le16_to_cpu(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: -@@ -852,8 +817,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 */ -@@ -874,8 +837,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/applied/usb-gadget-fix-up-comment.patch b/applied/usb-gadget-fix-up-comment.patch deleted file mode 100644 index c5d42c0e7362de..00000000000000 --- a/applied/usb-gadget-fix-up-comment.patch +++ /dev/null @@ -1,27 +0,0 @@ -From foo@baz Fri Jun 28 11:11:19 PDT 2013 -Date: Fri, 28 Jun 2013 11:11:19 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: gadget: fix up comment - -This endif is for CONFIG_USB_GADGET_DEBUG_FILES, not CONFIG_USB_DEBUG, -so document it properly. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/gadget/storage_common.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/gadget/storage_common.c -+++ b/drivers/usb/gadget/storage_common.c -@@ -172,7 +172,7 @@ MODULE_PARM_DESC(num_buffers, "Number of - */ - #define fsg_num_buffers CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS - --#endif /* CONFIG_USB_DEBUG */ -+#endif /* CONFIG_USB_GADGET_DEBUG_FILES */ - - /* check if fsg_num_buffers is within a valid range */ - static inline int fsg_num_buffers_validate(void) diff --git a/applied/usb-isp116x-remove-dependency-on-config_usb_debug.patch b/applied/usb-isp116x-remove-dependency-on-config_usb_debug.patch deleted file mode 100644 index 6877cbfe4253d1..00000000000000 --- a/applied/usb-isp116x-remove-dependency-on-config_usb_debug.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz Fri Jun 28 11:19:44 PDT 2013 -Date: Fri, 28 Jun 2013 11:19:44 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Olav Kongas <ok@artecdesign.ee> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp116x: remove dependency on CONFIG_USB_DEBUG - -Move all debugging messages in the driver to use the dynamic debug -subsystem, and not rely on CONFIG_USB_DEBUG to turn them on or off. - -This lets debugging be enabled without having to rebuild the driver, an -important thing for users that can not do it. - -It also removes the pointless IRQ_TEST() macro, as that was totally -useless and obviously never used. - -Cc: Olav Kongas <ok@artecdesign.ee> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/isp116x.h | 13 +------------ - 1 file changed, 1 insertion(+), 12 deletions(-) - ---- a/drivers/usb/host/isp116x.h -+++ b/drivers/usb/host/isp116x.h -@@ -325,11 +325,7 @@ struct isp116x_ep { - - /*-------------------------------------------------------------------------*/ - --#ifdef DEBUG --#define DBG(stuff...) printk(KERN_DEBUG "116x: " stuff) --#else --#define DBG(stuff...) do{}while(0) --#endif -+#define DBG(stuff...) pr_debug("116x: " stuff) - - #ifdef VERBOSE - # define VDBG DBG -@@ -358,15 +354,8 @@ struct isp116x_ep { - #define isp116x_check_platform_delay(h) 0 - #endif - --#if defined(DEBUG) --#define IRQ_TEST() BUG_ON(!irqs_disabled()) --#else --#define IRQ_TEST() do{}while(0) --#endif -- - static inline void isp116x_write_addr(struct isp116x *isp116x, unsigned reg) - { -- IRQ_TEST(); - writew(reg & 0xff, isp116x->addr_reg); - isp116x_delay(isp116x, 300); - } diff --git a/applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch b/applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch deleted file mode 100644 index 57cbeffbff4461..00000000000000 --- a/applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch +++ /dev/null @@ -1,127 +0,0 @@ -From foo@baz Tue Jul 2 12:17:06 PDT 2013 -Date: Tue, 02 Jul 2013 12:17:06 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp1362: move debug files from proc to debugfs - -Drivers should not be putting debug files in /proc/ that is what debugfs -is for, so move the isp1362 driver's debug file to debugfs. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/isp1362-hcd.c | 45 ++++++++++------------------------------- - drivers/usb/host/isp1362.h | 2 - - 2 files changed, 12 insertions(+), 35 deletions(-) - ---- a/drivers/usb/host/isp1362-hcd.c -+++ b/drivers/usb/host/isp1362-hcd.c -@@ -78,6 +78,8 @@ - #include <linux/io.h> - #include <linux/bitmap.h> - #include <linux/prefetch.h> -+#include <linux/debugfs.h> -+#include <linux/seq_file.h> - - #include <asm/irq.h> - #include <asm/byteorder.h> -@@ -88,7 +90,6 @@ static int dbg_level; - module_param(dbg_level, int, 0644); - #else - module_param(dbg_level, int, 0); --#define STUB_DEBUG_FILE - #endif - - #include "../core/usb.h" -@@ -1907,20 +1908,6 @@ static int isp1362_bus_resume(struct usb - - /*-------------------------------------------------------------------------*/ - --#ifdef STUB_DEBUG_FILE -- --static inline void create_debug_file(struct isp1362_hcd *isp1362_hcd) --{ --} --static inline void remove_debug_file(struct isp1362_hcd *isp1362_hcd) --{ --} -- --#else -- --#include <linux/proc_fs.h> --#include <linux/seq_file.h> -- - static void dump_irq(struct seq_file *s, char *label, u16 mask) - { - seq_printf(s, "%-15s %04x%s%s%s%s%s%s\n", label, mask, -@@ -2063,7 +2050,7 @@ static void dump_regs(struct seq_file *s - isp1362_read_reg16(isp1362_hcd, HCATLDTCTO)); - } - --static int proc_isp1362_show(struct seq_file *s, void *unused) -+static int isp1362_show(struct seq_file *s, void *unused) - { - struct isp1362_hcd *isp1362_hcd = s->private; - struct isp1362_ep *ep; -@@ -2167,41 +2154,31 @@ static int proc_isp1362_show(struct seq_ - return 0; - } - --static int proc_isp1362_open(struct inode *inode, struct file *file) -+static int isp1362_open(struct inode *inode, struct file *file) - { -- return single_open(file, proc_isp1362_show, PDE_DATA(inode)); -+ return single_open(file, isp1362_show, inode); - } - --static const struct file_operations proc_ops = { -- .open = proc_isp1362_open, -+static const struct file_operations debug_ops = { -+ .open = isp1362_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, - }; - - /* expect just one isp1362_hcd per system */ --static const char proc_filename[] = "driver/isp1362"; -- - static void create_debug_file(struct isp1362_hcd *isp1362_hcd) - { -- struct proc_dir_entry *pde; -- -- pde = proc_create_data(proc_filename, 0, NULL, &proc_ops, isp1362_hcd); -- if (pde == NULL) { -- pr_warning("%s: Failed to create debug file '%s'\n", __func__, proc_filename); -- return; -- } -- isp1362_hcd->pde = pde; -+ isp1362_hcd->debug_file = debugfs_create_file("isp1362", S_IRUGO, -+ usb_debug_root, -+ isp1362_hcd, &debug_ops); - } - - static void remove_debug_file(struct isp1362_hcd *isp1362_hcd) - { -- if (isp1362_hcd->pde) -- remove_proc_entry(proc_filename, NULL); -+ debugfs_remove(isp1362_hcd->debug_file); - } - --#endif -- - /*-------------------------------------------------------------------------*/ - - static void __isp1362_sw_reset(struct isp1362_hcd *isp1362_hcd) ---- a/drivers/usb/host/isp1362.h -+++ b/drivers/usb/host/isp1362.h -@@ -480,7 +480,7 @@ struct isp1362_hcd { - - struct isp1362_platform_data *board; - -- struct proc_dir_entry *pde; -+ struct dentry *debug_file; - unsigned long stat1, stat2, stat4, stat8, stat16; - - /* HC registers */ diff --git a/applied/usb-isp1362-remove-_dbg-usage.patch b/applied/usb-isp1362-remove-_dbg-usage.patch deleted file mode 100644 index ba87fd83f214fd..00000000000000 --- a/applied/usb-isp1362-remove-_dbg-usage.patch +++ /dev/null @@ -1,142 +0,0 @@ -From foo@baz Fri Jun 28 11:14:57 PDT 2013 -Date: Fri, 28 Jun 2013 11:14:57 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp1362: remove _DBG() usage - -If you want a debug call, just make it, so move to using the -already-there DBG() call. No need to make things more complex than they -really need to be. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/host/isp1362-hcd.c | 30 +++++++++++++++--------------- - drivers/usb/host/isp1362.h | 6 ------ - 2 files changed, 15 insertions(+), 21 deletions(-) - ---- a/drivers/usb/host/isp1362-hcd.c -+++ b/drivers/usb/host/isp1362-hcd.c -@@ -1573,12 +1573,12 @@ static int isp1362_hub_control(struct us - DBG(0, "ClearHubFeature: "); - switch (wValue) { - case C_HUB_OVER_CURRENT: -- _DBG(0, "C_HUB_OVER_CURRENT\n"); -+ DBG(0, "C_HUB_OVER_CURRENT\n"); - spin_lock_irqsave(&isp1362_hcd->lock, flags); - isp1362_write_reg32(isp1362_hcd, HCRHSTATUS, RH_HS_OCIC); - spin_unlock_irqrestore(&isp1362_hcd->lock, flags); - case C_HUB_LOCAL_POWER: -- _DBG(0, "C_HUB_LOCAL_POWER\n"); -+ DBG(0, "C_HUB_LOCAL_POWER\n"); - break; - default: - goto error; -@@ -1589,7 +1589,7 @@ static int isp1362_hub_control(struct us - switch (wValue) { - case C_HUB_OVER_CURRENT: - case C_HUB_LOCAL_POWER: -- _DBG(0, "C_HUB_OVER_CURRENT or C_HUB_LOCAL_POWER\n"); -+ DBG(0, "C_HUB_OVER_CURRENT or C_HUB_LOCAL_POWER\n"); - break; - default: - goto error; -@@ -1620,36 +1620,36 @@ static int isp1362_hub_control(struct us - - switch (wValue) { - case USB_PORT_FEAT_ENABLE: -- _DBG(0, "USB_PORT_FEAT_ENABLE\n"); -+ DBG(0, "USB_PORT_FEAT_ENABLE\n"); - tmp = RH_PS_CCS; - break; - case USB_PORT_FEAT_C_ENABLE: -- _DBG(0, "USB_PORT_FEAT_C_ENABLE\n"); -+ DBG(0, "USB_PORT_FEAT_C_ENABLE\n"); - tmp = RH_PS_PESC; - break; - case USB_PORT_FEAT_SUSPEND: -- _DBG(0, "USB_PORT_FEAT_SUSPEND\n"); -+ DBG(0, "USB_PORT_FEAT_SUSPEND\n"); - tmp = RH_PS_POCI; - break; - case USB_PORT_FEAT_C_SUSPEND: -- _DBG(0, "USB_PORT_FEAT_C_SUSPEND\n"); -+ DBG(0, "USB_PORT_FEAT_C_SUSPEND\n"); - tmp = RH_PS_PSSC; - break; - case USB_PORT_FEAT_POWER: -- _DBG(0, "USB_PORT_FEAT_POWER\n"); -+ DBG(0, "USB_PORT_FEAT_POWER\n"); - tmp = RH_PS_LSDA; - - break; - case USB_PORT_FEAT_C_CONNECTION: -- _DBG(0, "USB_PORT_FEAT_C_CONNECTION\n"); -+ DBG(0, "USB_PORT_FEAT_C_CONNECTION\n"); - tmp = RH_PS_CSC; - break; - case USB_PORT_FEAT_C_OVER_CURRENT: -- _DBG(0, "USB_PORT_FEAT_C_OVER_CURRENT\n"); -+ DBG(0, "USB_PORT_FEAT_C_OVER_CURRENT\n"); - tmp = RH_PS_OCIC; - break; - case USB_PORT_FEAT_C_RESET: -- _DBG(0, "USB_PORT_FEAT_C_RESET\n"); -+ DBG(0, "USB_PORT_FEAT_C_RESET\n"); - tmp = RH_PS_PRSC; - break; - default: -@@ -1669,7 +1669,7 @@ static int isp1362_hub_control(struct us - wIndex--; - switch (wValue) { - case USB_PORT_FEAT_SUSPEND: -- _DBG(0, "USB_PORT_FEAT_SUSPEND\n"); -+ DBG(0, "USB_PORT_FEAT_SUSPEND\n"); - spin_lock_irqsave(&isp1362_hcd->lock, flags); - isp1362_write_reg32(isp1362_hcd, HCRHPORT1 + wIndex, RH_PS_PSS); - isp1362_hcd->rhport[wIndex] = -@@ -1677,7 +1677,7 @@ static int isp1362_hub_control(struct us - spin_unlock_irqrestore(&isp1362_hcd->lock, flags); - break; - case USB_PORT_FEAT_POWER: -- _DBG(0, "USB_PORT_FEAT_POWER\n"); -+ DBG(0, "USB_PORT_FEAT_POWER\n"); - spin_lock_irqsave(&isp1362_hcd->lock, flags); - isp1362_write_reg32(isp1362_hcd, HCRHPORT1 + wIndex, RH_PS_PPS); - isp1362_hcd->rhport[wIndex] = -@@ -1685,7 +1685,7 @@ static int isp1362_hub_control(struct us - spin_unlock_irqrestore(&isp1362_hcd->lock, flags); - break; - case USB_PORT_FEAT_RESET: -- _DBG(0, "USB_PORT_FEAT_RESET\n"); -+ DBG(0, "USB_PORT_FEAT_RESET\n"); - spin_lock_irqsave(&isp1362_hcd->lock, flags); - - t1 = jiffies + msecs_to_jiffies(USB_RESET_WIDTH); -@@ -1719,7 +1719,7 @@ static int isp1362_hub_control(struct us - default: - error: - /* "protocol stall" on error */ -- _DBG(0, "PROTOCOL STALL\n"); -+ DBG(0, "PROTOCOL STALL\n"); - retval = -EPIPE; - } - ---- a/drivers/usb/host/isp1362.h -+++ b/drivers/usb/host/isp1362.h -@@ -588,14 +588,8 @@ static inline struct usb_hcd *isp1362_hc - if (dbg_level > level) \ - pr_debug(fmt); \ - } while (0) --#define _DBG(level, fmt...) \ -- do { \ -- if (dbg_level > level) \ -- printk(fmt); \ -- } while (0) - #else - #define DBG(fmt...) do {} while (0) --#define _DBG DBG - #endif - - #ifdef VERBOSE diff --git a/applied/usb-isp1362-remove-config_usb_debug-dependency.patch b/applied/usb-isp1362-remove-config_usb_debug-dependency.patch deleted file mode 100644 index 2b3733b45382b2..00000000000000 --- a/applied/usb-isp1362-remove-config_usb_debug-dependency.patch +++ /dev/null @@ -1,98 +0,0 @@ -From foo@baz Fri Jun 28 11:16:30 PDT 2013 -Date: Fri, 28 Jun 2013 11:16:30 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp1362: remove CONFIG_USB_DEBUG dependency - -Now that the debugging macros are cleaned up, just rely on the dynamic -debug code in the kernel to do the debug messages for the driver. - -This lets debugging be enabled without having to rebuild the driver, an -important thing for users that can not do it. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/host/isp1362-hcd.c | 6 +----- - drivers/usb/host/isp1362.h | 16 ++++------------ - 2 files changed, 5 insertions(+), 17 deletions(-) - ---- a/drivers/usb/host/isp1362-hcd.c -+++ b/drivers/usb/host/isp1362-hcd.c -@@ -37,11 +37,7 @@ - * recovery time (MSCx = 0x7f8c) with a memory clock of 99.53 MHz. - */ - --#ifdef CONFIG_USB_DEBUG --# define ISP1362_DEBUG --#else --# undef ISP1362_DEBUG --#endif -+#undef ISP1362_DEBUG - - /* - * The PXA255 UDC apparently doesn't handle GET_STATUS, GET_CONFIG and ---- a/drivers/usb/host/isp1362.h -+++ b/drivers/usb/host/isp1362.h -@@ -76,14 +76,14 @@ static inline void delayed_insw(unsigned - - #define ISP1362_REG_WRITE_OFFSET 0x80 - --#ifdef ISP1362_DEBUG --typedef const unsigned int isp1362_reg_t; -- - #define REG_WIDTH_16 0x000 - #define REG_WIDTH_32 0x100 - #define REG_WIDTH_MASK 0x100 - #define REG_NO_MASK 0x0ff - -+#ifdef ISP1362_DEBUG -+typedef const unsigned int isp1362_reg_t; -+ - #define REG_ACCESS_R 0x200 - #define REG_ACCESS_W 0x400 - #define REG_ACCESS_RW 0x600 -@@ -582,15 +582,11 @@ static inline struct usb_hcd *isp1362_hc - * ISP1362 HW Interface - */ - --#ifdef ISP1362_DEBUG - #define DBG(level, fmt...) \ - do { \ - if (dbg_level > level) \ - pr_debug(fmt); \ - } while (0) --#else --#define DBG(fmt...) do {} while (0) --#endif - - #ifdef VERBOSE - # define VDBG(fmt...) DBG(3, fmt) -@@ -833,7 +829,6 @@ static void isp1362_write_fifo(struct is - isp1362_write_reg32(d, r, __v & ~m); \ - } - --#ifdef ISP1362_DEBUG - #define isp1362_show_reg(d, r) { \ - if ((ISP1362_REG_##r & REG_WIDTH_MASK) == REG_WIDTH_32) \ - DBG(0, "%-12s[%02x]: %08x\n", #r, \ -@@ -842,9 +837,6 @@ static void isp1362_write_fifo(struct is - DBG(0, "%-12s[%02x]: %04x\n", #r, \ - ISP1362_REG_NO(ISP1362_REG_##r), isp1362_read_reg16(d, r)); \ - } --#else --#define isp1362_show_reg(d, r) do {} while (0) --#endif - - static void __attribute__((__unused__)) isp1362_show_regs(struct isp1362_hcd *isp1362_hcd) - { -@@ -967,7 +959,7 @@ static void __attribute__((unused)) dump - } - } - --#if defined(ISP1362_DEBUG) && defined(PTD_TRACE) -+#if defined(PTD_TRACE) - - static void dump_ptd(struct ptd *ptd) - { diff --git a/applied/usb-isp1362-remove-unused-_bug_on-calls.patch b/applied/usb-isp1362-remove-unused-_bug_on-calls.patch deleted file mode 100644 index c1d3e7fc8277d3..00000000000000 --- a/applied/usb-isp1362-remove-unused-_bug_on-calls.patch +++ /dev/null @@ -1,137 +0,0 @@ -From foo@baz Fri Jun 28 11:12:12 PDT 2013 -Date: Fri, 28 Jun 2013 11:12:12 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp1362: remove unused _BUG_ON() calls - -We shouldn't ever panic in a driver, and these calls were never being -used, so just delete them, as obviously the driver is working properly -now (right?) - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/isp1362-hcd.c | 2 -- - drivers/usb/host/isp1362.h | 20 -------------------- - 2 files changed, 22 deletions(-) - ---- a/drivers/usb/host/isp1362-hcd.c -+++ b/drivers/usb/host/isp1362-hcd.c -@@ -350,8 +350,6 @@ static void isp1362_write_ptd(struct isp - struct ptd *ptd = &ep->ptd; - int len = PTD_GET_DIR(ptd) == PTD_DIR_IN ? 0 : ep->length; - -- _BUG_ON(ep->ptd_offset < 0); -- - prefetch(ptd); - isp1362_write_buffer(isp1362_hcd, ptd, ep->ptd_offset, PTD_HEADER_SIZE); - if (len) ---- a/drivers/usb/host/isp1362.h -+++ b/drivers/usb/host/isp1362.h -@@ -91,7 +91,6 @@ typedef const unsigned int isp1362_reg_t - - #define ISP1362_REG_NO(r) ((r) & REG_NO_MASK) - --#define _BUG_ON(x) BUG_ON(x) - #define _WARN_ON(x) WARN_ON(x) - - #define ISP1362_REG(name, addr, width, rw) \ -@@ -102,7 +101,6 @@ static isp1362_reg_t ISP1362_REG_##name - #else - typedef const unsigned char isp1362_reg_t; - #define ISP1362_REG_NO(r) (r) --#define _BUG_ON(x) do {} while (0) - #define _WARN_ON(x) do {} while (0) - - #define ISP1362_REG(name, addr, width, rw) \ -@@ -645,9 +643,7 @@ static inline struct usb_hcd *isp1362_hc - */ - static void isp1362_write_addr(struct isp1362_hcd *isp1362_hcd, isp1362_reg_t reg) - { -- /*_BUG_ON((reg & ISP1362_REG_WRITE_OFFSET) && !(reg & REG_ACCESS_W));*/ - REG_ACCESS_TEST(reg); -- _BUG_ON(!irqs_disabled()); - DUMMY_DELAY_ACCESS; - writew(ISP1362_REG_NO(reg), isp1362_hcd->addr_reg); - DUMMY_DELAY_ACCESS; -@@ -656,7 +652,6 @@ static void isp1362_write_addr(struct is - - static void isp1362_write_data16(struct isp1362_hcd *isp1362_hcd, u16 val) - { -- _BUG_ON(!irqs_disabled()); - DUMMY_DELAY_ACCESS; - writew(val, isp1362_hcd->data_reg); - } -@@ -665,7 +660,6 @@ static u16 isp1362_read_data16(struct is - { - u16 val; - -- _BUG_ON(!irqs_disabled()); - DUMMY_DELAY_ACCESS; - val = readw(isp1362_hcd->data_reg); - -@@ -674,7 +668,6 @@ static u16 isp1362_read_data16(struct is - - static void isp1362_write_data32(struct isp1362_hcd *isp1362_hcd, u32 val) - { -- _BUG_ON(!irqs_disabled()); - #if USE_32BIT - DUMMY_DELAY_ACCESS; - writel(val, isp1362_hcd->data_reg); -@@ -690,7 +683,6 @@ static u32 isp1362_read_data32(struct is - { - u32 val; - -- _BUG_ON(!irqs_disabled()); - #if USE_32BIT - DUMMY_DELAY_ACCESS; - val = readl(isp1362_hcd->data_reg); -@@ -713,8 +705,6 @@ static void isp1362_read_fifo(struct isp - if (!len) - return; - -- _BUG_ON(!irqs_disabled()); -- - RDBG("%s: Reading %d byte from fifo to mem @ %p\n", __func__, len, buf); - #if USE_32BIT - if (len >= 4) { -@@ -760,8 +750,6 @@ static void isp1362_write_fifo(struct is - return; - } - -- _BUG_ON(!irqs_disabled()); -- - RDBG("%s: Writing %d byte to fifo from memory @%p\n", __func__, len, buf); - #if USE_32BIT - if (len >= 4) { -@@ -923,10 +911,6 @@ static void __attribute__((__unused__)) - - static void isp1362_write_diraddr(struct isp1362_hcd *isp1362_hcd, u16 offset, u16 len) - { -- _BUG_ON(offset & 1); -- _BUG_ON(offset >= ISP1362_BUF_SIZE); -- _BUG_ON(len > ISP1362_BUF_SIZE); -- _BUG_ON(offset + len > ISP1362_BUF_SIZE); - len = (len + 1) & ~1; - - isp1362_clr_mask16(isp1362_hcd, HCDMACFG, HCDMACFG_CTR_ENABLE); -@@ -936,8 +920,6 @@ static void isp1362_write_diraddr(struct - - static void isp1362_read_buffer(struct isp1362_hcd *isp1362_hcd, void *buf, u16 offset, int len) - { -- _BUG_ON(offset & 1); -- - isp1362_write_diraddr(isp1362_hcd, offset, len); - - DBG(3, "%s: Reading %d byte from buffer @%04x to memory @ %p\n", -@@ -956,8 +938,6 @@ static void isp1362_read_buffer(struct i - - static void isp1362_write_buffer(struct isp1362_hcd *isp1362_hcd, void *buf, u16 offset, int len) - { -- _BUG_ON(offset & 1); -- - isp1362_write_diraddr(isp1362_hcd, offset, len); - - DBG(3, "%s: Writing %d byte to buffer @%04x from memory @ %p\n", diff --git a/applied/usb-isp1362-remove-unused-_warn_on-calls.patch b/applied/usb-isp1362-remove-unused-_warn_on-calls.patch deleted file mode 100644 index dc110f20767024..00000000000000 --- a/applied/usb-isp1362-remove-unused-_warn_on-calls.patch +++ /dev/null @@ -1,67 +0,0 @@ -From foo@baz Fri Jun 28 11:13:39 PDT 2013 -Date: Fri, 28 Jun 2013 11:13:39 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: isp1362: remove unused _WARN_ON() calls - -Like _BUG_ON(), _WARN_ON() wasn't ever being used, so just delete it, as -obviously things are working properly now (if not, we have bigger -problems...) - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/isp1362.h | 9 --------- - 1 file changed, 9 deletions(-) - ---- a/drivers/usb/host/isp1362.h -+++ b/drivers/usb/host/isp1362.h -@@ -91,8 +91,6 @@ typedef const unsigned int isp1362_reg_t - - #define ISP1362_REG_NO(r) ((r) & REG_NO_MASK) - --#define _WARN_ON(x) WARN_ON(x) -- - #define ISP1362_REG(name, addr, width, rw) \ - static isp1362_reg_t ISP1362_REG_##name = ((addr) | (width) | (rw)) - -@@ -101,7 +99,6 @@ static isp1362_reg_t ISP1362_REG_##name - #else - typedef const unsigned char isp1362_reg_t; - #define ISP1362_REG_NO(r) (r) --#define _WARN_ON(x) do {} while (0) - - #define ISP1362_REG(name, addr, width, rw) \ - static isp1362_reg_t ISP1362_REG_##name = addr -@@ -926,14 +923,11 @@ static void isp1362_read_buffer(struct i - __func__, len, offset, buf); - - isp1362_write_reg16(isp1362_hcd, HCuPINT, HCuPINT_EOT); -- _WARN_ON((isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - - isp1362_write_addr(isp1362_hcd, ISP1362_REG_HCDIRDATA); - - isp1362_read_fifo(isp1362_hcd, buf, len); -- _WARN_ON(!(isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - isp1362_write_reg16(isp1362_hcd, HCuPINT, HCuPINT_EOT); -- _WARN_ON((isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - } - - static void isp1362_write_buffer(struct isp1362_hcd *isp1362_hcd, void *buf, u16 offset, int len) -@@ -944,14 +938,11 @@ static void isp1362_write_buffer(struct - __func__, len, offset, buf); - - isp1362_write_reg16(isp1362_hcd, HCuPINT, HCuPINT_EOT); -- _WARN_ON((isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - - isp1362_write_addr(isp1362_hcd, ISP1362_REG_HCDIRDATA | ISP1362_REG_WRITE_OFFSET); - isp1362_write_fifo(isp1362_hcd, buf, len); - -- _WARN_ON(!(isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - isp1362_write_reg16(isp1362_hcd, HCuPINT, HCuPINT_EOT); -- _WARN_ON((isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_EOT)); - } - - static void __attribute__((unused)) dump_data(char *buf, int len) diff --git a/applied/usb-ldusb-remove-custom-dbg_info-macro.patch b/applied/usb-ldusb-remove-custom-dbg_info-macro.patch deleted file mode 100644 index ebb53dde670bad..00000000000000 --- a/applied/usb-ldusb-remove-custom-dbg_info-macro.patch +++ /dev/null @@ -1,86 +0,0 @@ -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/applied/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch b/applied/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch deleted file mode 100644 index b2ac3a9adb1445..00000000000000 --- a/applied/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch +++ /dev/null @@ -1,114 +0,0 @@ -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/applied/usb-legotower-remove-direct-calls-to-printk.patch b/applied/usb-legotower-remove-direct-calls-to-printk.patch deleted file mode 100644 index de03d6ee712f12..00000000000000 --- a/applied/usb-legotower-remove-direct-calls-to-printk.patch +++ /dev/null @@ -1,64 +0,0 @@ -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/applied/usb-legotower-remove-unneeded-tracing-macros.patch b/applied/usb-legotower-remove-unneeded-tracing-macros.patch deleted file mode 100644 index 2a1566fa382755..00000000000000 --- a/applied/usb-legotower-remove-unneeded-tracing-macros.patch +++ /dev/null @@ -1,217 +0,0 @@ -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/applied/usb-legousbtower-remove-custom-debug-macro.patch b/applied/usb-legousbtower-remove-custom-debug-macro.patch deleted file mode 100644 index 20e64efbc0d07e..00000000000000 --- a/applied/usb-legousbtower-remove-custom-debug-macro.patch +++ /dev/null @@ -1,110 +0,0 @@ -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/applied/usb-misc-remove-config_usb_debug-from-makefile.patch b/applied/usb-misc-remove-config_usb_debug-from-makefile.patch deleted file mode 100644 index 9ad231911543d0..00000000000000 --- a/applied/usb-misc-remove-config_usb_debug-from-makefile.patch +++ /dev/null @@ -1,27 +0,0 @@ -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/applied/usb-phy-remove-config_usb_debug-usage.patch b/applied/usb-phy-remove-config_usb_debug-usage.patch deleted file mode 100644 index e30581cbf501a5..00000000000000 --- a/applied/usb-phy-remove-config_usb_debug-usage.patch +++ /dev/null @@ -1,28 +0,0 @@ -From foo@baz Fri Jun 28 11:10:15 PDT 2013 -Date: Fri, 28 Jun 2013 11:10:15 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: phy: remove CONFIG_USB_DEBUG usage - -Now that no USB phy driver is using CONFIG_USB_DEBUG, remove it from the -Makefile. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/phy/Makefile | 3 --- - 1 file changed, 3 deletions(-) - ---- a/drivers/usb/phy/Makefile -+++ b/drivers/usb/phy/Makefile -@@ -1,9 +1,6 @@ - # - # Makefile for physical layer USB drivers - # -- --ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG -- - obj-$(CONFIG_USB_PHY) += phy.o - obj-$(CONFIG_OF) += of.o - diff --git a/applied/usb-phy-remove-custom-dbg-macro.patch b/applied/usb-phy-remove-custom-dbg-macro.patch deleted file mode 100644 index 603d7e91af778c..00000000000000 --- a/applied/usb-phy-remove-custom-dbg-macro.patch +++ /dev/null @@ -1,105 +0,0 @@ -From foo@baz Fri Jun 28 11:08:22 PDT 2013 -Date: Fri, 28 Jun 2013 11:08:22 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: phy: remove custom DBG macro - -Use the in-kernel pr_debug() calls instead of trying to roll your own -DBG macro. This means the dynamic debugging calls now work here, and -there is no dependency on CONFIG_USB_DEBUG for the phy code anymore. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - -Note, this is against 3.10-rc7, odds are it will not apply to 3.11-rc1, -I'll refresh it when that is out and apply it then. - - drivers/usb/phy/phy-fsl-usb.c | 6 +++--- - drivers/usb/phy/phy-fsm-usb.h | 11 ++--------- - drivers/usb/phy/phy-isp1301-omap.c | 6 +----- - 3 files changed, 6 insertions(+), 17 deletions(-) - ---- a/drivers/usb/phy/phy-fsl-usb.c -+++ b/drivers/usb/phy/phy-fsl-usb.c -@@ -611,7 +611,7 @@ static int fsl_otg_set_peripheral(struct - otg_dev->fsm.b_bus_req = 1; - - /* start the gadget right away if the ID pin says Mini-B */ -- DBG("ID pin=%d\n", otg_dev->fsm.id); -+ pr_debug("ID pin=%d\n", otg_dev->fsm.id); - if (otg_dev->fsm.id == 1) { - fsl_otg_start_host(&otg_dev->fsm, 0); - otg_drv_vbus(&otg_dev->fsm, 0); -@@ -684,7 +684,7 @@ static int fsl_otg_start_hnp(struct usb_ - if (otg_dev != fsl_otg_dev) - return -ENODEV; - -- DBG("start_hnp...n"); -+ pr_debug("start_hnp...\n"); - - /* clear a_bus_req to enter a_suspend state */ - otg_dev->fsm.a_bus_req = 0; -@@ -941,7 +941,7 @@ int usb_otg_start(struct platform_device - p_otg->fsm.id = 0; - } - -- DBG("initial ID pin=%d\n", p_otg->fsm.id); -+ pr_debug("initial ID pin=%d\n", p_otg->fsm.id); - - /* enable OTG ID pin interrupt */ - temp = fsl_readl(&p_otg->dr_mem_map->otgsc); ---- a/drivers/usb/phy/phy-fsm-usb.h -+++ b/drivers/usb/phy/phy-fsm-usb.h -@@ -15,18 +15,11 @@ - * 675 Mass Ave, Cambridge, MA 02139, USA. - */ - --#undef DEBUG - #undef VERBOSE - --#ifdef DEBUG --#define DBG(fmt, args...) printk(KERN_DEBUG "[%s] " fmt , \ -- __func__, ## args) --#else --#define DBG(fmt, args...) do {} while (0) --#endif -- - #ifdef VERBOSE --#define VDBG DBG -+#define VDBG(fmt, args...) pr_debug("[%s] " fmt , \ -+ __func__, ## args) - #else - #define VDBG(stuff...) do {} while (0) - #endif ---- a/drivers/usb/phy/phy-isp1301-omap.c -+++ b/drivers/usb/phy/phy-isp1301-omap.c -@@ -40,9 +40,7 @@ - - #include <mach/usb.h> - --#ifndef DEBUG --#undef VERBOSE --#endif -+#undef VERBOSE - - - #define DRIVER_VERSION "24 August 2004" -@@ -387,7 +385,6 @@ static void b_idle(struct isp1301 *isp, - static void - dump_regs(struct isp1301 *isp, const char *label) - { --#ifdef DEBUG - u8 ctrl = isp1301_get_u8(isp, ISP1301_OTG_CONTROL_1); - u8 status = isp1301_get_u8(isp, ISP1301_OTG_STATUS); - u8 src = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE); -@@ -396,7 +393,6 @@ dump_regs(struct isp1301 *isp, const cha - omap_readl(OTG_CTRL), label, state_name(isp), - ctrl, status, src); - /* mode control and irq enables don't change much */ --#endif - } - - /*-------------------------------------------------------------------------*/ diff --git a/applied/usb-remove-unneeded-idr.h-include.patch b/applied/usb-remove-unneeded-idr.h-include.patch deleted file mode 100644 index 3a5082c2d6b8cd..00000000000000 --- a/applied/usb-remove-unneeded-idr.h-include.patch +++ /dev/null @@ -1,36 +0,0 @@ -From foo@baz Tue Jul 2 12:19:50 PDT 2013 -Date: Tue, 02 Jul 2013 12:19:50 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: remove unneeded idr.h include - -None of these USB files need idr.h, so don't include it. - -Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/core/endpoint.c | 1 - - drivers/usb/musb/musb_core.c | 1 - - 2 files changed, 2 deletions(-) - ---- a/drivers/usb/core/endpoint.c -+++ b/drivers/usb/core/endpoint.c -@@ -12,7 +12,6 @@ - #include <linux/kernel.h> - #include <linux/spinlock.h> - #include <linux/slab.h> --#include <linux/idr.h> - #include <linux/usb.h> - #include "usb.h" - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -99,7 +99,6 @@ - #include <linux/prefetch.h> - #include <linux/platform_device.h> - #include <linux/io.h> --#include <linux/idr.h> - #include <linux/dma-mapping.h> - - #include "musb_core.h" diff --git a/applied/usb-sl811-move-debug-files-from-proc-to-debugfs.patch b/applied/usb-sl811-move-debug-files-from-proc-to-debugfs.patch deleted file mode 100644 index a18f57fd2a479f..00000000000000 --- a/applied/usb-sl811-move-debug-files-from-proc-to-debugfs.patch +++ /dev/null @@ -1,120 +0,0 @@ -From foo@baz Tue Jul 2 12:18:43 PDT 2013 -Date: Tue, 02 Jul 2013 12:18:43 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: sl811: move debug files from proc to debugfs - -Drivers should not be putting debug files in /proc/ that is what debugfs -is for, so move the sl811 driver's debug file to debugfs. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/sl811-hcd.c | 38 +++++++++++--------------------------- - drivers/usb/host/sl811.h | 2 +- - 2 files changed, 12 insertions(+), 28 deletions(-) - ---- a/drivers/usb/host/sl811-hcd.c -+++ b/drivers/usb/host/sl811-hcd.c -@@ -48,6 +48,8 @@ - #include <linux/usb/hcd.h> - #include <linux/platform_device.h> - #include <linux/prefetch.h> -+#include <linux/debugfs.h> -+#include <linux/seq_file.h> - - #include <asm/io.h> - #include <asm/irq.h> -@@ -63,11 +65,6 @@ MODULE_ALIAS("platform:sl811-hcd"); - - #define DRIVER_VERSION "19 May 2005" - -- --#ifndef DEBUG --# define STUB_DEBUG_FILE --#endif -- - /* for now, use only one transfer register bank */ - #undef USE_B - -@@ -1373,16 +1370,6 @@ sl811h_bus_resume(struct usb_hcd *hcd) - - /*-------------------------------------------------------------------------*/ - --#ifdef STUB_DEBUG_FILE -- --static inline void create_debug_file(struct sl811 *sl811) { } --static inline void remove_debug_file(struct sl811 *sl811) { } -- --#else -- --#include <linux/proc_fs.h> --#include <linux/seq_file.h> -- - static void dump_irq(struct seq_file *s, char *label, u8 mask) - { - seq_printf(s, "%s %02x%s%s%s%s%s%s\n", label, mask, -@@ -1394,7 +1381,7 @@ static void dump_irq(struct seq_file *s, - (mask & SL11H_INTMASK_DP) ? " dp" : ""); - } - --static int proc_sl811h_show(struct seq_file *s, void *unused) -+static int sl811h_show(struct seq_file *s, void *unused) - { - struct sl811 *sl811 = s->private; - struct sl811h_ep *ep; -@@ -1505,34 +1492,31 @@ static int proc_sl811h_show(struct seq_f - return 0; - } - --static int proc_sl811h_open(struct inode *inode, struct file *file) -+static int sl811h_open(struct inode *inode, struct file *file) - { -- return single_open(file, proc_sl811h_show, PDE_DATA(inode)); -+ return single_open(file, sl811h_show, inode->i_private); - } - --static const struct file_operations proc_ops = { -- .open = proc_sl811h_open, -+static const struct file_operations debug_ops = { -+ .open = sl811h_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, - }; - - /* expect just one sl811 per system */ --static const char proc_filename[] = "driver/sl811h"; -- - static void create_debug_file(struct sl811 *sl811) - { -- sl811->pde = proc_create_data(proc_filename, 0, NULL, &proc_ops, sl811); -+ sl811->debug_file = debugfs_create_file("sl811h", S_IRUGO, -+ usb_debug_root, sl811, -+ &debug_ops); - } - - static void remove_debug_file(struct sl811 *sl811) - { -- if (sl811->pde) -- remove_proc_entry(proc_filename, NULL); -+ debugfs_remove(sl811->debug_file); - } - --#endif -- - /*-------------------------------------------------------------------------*/ - - static void ---- a/drivers/usb/host/sl811.h -+++ b/drivers/usb/host/sl811.h -@@ -122,7 +122,7 @@ struct sl811 { - void __iomem *addr_reg; - void __iomem *data_reg; - struct sl811_platform_data *board; -- struct proc_dir_entry *pde; -+ struct dentry *debug_file; - - unsigned long stat_insrmv; - unsigned long stat_wake; diff --git a/applied/usb-sl811-remove-config_usb_debug-dependency.patch b/applied/usb-sl811-remove-config_usb_debug-dependency.patch deleted file mode 100644 index 3da1ebf5f97738..00000000000000 --- a/applied/usb-sl811-remove-config_usb_debug-dependency.patch +++ /dev/null @@ -1,308 +0,0 @@ -From foo@baz Fri Jun 28 11:21:28 PDT 2013 -Date: Fri, 28 Jun 2013 11:21:28 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Felipe Balbi <balbi@ti.com> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: sl811: remove CONFIG_USB_DEBUG dependency - -This removes the dependency of the driver on CONFIG_USB_DEBUG and moves -it to us the dynamic debug subsystem instead. Bonus is the fact that we -can now properly determine the exact hardware that is spitting out the -messages. - -This lets debugging be enabled without having to rebuild the driver, an -important thing for users that can not do it. - -Cc: Felipe Balbi <balbi@ti.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/host/sl811-hcd.c | 69 +++++++++++++++++++++++++------------------ - drivers/usb/host/sl811.h | 19 ----------- - 2 files changed, 42 insertions(+), 46 deletions(-) - ---- a/drivers/usb/host/sl811-hcd.c -+++ b/drivers/usb/host/sl811-hcd.c -@@ -100,7 +100,8 @@ static void port_power(struct sl811 *sl8 - - if (sl811->board && sl811->board->port_power) { - /* switch VBUS, at 500mA unless hub power budget gets set */ -- DBG("power %s\n", is_on ? "on" : "off"); -+ dev_dbg(hcd->self.controller, "power %s\n", -+ is_on ? "on" : "off"); - sl811->board->port_power(hcd->self.controller, is_on); - } - -@@ -282,7 +283,7 @@ static inline void sofirq_on(struct sl81 - { - if (sl811->irq_enable & SL11H_INTMASK_SOFINTR) - return; -- VDBG("sof irq on\n"); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq on\n"); - sl811->irq_enable |= SL11H_INTMASK_SOFINTR; - } - -@@ -290,7 +291,7 @@ static inline void sofirq_off(struct sl8 - { - if (!(sl811->irq_enable & SL11H_INTMASK_SOFINTR)) - return; -- VDBG("sof irq off\n"); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq off\n"); - sl811->irq_enable &= ~SL11H_INTMASK_SOFINTR; - } - -@@ -338,7 +339,8 @@ static struct sl811h_ep *start(struct sl - } - - if (unlikely(list_empty(&ep->hep->urb_list))) { -- DBG("empty %p queue?\n", ep); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "empty %p queue?\n", ep); - return NULL; - } - -@@ -391,7 +393,8 @@ static struct sl811h_ep *start(struct sl - status_packet(sl811, ep, urb, bank, control); - break; - default: -- DBG("bad ep%p pid %02x\n", ep, ep->nextpid); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "bad ep%p pid %02x\n", ep, ep->nextpid); - ep = NULL; - } - return ep; -@@ -447,7 +450,8 @@ static void finish_request( - } - - /* periodic deschedule */ -- DBG("deschedule qh%d/%p branch %d\n", ep->period, ep, ep->branch); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "deschedule qh%d/%p branch %d\n", ep->period, ep, ep->branch); - for (i = ep->branch; i < PERIODIC_SIZE; i += ep->period) { - struct sl811h_ep *temp; - struct sl811h_ep **prev = &sl811->periodic[i]; -@@ -593,7 +597,8 @@ static inline u8 checkdone(struct sl811 - ctl = sl811_read(sl811, SL811_EP_A(SL11H_HOSTCTLREG)); - if (ctl & SL11H_HCTLMASK_ARM) - sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG), 0); -- DBG("%s DONE_A: ctrl %02x sts %02x\n", -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "%s DONE_A: ctrl %02x sts %02x\n", - (ctl & SL11H_HCTLMASK_ARM) ? "timeout" : "lost", - ctl, - sl811_read(sl811, SL811_EP_A(SL11H_PKTSTATREG))); -@@ -604,7 +609,8 @@ static inline u8 checkdone(struct sl811 - ctl = sl811_read(sl811, SL811_EP_B(SL11H_HOSTCTLREG)); - if (ctl & SL11H_HCTLMASK_ARM) - sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG), 0); -- DBG("%s DONE_B: ctrl %02x sts %02x\n", -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "%s DONE_B: ctrl %02x sts %02x\n", - (ctl & SL11H_HCTLMASK_ARM) ? "timeout" : "lost", - ctl, - sl811_read(sl811, SL811_EP_B(SL11H_PKTSTATREG))); -@@ -665,7 +671,7 @@ retry: - * this one has nothing scheduled. - */ - if (sl811->next_periodic) { -- // ERR("overrun to slot %d\n", index); -+ // dev_err(hcd->self.controller, "overrun to slot %d\n", index); - sl811->stat_overrun++; - } - if (sl811->periodic[index]) -@@ -723,7 +729,7 @@ retry: - - } else if (irqstat & SL11H_INTMASK_RD) { - if (sl811->port1 & USB_PORT_STAT_SUSPEND) { -- DBG("wakeup\n"); -+ dev_dbg(hcd->self.controller, "wakeup\n"); - sl811->port1 |= USB_PORT_STAT_C_SUSPEND << 16; - sl811->stat_wake++; - } else -@@ -852,8 +858,9 @@ static int sl811h_urb_enqueue( - - if (ep->maxpacket > H_MAXPACKET) { - /* iso packets up to 240 bytes could work... */ -- DBG("dev %d ep%d maxpacket %d\n", -- udev->devnum, epnum, ep->maxpacket); -+ dev_dbg(hcd->self.controller, -+ "dev %d ep%d maxpacket %d\n", udev->devnum, -+ epnum, ep->maxpacket); - retval = -EINVAL; - kfree(ep); - goto fail; -@@ -917,7 +924,8 @@ static int sl811h_urb_enqueue( - * to share the faster parts of the tree without needing - * dummy/placeholder nodes - */ -- DBG("schedule qh%d/%p branch %d\n", ep->period, ep, ep->branch); -+ dev_dbg(hcd->self.controller, "schedule qh%d/%p branch %d\n", -+ ep->period, ep, ep->branch); - for (i = ep->branch; i < PERIODIC_SIZE; i += ep->period) { - struct sl811h_ep **prev = &sl811->periodic[i]; - struct sl811h_ep *here = *prev; -@@ -976,7 +984,8 @@ static int sl811h_urb_dequeue(struct usb - } else if (sl811->active_a == ep) { - if (time_before_eq(sl811->jiffies_a, jiffies)) { - /* happens a lot with lowspeed?? */ -- DBG("giveup on DONE_A: ctrl %02x sts %02x\n", -+ dev_dbg(hcd->self.controller, -+ "giveup on DONE_A: ctrl %02x sts %02x\n", - sl811_read(sl811, - SL811_EP_A(SL11H_HOSTCTLREG)), - sl811_read(sl811, -@@ -990,7 +999,8 @@ static int sl811h_urb_dequeue(struct usb - } else if (sl811->active_b == ep) { - if (time_before_eq(sl811->jiffies_a, jiffies)) { - /* happens a lot with lowspeed?? */ -- DBG("giveup on DONE_B: ctrl %02x sts %02x\n", -+ dev_dbg(hcd->self.controller, -+ "giveup on DONE_B: ctrl %02x sts %02x\n", - sl811_read(sl811, - SL811_EP_B(SL11H_HOSTCTLREG)), - sl811_read(sl811, -@@ -1008,7 +1018,8 @@ static int sl811h_urb_dequeue(struct usb - if (urb) - finish_request(sl811, ep, urb, 0); - else -- VDBG("dequeue, urb %p active %s; wait4irq\n", urb, -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "dequeue, urb %p active %s; wait4irq\n", urb, - (sl811->active_a == ep) ? "A" : "B"); - } else - retval = -EINVAL; -@@ -1029,7 +1040,7 @@ sl811h_endpoint_disable(struct usb_hcd * - if (!list_empty(&hep->urb_list)) - msleep(3); - if (!list_empty(&hep->urb_list)) -- WARNING("ep %p not empty?\n", ep); -+ dev_warn(hcd->self.controller, "ep %p not empty?\n", ep); - - kfree(ep); - hep->hcpriv = NULL; -@@ -1132,7 +1143,7 @@ sl811h_timer(unsigned long _sl811) - - switch (signaling) { - case SL11H_CTL1MASK_SE0: -- DBG("end reset\n"); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, "end reset\n"); - sl811->port1 = (USB_PORT_STAT_C_RESET << 16) - | USB_PORT_STAT_POWER; - sl811->ctrl1 = 0; -@@ -1141,11 +1152,12 @@ sl811h_timer(unsigned long _sl811) - irqstat &= ~SL11H_INTMASK_RD; - break; - case SL11H_CTL1MASK_K: -- DBG("end resume\n"); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, "end resume\n"); - sl811->port1 &= ~USB_PORT_STAT_SUSPEND; - break; - default: -- DBG("odd timer signaling: %02x\n", signaling); -+ dev_dbg(sl811_to_hcd(sl811)->self.controller, -+ "odd timer signaling: %02x\n", signaling); - break; - } - sl811_write(sl811, SL11H_IRQ_STATUS, irqstat); -@@ -1243,7 +1255,7 @@ sl811h_hub_control( - break; - - /* 20 msec of resume/K signaling, other irqs blocked */ -- DBG("start resume...\n"); -+ dev_dbg(hcd->self.controller, "start resume...\n"); - sl811->irq_enable = 0; - sl811_write(sl811, SL11H_IRQ_ENABLE, - sl811->irq_enable); -@@ -1281,7 +1293,8 @@ sl811h_hub_control( - #ifndef VERBOSE - if (*(u16*)(buf+2)) /* only if wPortChange is interesting */ - #endif -- DBG("GetPortStatus %08x\n", sl811->port1); -+ dev_dbg(hcd->self.controller, "GetPortStatus %08x\n", -+ sl811->port1); - break; - case SetPortFeature: - if (wIndex != 1 || wLength != 0) -@@ -1293,7 +1306,7 @@ sl811h_hub_control( - if (!(sl811->port1 & USB_PORT_STAT_ENABLE)) - goto error; - -- DBG("suspend...\n"); -+ dev_dbg(hcd->self.controller,"suspend...\n"); - sl811->ctrl1 &= ~SL11H_CTL1MASK_SOF_ENA; - sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1); - break; -@@ -1338,7 +1351,7 @@ static int - sl811h_bus_suspend(struct usb_hcd *hcd) - { - // SOFs off -- DBG("%s\n", __func__); -+ dev_dbg(hcd->self.controller, "%s\n", __func__); - return 0; - } - -@@ -1346,7 +1359,7 @@ static int - sl811h_bus_resume(struct usb_hcd *hcd) - { - // SOFs on -- DBG("%s\n", __func__); -+ dev_dbg(hcd->self.controller, "%s\n", __func__); - return 0; - } - -@@ -1648,7 +1661,7 @@ sl811h_probe(struct platform_device *dev - - /* refuse to confuse usbcore */ - if (dev->dev.dma_mask) { -- DBG("no we won't dma\n"); -+ dev_dbg(&dev->dev, "no we won't dma\n"); - return -EINVAL; - } - -@@ -1716,7 +1729,7 @@ sl811h_probe(struct platform_device *dev - break; - default: - /* reject case 0, SL11S is less functional */ -- DBG("chiprev %02x\n", tmp); -+ dev_dbg(&dev->dev, "chiprev %02x\n", tmp); - retval = -ENXIO; - goto err6; - } -@@ -1747,7 +1760,7 @@ sl811h_probe(struct platform_device *dev - if (!ioaddr) - iounmap(addr_reg); - err2: -- DBG("init error, %d\n", retval); -+ dev_dbg(&dev->dev, "init error, %d\n", retval); - return retval; - } - ---- a/drivers/usb/host/sl811.h -+++ b/drivers/usb/host/sl811.h -@@ -242,25 +242,8 @@ sl811_read_buf(struct sl811 *sl811, int - - /*-------------------------------------------------------------------------*/ - --#ifdef DEBUG --#define DBG(stuff...) printk(KERN_DEBUG "sl811: " stuff) --#else --#define DBG(stuff...) do{}while(0) --#endif -- --#ifdef VERBOSE --# define VDBG DBG --#else --# define VDBG(stuff...) do{}while(0) --#endif -- - #ifdef PACKET_TRACE --# define PACKET VDBG -+# define PACKET pr_debug("sl811: "stuff) - #else - # define PACKET(stuff...) do{}while(0) - #endif -- --#define ERR(stuff...) printk(KERN_ERR "sl811: " stuff) --#define WARNING(stuff...) printk(KERN_WARNING "sl811: " stuff) --#define INFO(stuff...) printk(KERN_INFO "sl811: " stuff) -- diff --git a/applied/usb-usbatm-don-t-rely-on-config_usb_debug.patch b/applied/usb-usbatm-don-t-rely-on-config_usb_debug.patch deleted file mode 100644 index dc6ff519a37a32..00000000000000 --- a/applied/usb-usbatm-don-t-rely-on-config_usb_debug.patch +++ /dev/null @@ -1,40 +0,0 @@ -From foo@baz Fri Jun 28 11:03:03 PDT 2013 -Date: Fri, 28 Jun 2013 11:03:03 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Duncan Sands <duncan.sands@free.fr> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: usbatm: don't rely on CONFIG_USB_DEBUG - -Enable the USB atm drivers to use the dynamic debugging subsystem, and -not rely on if CONFIG_USB_DEBUG is enabled or not for debugging -messages. This also provides a saner debug message, pointing out the -exact device the message is coming from. - -This also means the drivers do not have to be rebuilt to get debugging -messages, important for getting information from users who can not -rebuild their kernels. - -Cc: Duncan Sands <duncan.sands@free.fr> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/atm/usbatm.h | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - ---- a/drivers/usb/atm/usbatm.h -+++ b/drivers/usb/atm/usbatm.h -@@ -45,13 +45,8 @@ - dev_info(&(instance)->usb_intf->dev , format , ## arg) - #define usb_warn(instance, format, arg...) \ - dev_warn(&(instance)->usb_intf->dev , format , ## arg) --#ifdef DEBUG - #define usb_dbg(instance, format, arg...) \ -- dev_printk(KERN_DEBUG , &(instance)->usb_intf->dev , format , ## arg) --#else --#define usb_dbg(instance, format, arg...) \ -- do {} while (0) --#endif -+ dev_dbg(&(instance)->usb_intf->dev , format , ## arg) - - /* FIXME: move to dev_* once ATM is driver model aware */ - #define atm_printk(level, instance, format, arg...) \ diff --git a/applied/usb-usbatm-move-the-atm_dbg-call-to-use-dynamic-debug.patch b/applied/usb-usbatm-move-the-atm_dbg-call-to-use-dynamic-debug.patch deleted file mode 100644 index e2b15aa5168699..00000000000000 --- a/applied/usb-usbatm-move-the-atm_dbg-call-to-use-dynamic-debug.patch +++ /dev/null @@ -1,46 +0,0 @@ -From foo@baz Fri Jun 28 11:04:33 PDT 2013 -Date: Fri, 28 Jun 2013 11:04:33 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Duncan Sands <duncan.sands@free.fr> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: usbatm: move the atm_dbg() call to use dynamic debug - -Move the atm_dbg() call to use the dynamic debug subsystem, and not rely -on CONFIG_USB_DEBUG for if things should be printed out or not. - -This also means the drivers do not have to be rebuilt to get debugging -messages, important for getting information from users who can not -rebuild their kernels. - -Cc: Duncan Sands <duncan.sands@free.fr> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/atm/usbatm.h | 16 +++++----------- - 1 file changed, 5 insertions(+), 11 deletions(-) - ---- a/drivers/usb/atm/usbatm.h -+++ b/drivers/usb/atm/usbatm.h -@@ -59,18 +59,12 @@ - atm_printk(KERN_INFO, instance , format , ## arg) - #define atm_warn(instance, format, arg...) \ - atm_printk(KERN_WARNING, instance , format , ## arg) --#ifdef DEBUG --#define atm_dbg(instance, format, arg...) \ -- atm_printk(KERN_DEBUG, instance , format , ## arg) --#define atm_rldbg(instance, format, arg...) \ -+#define atm_dbg(instance, format, arg...) \ -+ dynamic_pr_debug("ATM dev %d: " format , \ -+ (instance)->atm_dev->number , ## arg) -+#define atm_rldbg(instance, format, arg...) \ - if (printk_ratelimit()) \ -- atm_printk(KERN_DEBUG, instance , format , ## arg) --#else --#define atm_dbg(instance, format, arg...) \ -- do {} while (0) --#define atm_rldbg(instance, format, arg...) \ -- do {} while (0) --#endif -+ atm_dbg(instance , format , ## arg) - - - /* flags, set by mini-driver in bind() */ diff --git a/applied/usb-usbatm-remove-config_usb_debug-dependancy.patch b/applied/usb-usbatm-remove-config_usb_debug-dependancy.patch deleted file mode 100644 index 3d22ffa838db00..00000000000000 --- a/applied/usb-usbatm-remove-config_usb_debug-dependancy.patch +++ /dev/null @@ -1,63 +0,0 @@ -From foo@baz Fri Jun 28 11:06:30 PDT 2013 -Date: Fri, 28 Jun 2013 11:06:30 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Duncan Sands <duncan.sands@free.fr> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: usbatm: remove CONFIG_USB_DEBUG dependancy - -Now that no USB atm driver is relying on the CONFIG_USB_DEBUG option -(well, really the DEBUG option, thanks to some Makefile fun), remove it -from the Makefile. - -Also remove two last vestiges of DEBUG in the usbatm.c driver, moving -one to VERBOSE_DEBUG, which no one ever really cares about, and the -other to use the dynamic debug subsystem. - -Cc: Duncan Sands <duncan.sands@free.fr> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/atm/Makefile | 3 --- - drivers/usb/atm/usbatm.c | 7 +++---- - 2 files changed, 3 insertions(+), 7 deletions(-) - ---- a/drivers/usb/atm/Makefile -+++ b/drivers/usb/atm/Makefile -@@ -1,9 +1,6 @@ - # - # Makefile for USB ATM/xDSL drivers - # -- --ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG -- - obj-$(CONFIG_USB_CXACRU) += cxacru.o - obj-$(CONFIG_USB_SPEEDTOUCH) += speedtch.o - obj-$(CONFIG_USB_UEAGLEATM) += ueagle-atm.o ---- a/drivers/usb/atm/usbatm.c -+++ b/drivers/usb/atm/usbatm.c -@@ -661,7 +661,7 @@ static int usbatm_atm_send(struct atm_vc - - /* racy disconnection check - fine */ - if (!instance || instance->disconnected) { --#ifdef DEBUG -+#ifdef VERBOSE_DEBUG - printk_ratelimited(KERN_DEBUG "%s: %s!\n", __func__, instance ? "disconnected" : "NULL instance"); - #endif - err = -ENODEV; -@@ -1120,14 +1120,13 @@ int usbatm_usb_probe(struct usb_interfac - instance->rx_channel.buf_size = num_packets * maxpacket; - instance->rx_channel.packet_size = maxpacket; - --#ifdef DEBUG - for (i = 0; i < 2; i++) { - struct usbatm_channel *channel = i ? - &instance->tx_channel : &instance->rx_channel; - -- dev_dbg(dev, "%s: using %d byte buffer for %s channel 0x%p\n", __func__, channel->buf_size, i ? "tx" : "rx", channel); -+ dev_dbg(dev, "%s: using %d byte buffer for %s channel 0x%p\n", -+ __func__, channel->buf_size, i ? "tx" : "rx", channel); - } --#endif - - /* initialize urbs */ - diff --git a/applied/usb-usbatm-remove-unneeded-trace-printk-calls.patch b/applied/usb-usbatm-remove-unneeded-trace-printk-calls.patch deleted file mode 100644 index 47744072df983c..00000000000000 --- a/applied/usb-usbatm-remove-unneeded-trace-printk-calls.patch +++ /dev/null @@ -1,149 +0,0 @@ -From foo@baz Fri Jun 28 11:02:03 PDT 2013 -Date: Fri, 28 Jun 2013 11:02:03 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Duncan Sands <duncan.sands@free.fr> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: usbatm: remove unneeded trace printk calls - -We have an in-kernel trace subsystem, so use that instead of printk for -trying to figure out what functions are being called. - -Cc: Duncan Sands <duncan.sands@free.fr> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/usb/atm/usbatm.c | 34 ---------------------------------- - 1 file changed, 34 deletions(-) - ---- a/drivers/usb/atm/usbatm.c -+++ b/drivers/usb/atm/usbatm.c -@@ -311,8 +311,6 @@ static void usbatm_extract_one_cell(stru - int vci = ((source[1] & 0x0f) << 12) | (source[2] << 4) | (source[3] >> 4); - u8 pti = ((source[3] & 0xe) >> 1); - -- vdbg(&instance->usb_intf->dev, "%s: vpi %hd, vci %d, pti %d", __func__, vpi, vci, pti); -- - if ((vci != instance->cached_vci) || (vpi != instance->cached_vpi)) { - instance->cached_vpi = vpi; - instance->cached_vci = vci; -@@ -476,9 +474,6 @@ static unsigned int usbatm_write_cells(s - unsigned int bytes_written; - unsigned int stride = instance->tx_channel.stride; - -- vdbg(&instance->usb_intf->dev, "%s: skb->len=%d, avail_space=%u", -- __func__, skb->len, avail_space); -- - for (bytes_written = 0; bytes_written < avail_space && ctrl->len; - bytes_written += stride, target += stride) { - unsigned int data_len = min_t(unsigned int, skb->len, ATM_CELL_PAYLOAD); -@@ -639,7 +634,6 @@ static void usbatm_cancel_send(struct us - { - struct sk_buff *skb, *n; - -- atm_dbg(instance, "%s entered\n", __func__); - spin_lock_irq(&instance->sndqueue.lock); - skb_queue_walk_safe(&instance->sndqueue, skb, n) { - if (UDSL_SKB(skb)->atm.vcc == vcc) { -@@ -657,7 +651,6 @@ static void usbatm_cancel_send(struct us - usbatm_pop(vcc, skb); - } - tasklet_enable(&instance->tx_channel.tasklet); -- atm_dbg(instance, "%s done\n", __func__); - } - - static int usbatm_atm_send(struct atm_vcc *vcc, struct sk_buff *skb) -@@ -675,9 +668,6 @@ static int usbatm_atm_send(struct atm_vc - goto fail; - } - -- vdbg(&instance->usb_intf->dev, "%s called (skb 0x%p, len %u)", __func__, -- skb, skb->len); -- - if (vcc->qos.aal != ATM_AAL5) { - atm_rldbg(instance, "%s: unsupported ATM type %d!\n", __func__, vcc->qos.aal); - err = -EINVAL; -@@ -717,8 +707,6 @@ static void usbatm_destroy_instance(stru - { - struct usbatm_data *instance = container_of(kref, struct usbatm_data, refcount); - -- usb_dbg(instance, "%s\n", __func__); -- - tasklet_kill(&instance->rx_channel.tasklet); - tasklet_kill(&instance->tx_channel.tasklet); - usb_put_dev(instance->usb_dev); -@@ -727,15 +715,11 @@ static void usbatm_destroy_instance(stru - - static void usbatm_get_instance(struct usbatm_data *instance) - { -- usb_dbg(instance, "%s\n", __func__); -- - kref_get(&instance->refcount); - } - - static void usbatm_put_instance(struct usbatm_data *instance) - { -- usb_dbg(instance, "%s\n", __func__); -- - kref_put(&instance->refcount, usbatm_destroy_instance); - } - -@@ -751,7 +735,6 @@ static void usbatm_atm_dev_close(struct - if (!instance) - return; - -- usb_dbg(instance, "%s\n", __func__); - atm_dev->dev_data = NULL; /* catch bugs */ - usbatm_put_instance(instance); /* taken in usbatm_atm_init */ - } -@@ -807,8 +790,6 @@ static int usbatm_atm_open(struct atm_vc - if (!instance) - return -ENODEV; - -- atm_dbg(instance, "%s: vpi %hd, vci %d\n", __func__, vpi, vci); -- - /* only support AAL5 */ - if ((vcc->qos.aal != ATM_AAL5)) { - atm_warn(instance, "%s: unsupported ATM type %d!\n", __func__, vcc->qos.aal); -@@ -885,11 +866,6 @@ static void usbatm_atm_close(struct atm_ - if (!instance || !vcc_data) - return; - -- atm_dbg(instance, "%s entered\n", __func__); -- -- atm_dbg(instance, "%s: deallocating vcc 0x%p with vpi %d vci %d\n", -- __func__, vcc_data, vcc_data->vpi, vcc_data->vci); -- - usbatm_cancel_send(instance, vcc); - - mutex_lock(&instance->serialize); /* vs self, usbatm_atm_open, usbatm_usb_disconnect */ -@@ -916,8 +892,6 @@ static void usbatm_atm_close(struct atm_ - clear_bit(ATM_VF_ADDR, &vcc->flags); - - mutex_unlock(&instance->serialize); -- -- atm_dbg(instance, "%s successful\n", __func__); - } - - static int usbatm_atm_ioctl(struct atm_dev *atm_dev, unsigned int cmd, -@@ -1054,12 +1028,6 @@ int usbatm_usb_probe(struct usb_interfac - int i, length; - unsigned int maxpacket, num_packets; - -- dev_dbg(dev, "%s: trying driver %s with vendor=%04x, product=%04x, ifnum %2d\n", -- __func__, driver->driver_name, -- le16_to_cpu(usb_dev->descriptor.idVendor), -- le16_to_cpu(usb_dev->descriptor.idProduct), -- intf->altsetting->desc.bInterfaceNumber); -- - /* instance init */ - instance = kzalloc(sizeof(*instance) + sizeof(struct urb *) * (num_rcv_urbs + num_snd_urbs), GFP_KERNEL); - if (!instance) { -@@ -1258,8 +1226,6 @@ void usbatm_usb_disconnect(struct usb_in - struct usbatm_vcc_data *vcc_data; - int i; - -- dev_dbg(dev, "%s entered\n", __func__); -- - if (!instance) { - dev_dbg(dev, "%s: NULL instance!\n", __func__); - return; diff --git a/applied/usb-usbatm-remove-unused-udsl_assert-macro.patch b/applied/usb-usbatm-remove-unused-udsl_assert-macro.patch deleted file mode 100644 index 38b083e56f607f..00000000000000 --- a/applied/usb-usbatm-remove-unused-udsl_assert-macro.patch +++ /dev/null @@ -1,85 +0,0 @@ -From foo@baz Fri Jun 28 11:00:13 PDT 2013 -Date: Fri, 28 Jun 2013 11:00:13 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -Cc: Duncan Sands <duncan.sands@free.fr> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: USB: usbatm: remove unused UDSL_ASSERT macro - -If this code isn't triggering this assert by now, it never will, so just -remove it, it's pointless. - -Cc: Duncan Sands <duncan.sands@free.fr> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - - ---- - drivers/usb/atm/usbatm.c | 8 -------- - drivers/usb/atm/usbatm.h | 12 ------------ - 2 files changed, 20 deletions(-) - ---- a/drivers/usb/atm/usbatm.c -+++ b/drivers/usb/atm/usbatm.c -@@ -344,7 +344,6 @@ static void usbatm_extract_one_cell(stru - __func__, sarb->len, vcc); - /* discard cells already received */ - skb_trim(sarb, 0); -- UDSL_ASSERT(instance, sarb->tail + ATM_CELL_PAYLOAD <= sarb->end); - } - - memcpy(skb_tail_pointer(sarb), source + ATM_CELL_HEADER, ATM_CELL_PAYLOAD); -@@ -437,8 +436,6 @@ static void usbatm_extract_cells(struct - unsigned char *cell_buf = instance->cell_buf; - unsigned int space_left = stride - buf_usage; - -- UDSL_ASSERT(instance, buf_usage <= stride); -- - if (avail_data >= space_left) { - /* add new data and process cell */ - memcpy(cell_buf + buf_usage, source, space_left); -@@ -481,7 +478,6 @@ static unsigned int usbatm_write_cells(s - - vdbg(&instance->usb_intf->dev, "%s: skb->len=%d, avail_space=%u", - __func__, skb->len, avail_space); -- UDSL_ASSERT(instance, !(avail_space % stride)); - - for (bytes_written = 0; bytes_written < avail_space && ctrl->len; - bytes_written += stride, target += stride) { -@@ -553,8 +549,6 @@ static void usbatm_rx_process(unsigned l - if (!urb->iso_frame_desc[i].status) { - unsigned int actual_length = urb->iso_frame_desc[i].actual_length; - -- UDSL_ASSERT(instance, actual_length <= packet_size); -- - if (!merge_length) - merge_start = (unsigned char *)urb->transfer_buffer + urb->iso_frame_desc[i].offset; - merge_length += actual_length; -@@ -1176,8 +1170,6 @@ int usbatm_usb_probe(struct usb_interfac - struct urb *urb; - unsigned int iso_packets = usb_pipeisoc(channel->endpoint) ? channel->buf_size / channel->packet_size : 0; - -- UDSL_ASSERT(instance, !usb_pipeisoc(channel->endpoint) || usb_pipein(channel->endpoint)); -- - urb = usb_alloc_urb(iso_packets, GFP_KERNEL); - if (!urb) { - dev_err(dev, "%s: no memory for urb %d!\n", __func__, i); ---- a/drivers/usb/atm/usbatm.h -+++ b/drivers/usb/atm/usbatm.h -@@ -39,18 +39,6 @@ - #define VERBOSE_DEBUG - */ - --#ifdef DEBUG --#define UDSL_ASSERT(instance, x) BUG_ON(!(x)) --#else --#define UDSL_ASSERT(instance, x) \ -- do { \ -- if (!(x)) \ -- dev_warn(&(instance)->usb_intf->dev, \ -- "failed assertion '%s' at line %d", \ -- __stringify(x), __LINE__); \ -- } while (0) --#endif -- - #define usb_err(instance, format, arg...) \ - dev_err(&(instance)->usb_intf->dev , format , ## arg) - #define usb_info(instance, format, arg...) \ diff --git a/backing-dev-convert-class-code-to-use-dev_groups.patch b/backing-dev-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 710d2624e8a5d4..00000000000000 --- a/backing-dev-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,63 +0,0 @@ -From foo@baz Tue Jul 9 15:34:49 PDT 2013 -Date: Tue, 09 Jul 2013 15:34:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: backing-dev: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the backing device class code to -use the correct field. - -Cc: Andrew Morton <akpm@linux-foundation.org> -Cc: Jan Kara <jack@suse.cz> -Cc: Tejun Heo <tj@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - mm/backing-dev.c | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) - ---- a/mm/backing-dev.c -+++ b/mm/backing-dev.c -@@ -180,7 +180,8 @@ static ssize_t name##_show(struct device - struct backing_dev_info *bdi = dev_get_drvdata(dev); \ - \ - return snprintf(page, PAGE_SIZE-1, "%lld\n", (long long)expr); \ --} -+} \ -+static DEVICE_ATTR_RW(name); - - BDI_SHOW(read_ahead_kb, K(bdi->ra_pages)) - -@@ -231,14 +232,16 @@ static ssize_t stable_pages_required_sho - return snprintf(page, PAGE_SIZE-1, "%d\n", - bdi_cap_stable_pages_required(bdi) ? 1 : 0); - } -+static DEVICE_ATTR_RO(stable_pages_required); - --static struct device_attribute bdi_dev_attrs[] = { -- __ATTR_RW(read_ahead_kb), -- __ATTR_RW(min_ratio), -- __ATTR_RW(max_ratio), -- __ATTR_RO(stable_pages_required), -- __ATTR_NULL, -+static struct attribute *bdi_dev_attrs[] = { -+ &dev_attr_read_ahead_kb.attr, -+ &dev_attr_min_ratio.attr, -+ &dev_attr_max_ratio.attr, -+ &dev_attr_stable_pages_required.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(bdi_dev); - - static __init int bdi_class_init(void) - { -@@ -246,7 +249,7 @@ static __init int bdi_class_init(void) - if (IS_ERR(bdi_class)) - return PTR_ERR(bdi_class); - -- bdi_class->dev_attrs = bdi_dev_attrs; -+ bdi_class->dev_groups = bdi_dev_groups; - bdi_debug_init(); - return 0; - } diff --git a/bsr-convert-bsr_class-to-use-dev_groups.patch b/bsr-convert-bsr_class-to-use-dev_groups.patch deleted file mode 100644 index e43d9d812375c1..00000000000000 --- a/bsr-convert-bsr_class-to-use-dev_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Tue Jul 9 14:47:37 PDT 2013 -Date: Tue, 09 Jul 2013 14:47:37 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: bsr: convert bsr_class to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the bsr bsr_class code to use -the correct field. - -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/char/bsr.c | 18 +++++++++++------- - 1 file changed, 11 insertions(+), 7 deletions(-) - ---- a/drivers/char/bsr.c -+++ b/drivers/char/bsr.c -@@ -95,6 +95,7 @@ bsr_size_show(struct device *dev, struct - struct bsr_dev *bsr_dev = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", bsr_dev->bsr_bytes); - } -+static DEVICE_ATTR_RO(bsr_size); - - static ssize_t - bsr_stride_show(struct device *dev, struct device_attribute *attr, char *buf) -@@ -102,20 +103,23 @@ bsr_stride_show(struct device *dev, stru - struct bsr_dev *bsr_dev = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", bsr_dev->bsr_stride); - } -+static DEVICE_ATTR_RO(bsr_stride); - - static ssize_t --bsr_len_show(struct device *dev, struct device_attribute *attr, char *buf) -+bsr_length_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct bsr_dev *bsr_dev = dev_get_drvdata(dev); - return sprintf(buf, "%llu\n", bsr_dev->bsr_len); - } -+static DEVICE_ATTR_RO(bsr_length); - --static struct device_attribute bsr_dev_attrs[] = { -- __ATTR(bsr_size, S_IRUGO, bsr_size_show, NULL), -- __ATTR(bsr_stride, S_IRUGO, bsr_stride_show, NULL), -- __ATTR(bsr_length, S_IRUGO, bsr_len_show, NULL), -- __ATTR_NULL -+static struct attribute *bsr_dev_attrs[] = { -+ &dev_attr_bsr_size.attr, -+ &dev_attr_bsr_stride.attr, -+ &dev_attr_bsr_length.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(bsr_dev); - - static int bsr_mmap(struct file *filp, struct vm_area_struct *vma) - { -@@ -308,7 +312,7 @@ static int __init bsr_init(void) - ret = PTR_ERR(bsr_class); - goto out_err_1; - } -- bsr_class->dev_attrs = bsr_dev_attrs; -+ bsr_class->dev_groups = bsr_dev_groups; - - ret = alloc_chrdev_region(&bsr_dev, 0, BSR_MAX_DEVS, "bsr"); - bsr_major = MAJOR(bsr_dev); diff --git a/c2port-convert-class-code-to-use-bin_attrs-in-groups.patch b/c2port-convert-class-code-to-use-bin_attrs-in-groups.patch deleted file mode 100644 index 7d88166ddee850..00000000000000 --- a/c2port-convert-class-code-to-use-bin_attrs-in-groups.patch +++ /dev/null @@ -1,77 +0,0 @@ -From foo@baz Wed Jul 10 12:20:53 PDT 2013 -Date: Wed, 10 Jul 2013 12:20:53 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: c2port: convert class code to use bin_attrs in groups - -Now that attribute groups support binary attributes, use them instead of -the dev_bin_attrs field in struct class, as that is going away soon. - -Cc: Rodolfo Giometti <giometti@linux.it> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/misc/c2port/core.c | 31 +++++++++++++++++-------------- - 1 file changed, 17 insertions(+), 14 deletions(-) - ---- a/drivers/misc/c2port/core.c -+++ b/drivers/misc/c2port/core.c -@@ -856,6 +856,9 @@ static ssize_t c2port_write_flash_data(s - - return ret; - } -+/* size is computed at run-time */ -+static BIN_ATTR(flash_data, 0644, c2port_read_flash_data, -+ c2port_write_flash_data, 0); - - /* - * Class attributes -@@ -873,19 +876,20 @@ static struct attribute *c2port_attrs[] - &dev_attr_flash_erase.attr, - NULL, - }; --ATTRIBUTE_GROUPS(c2port); - --static struct bin_attribute c2port_bin_attrs[] = { -- { -- .attr = { -- .name = "flash_data", -- .mode = 0644 -- }, -- .read = c2port_read_flash_data, -- .write = c2port_write_flash_data, -- /* .size is computed at run-time */ -- }, -- __ATTR_NULL -+static struct bin_attribute *c2port_bin_attrs[] = { -+ &bin_attr_flash_data, -+ NULL, -+}; -+ -+static const struct attribute_group c2port_group = { -+ .attrs = c2port_attrs, -+ .bin_attrs = c2port_bin_attrs, -+}; -+ -+static const struct attribute_group *c2port_groups[] = { -+ &c2port_group, -+ NULL, - }; - - /* -@@ -918,7 +922,7 @@ struct c2port_device *c2port_device_regi - goto error_idr_alloc; - c2dev->id = ret; - -- c2port_bin_attrs[0].size = ops->blocks_num * ops->block_size; -+ bin_attr_flash_data.size = ops->blocks_num * ops->block_size; - - c2dev->dev = device_create(c2port_class, NULL, 0, c2dev, - "c2port%d", c2dev->id); -@@ -988,7 +992,6 @@ static int __init c2port_init(void) - return PTR_ERR(c2port_class); - } - c2port_class->dev_groups = c2port_groups; -- c2port_class->dev_bin_attrs = c2port_bin_attrs; - - return 0; - } diff --git a/c2port-convert-class-code-to-use-dev_groups.patch b/c2port-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 35f65086e635bc..00000000000000 --- a/c2port-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,161 +0,0 @@ -From foo@baz Tue Jul 9 15:10:20 PDT 2013 -Date: Tue, 09 Jul 2013 15:10:20 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: c2port: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the c2port class code to use the -correct field. - -Cc: Rodolfo Giometti <giometti@linux.it> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/misc/c2port/core.c | 50 ++++++++++++++++++++++++++------------------- - 1 file changed, 29 insertions(+), 21 deletions(-) - ---- a/drivers/misc/c2port/core.c -+++ b/drivers/misc/c2port/core.c -@@ -311,6 +311,7 @@ static ssize_t c2port_show_name(struct d - - return sprintf(buf, "%s\n", c2dev->name); - } -+static DEVICE_ATTR(name, 0444, c2port_show_name, NULL); - - static ssize_t c2port_show_flash_blocks_num(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -320,6 +321,7 @@ static ssize_t c2port_show_flash_blocks_ - - return sprintf(buf, "%d\n", ops->blocks_num); - } -+static DEVICE_ATTR(flash_blocks_num, 0444, c2port_show_flash_blocks_num, NULL); - - static ssize_t c2port_show_flash_block_size(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -329,6 +331,7 @@ static ssize_t c2port_show_flash_block_s - - return sprintf(buf, "%d\n", ops->block_size); - } -+static DEVICE_ATTR(flash_block_size, 0444, c2port_show_flash_block_size, NULL); - - static ssize_t c2port_show_flash_size(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -338,18 +341,18 @@ static ssize_t c2port_show_flash_size(st - - return sprintf(buf, "%d\n", ops->blocks_num * ops->block_size); - } -+static DEVICE_ATTR(flash_size, 0444, c2port_show_flash_size, NULL); - --static ssize_t c2port_show_access(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t access_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct c2port_device *c2dev = dev_get_drvdata(dev); - - return sprintf(buf, "%d\n", c2dev->access); - } - --static ssize_t c2port_store_access(struct device *dev, -- struct device_attribute *attr, -- const char *buf, size_t count) -+static ssize_t access_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct c2port_device *c2dev = dev_get_drvdata(dev); - struct c2port_ops *ops = c2dev->ops; -@@ -375,6 +378,7 @@ static ssize_t c2port_store_access(struc - - return count; - } -+static DEVICE_ATTR_RW(access); - - static ssize_t c2port_store_reset(struct device *dev, - struct device_attribute *attr, -@@ -395,6 +399,7 @@ static ssize_t c2port_store_reset(struct - - return count; - } -+static DEVICE_ATTR(reset, 0200, NULL, c2port_store_reset); - - static ssize_t __c2port_show_dev_id(struct c2port_device *dev, char *buf) - { -@@ -431,6 +436,7 @@ static ssize_t c2port_show_dev_id(struct - - return ret; - } -+static DEVICE_ATTR(dev_id, 0444, c2port_show_dev_id, NULL); - - static ssize_t __c2port_show_rev_id(struct c2port_device *dev, char *buf) - { -@@ -467,6 +473,7 @@ static ssize_t c2port_show_rev_id(struct - - return ret; - } -+static DEVICE_ATTR(rev_id, 0444, c2port_show_rev_id, NULL); - - static ssize_t c2port_show_flash_access(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -536,6 +543,8 @@ static ssize_t c2port_store_flash_access - - return count; - } -+static DEVICE_ATTR(flash_access, 0644, c2port_show_flash_access, -+ c2port_store_flash_access); - - static ssize_t __c2port_write_flash_erase(struct c2port_device *dev) - { -@@ -616,6 +625,7 @@ static ssize_t c2port_store_flash_erase( - - return count; - } -+static DEVICE_ATTR(flash_erase, 0200, NULL, c2port_store_flash_erase); - - static ssize_t __c2port_read_flash_data(struct c2port_device *dev, - char *buffer, loff_t offset, size_t count) -@@ -850,22 +860,20 @@ static ssize_t c2port_write_flash_data(s - /* - * Class attributes - */ -- --static struct device_attribute c2port_attrs[] = { -- __ATTR(name, 0444, c2port_show_name, NULL), -- __ATTR(flash_blocks_num, 0444, c2port_show_flash_blocks_num, NULL), -- __ATTR(flash_block_size, 0444, c2port_show_flash_block_size, NULL), -- __ATTR(flash_size, 0444, c2port_show_flash_size, NULL), -- __ATTR(access, 0644, c2port_show_access, c2port_store_access), -- __ATTR(reset, 0200, NULL, c2port_store_reset), -- __ATTR(dev_id, 0444, c2port_show_dev_id, NULL), -- __ATTR(rev_id, 0444, c2port_show_rev_id, NULL), -- -- __ATTR(flash_access, 0644, c2port_show_flash_access, -- c2port_store_flash_access), -- __ATTR(flash_erase, 0200, NULL, c2port_store_flash_erase), -- __ATTR_NULL, -+static struct attribute *c2port_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_flash_blocks_num.attr, -+ &dev_attr_flash_block_size.attr, -+ &dev_attr_flash_size.attr, -+ &dev_attr_access.attr, -+ &dev_attr_reset.attr, -+ &dev_attr_dev_id.attr, -+ &dev_attr_rev_id.attr, -+ &dev_attr_flash_access.attr, -+ &dev_attr_flash_erase.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(c2port); - - static struct bin_attribute c2port_bin_attrs[] = { - { -@@ -979,7 +987,7 @@ static int __init c2port_init(void) - printk(KERN_ERR "c2port: failed to allocate class\n"); - return PTR_ERR(c2port_class); - } -- c2port_class->dev_attrs = c2port_attrs; -+ c2port_class->dev_groups = c2port_groups; - c2port_class->dev_bin_attrs = c2port_bin_attrs; - - return 0; diff --git a/cuse-convert-class-code-to-use-dev_groups.patch b/cuse-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index b11e4401de6b64..00000000000000 --- a/cuse-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz Tue Jul 9 15:33:17 PDT 2013 -Date: Tue, 09 Jul 2013 15:33:17 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: cuse: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the cuse class code to use the -correct field. - -Cc: Miklos Szeredi <miklos@szeredi.hu> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - fs/fuse/cuse.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/fs/fuse/cuse.c -+++ b/fs/fuse/cuse.c -@@ -568,6 +568,7 @@ static ssize_t cuse_class_waiting_show(s - - return sprintf(buf, "%d\n", atomic_read(&cc->fc.num_waiting)); - } -+static DEVICE_ATTR(waiting, S_IFREG | 0400, cuse_class_waiting_show, NULL); - - static ssize_t cuse_class_abort_store(struct device *dev, - struct device_attribute *attr, -@@ -578,12 +579,14 @@ static ssize_t cuse_class_abort_store(st - fuse_abort_conn(&cc->fc); - return count; - } -+static DEVICE_ATTR(abort, S_IFREG | 0200, NULL, cuse_class_abort_store); - --static struct device_attribute cuse_class_dev_attrs[] = { -- __ATTR(waiting, S_IFREG | 0400, cuse_class_waiting_show, NULL), -- __ATTR(abort, S_IFREG | 0200, NULL, cuse_class_abort_store), -- { } -+static struct attribute *cuse_class_dev_attrs[] = { -+ &dev_attr_waiting.attr, -+ &dev_attr_abort.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(cuse_class_dev); - - static struct miscdevice cuse_miscdev = { - .minor = MISC_DYNAMIC_MINOR, -@@ -609,7 +612,7 @@ static int __init cuse_init(void) - if (IS_ERR(cuse_class)) - return PTR_ERR(cuse_class); - -- cuse_class->dev_attrs = cuse_class_dev_attrs; -+ cuse_class->dev_groups = cuse_class_dev_groups; - - rc = misc_register(&cuse_miscdev); - if (rc) { diff --git a/devfreq-convert-devfreq_class-to-use-dev_groups.patch b/devfreq-convert-devfreq_class-to-use-dev_groups.patch deleted file mode 100644 index 13a039626f758f..00000000000000 --- a/devfreq-convert-devfreq_class-to-use-dev_groups.patch +++ /dev/null @@ -1,199 +0,0 @@ -From foo@baz Tue Jul 9 14:52:00 PDT 2013 -Date: Tue, 09 Jul 2013 14:52:00 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: devfreq: convert devfreq_class to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the devfreq_class code to use the -correct field. - -Cc: MyungJoo Ham <myungjoo.ham@samsung.com> -Cc: Kyungmin Park <kyungmin.park@samsung.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/devfreq/devfreq.c | 76 ++++++++++++++++++++++++++-------------------- - 1 file changed, 43 insertions(+), 33 deletions(-) - ---- a/drivers/devfreq/devfreq.c -+++ b/drivers/devfreq/devfreq.c -@@ -703,7 +703,7 @@ err_out: - } - EXPORT_SYMBOL(devfreq_remove_governor); - --static ssize_t show_governor(struct device *dev, -+static ssize_t governor_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - if (!to_devfreq(dev)->governor) -@@ -712,7 +712,7 @@ static ssize_t show_governor(struct devi - return sprintf(buf, "%s\n", to_devfreq(dev)->governor->name); - } - --static ssize_t store_governor(struct device *dev, struct device_attribute *attr, -+static ssize_t governor_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { - struct devfreq *df = to_devfreq(dev); -@@ -754,9 +754,11 @@ out: - ret = count; - return ret; - } --static ssize_t show_available_governors(struct device *d, -- struct device_attribute *attr, -- char *buf) -+static DEVICE_ATTR_RW(governor); -+ -+static ssize_t available_governors_show(struct device *d, -+ struct device_attribute *attr, -+ char *buf) - { - struct devfreq_governor *tmp_governor; - ssize_t count = 0; -@@ -775,9 +777,10 @@ static ssize_t show_available_governors( - - return count; - } -+static DEVICE_ATTR_RO(available_governors); - --static ssize_t show_freq(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t cur_freq_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - unsigned long freq; - struct devfreq *devfreq = to_devfreq(dev); -@@ -788,20 +791,22 @@ static ssize_t show_freq(struct device * - - return sprintf(buf, "%lu\n", devfreq->previous_freq); - } -+static DEVICE_ATTR_RO(cur_freq); - --static ssize_t show_target_freq(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t target_freq_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - return sprintf(buf, "%lu\n", to_devfreq(dev)->previous_freq); - } -+static DEVICE_ATTR_RO(target_freq); - --static ssize_t show_polling_interval(struct device *dev, -+static ssize_t polling_interval_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - return sprintf(buf, "%d\n", to_devfreq(dev)->profile->polling_ms); - } - --static ssize_t store_polling_interval(struct device *dev, -+static ssize_t polling_interval_store(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) - { -@@ -821,8 +826,9 @@ static ssize_t store_polling_interval(st - - return ret; - } -+static DEVICE_ATTR_RW(polling_interval); - --static ssize_t store_min_freq(struct device *dev, struct device_attribute *attr, -+static ssize_t min_freq_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { - struct devfreq *df = to_devfreq(dev); -@@ -849,13 +855,13 @@ unlock: - return ret; - } - --static ssize_t show_min_freq(struct device *dev, struct device_attribute *attr, -+static ssize_t min_freq_show(struct device *dev, struct device_attribute *attr, - char *buf) - { - return sprintf(buf, "%lu\n", to_devfreq(dev)->min_freq); - } - --static ssize_t store_max_freq(struct device *dev, struct device_attribute *attr, -+static ssize_t max_freq_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { - struct devfreq *df = to_devfreq(dev); -@@ -881,16 +887,18 @@ unlock: - mutex_unlock(&df->lock); - return ret; - } -+static DEVICE_ATTR_RW(min_freq); - --static ssize_t show_max_freq(struct device *dev, struct device_attribute *attr, -+static ssize_t max_freq_show(struct device *dev, struct device_attribute *attr, - char *buf) - { - return sprintf(buf, "%lu\n", to_devfreq(dev)->max_freq); - } -+static DEVICE_ATTR_RW(max_freq); - --static ssize_t show_available_freqs(struct device *d, -- struct device_attribute *attr, -- char *buf) -+static ssize_t available_frequencies_show(struct device *d, -+ struct device_attribute *attr, -+ char *buf) - { - struct devfreq *df = to_devfreq(d); - struct device *dev = df->dev.parent; -@@ -918,9 +926,10 @@ static ssize_t show_available_freqs(stru - - return count; - } -+static DEVICE_ATTR_RO(available_frequencies); - --static ssize_t show_trans_table(struct device *dev, struct device_attribute *attr, -- char *buf) -+static ssize_t trans_stat_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct devfreq *devfreq = to_devfreq(dev); - ssize_t len; -@@ -959,20 +968,21 @@ static ssize_t show_trans_table(struct d - devfreq->total_trans); - return len; - } -+static DEVICE_ATTR_RO(trans_stat); - --static struct device_attribute devfreq_attrs[] = { -- __ATTR(governor, S_IRUGO | S_IWUSR, show_governor, store_governor), -- __ATTR(available_governors, S_IRUGO, show_available_governors, NULL), -- __ATTR(cur_freq, S_IRUGO, show_freq, NULL), -- __ATTR(available_frequencies, S_IRUGO, show_available_freqs, NULL), -- __ATTR(target_freq, S_IRUGO, show_target_freq, NULL), -- __ATTR(polling_interval, S_IRUGO | S_IWUSR, show_polling_interval, -- store_polling_interval), -- __ATTR(min_freq, S_IRUGO | S_IWUSR, show_min_freq, store_min_freq), -- __ATTR(max_freq, S_IRUGO | S_IWUSR, show_max_freq, store_max_freq), -- __ATTR(trans_stat, S_IRUGO, show_trans_table, NULL), -- { }, -+static struct attribute *devfreq_attrs[] = { -+ &dev_attr_governor.attr, -+ &dev_attr_available_governors.attr, -+ &dev_attr_cur_freq.attr, -+ &dev_attr_available_frequencies.attr, -+ &dev_attr_target_freq.attr, -+ &dev_attr_polling_interval.attr, -+ &dev_attr_min_freq.attr, -+ &dev_attr_max_freq.attr, -+ &dev_attr_trans_stat.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(devfreq); - - static int __init devfreq_init(void) - { -@@ -988,7 +998,7 @@ static int __init devfreq_init(void) - pr_err("%s: couldn't create workqueue\n", __FILE__); - return PTR_ERR(devfreq_wq); - } -- devfreq_class->dev_attrs = devfreq_attrs; -+ devfreq_class->dev_groups = devfreq_groups; - - return 0; - } diff --git a/dma-convert-dma_devclass-to-use-dev_groups.patch b/dma-convert-dma_devclass-to-use-dev_groups.patch deleted file mode 100644 index 759d18025cb647..00000000000000 --- a/dma-convert-dma_devclass-to-use-dev_groups.patch +++ /dev/null @@ -1,84 +0,0 @@ -From foo@baz Tue Jul 9 14:50:40 PDT 2013 -Date: Tue, 09 Jul 2013 14:50:40 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: dma: convert dma_devclass to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the dma dma_devclass code to use -the correct field. - -Cc: Dan Williams <djbw@fb.com> -Cc: Vinod Koul <vinod.koul@intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/dma/dmaengine.c | 26 ++++++++++++++++---------- - 1 file changed, 16 insertions(+), 10 deletions(-) - ---- a/drivers/dma/dmaengine.c -+++ b/drivers/dma/dmaengine.c -@@ -87,7 +87,8 @@ static struct dma_chan *dev_to_dma_chan( - return chan_dev->chan; - } - --static ssize_t show_memcpy_count(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t memcpy_count_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct dma_chan *chan; - unsigned long count = 0; -@@ -106,9 +107,10 @@ static ssize_t show_memcpy_count(struct - - return err; - } -+static DEVICE_ATTR_RO(memcpy_count); - --static ssize_t show_bytes_transferred(struct device *dev, struct device_attribute *attr, -- char *buf) -+static ssize_t bytes_transferred_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct dma_chan *chan; - unsigned long count = 0; -@@ -127,8 +129,10 @@ static ssize_t show_bytes_transferred(st - - return err; - } -+static DEVICE_ATTR_RO(bytes_transferred); - --static ssize_t show_in_use(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t in_use_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct dma_chan *chan; - int err; -@@ -143,13 +147,15 @@ static ssize_t show_in_use(struct device - - return err; - } -+static DEVICE_ATTR_RO(in_use); - --static struct device_attribute dma_attrs[] = { -- __ATTR(memcpy_count, S_IRUGO, show_memcpy_count, NULL), -- __ATTR(bytes_transferred, S_IRUGO, show_bytes_transferred, NULL), -- __ATTR(in_use, S_IRUGO, show_in_use, NULL), -- __ATTR_NULL -+static struct attribute *dma_dev_attrs[] = { -+ &dev_attr_memcpy_count.attr, -+ &dev_attr_bytes_transferred.attr, -+ &dev_attr_in_use.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(dma_dev); - - static void chan_dev_release(struct device *dev) - { -@@ -167,7 +173,7 @@ static void chan_dev_release(struct devi - - static struct class dma_devclass = { - .name = "dma", -- .dev_attrs = dma_attrs, -+ .dev_groups = dma_dev_groups, - .dev_release = chan_dev_release, - }; - diff --git a/driver-core-bus_type-add-bus_groups.patch b/driver-core-bus_type-add-bus_groups.patch deleted file mode 100644 index f3dda29edf3211..00000000000000 --- a/driver-core-bus_type-add-bus_groups.patch +++ /dev/null @@ -1,105 +0,0 @@ -From foo@baz Wed Jul 10 15:53:39 PDT 2013 -Date: Wed, 10 Jul 2013 15:53:39 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver core: bus_type: add bus_groups - -attribute groups are much more flexible than just a list of attributes, -due to their support for visibility of the attributes, and binary -attributes. Add bus_groups to struct bus_type which should be used -instead of bus_attrs. - -bus_attrs will be removed from the structure soon. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/bus.c | 37 +++++++++++++++++++++++++++++++++++++ - include/linux/device.h | 4 +++- - 2 files changed, 40 insertions(+), 1 deletion(-) - ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -881,6 +881,37 @@ static void bus_remove_attrs(struct bus_ - } - } - -+static int bus_add_groups(struct bus_type *bus, -+ const struct attribute_group **groups) -+{ -+ int error = 0; -+ int i; -+ -+ if (groups) { -+ for (i = 0; groups[i]; i++) { -+ error = sysfs_create_group(&bus->p->subsys.kobj, -+ groups[i]); -+ if (error) { -+ while (--i >= 0) -+ sysfs_remove_group(&bus->p->subsys.kobj, -+ groups[i]); -+ break; -+ } -+ } -+ } -+ return error; -+} -+ -+static void bus_remove_groups(struct bus_type *bus, -+ const struct attribute_group **groups) -+{ -+ int i; -+ -+ if (groups) -+ for (i = 0; groups[i]; i++) -+ sysfs_remove_group(&bus->p->subsys.kobj, groups[i]); -+} -+ - static void klist_devices_get(struct klist_node *n) - { - struct device_private *dev_prv = to_device_private_bus(n); -@@ -973,10 +1004,15 @@ int bus_register(struct bus_type *bus) - retval = bus_add_attrs(bus); - if (retval) - goto bus_attrs_fail; -+ retval = bus_add_groups(bus, bus->bus_groups); -+ if (retval) -+ goto bus_groups_fail; - - pr_debug("bus: '%s': registered\n", bus->name); - return 0; - -+bus_groups_fail: -+ bus_remove_attrs(bus); - bus_attrs_fail: - remove_probe_files(bus); - bus_probe_files_fail: -@@ -1007,6 +1043,7 @@ void bus_unregister(struct bus_type *bus - if (bus->dev_root) - device_unregister(bus->dev_root); - bus_remove_attrs(bus); -+ bus_remove_groups(bus, bus->bus_groups); - remove_probe_files(bus); - kset_unregister(bus->p->drivers_kset); - kset_unregister(bus->p->devices_kset); ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -66,6 +66,7 @@ extern void bus_remove_file(struct bus_t - * @bus_attrs: Default attributes of the bus. - * @dev_attrs: Default attributes of the devices on the bus. - * @drv_attrs: Default attributes of the device drivers on the bus. -+ * @bus_groups: Default attributes of the bus. - * @dev_groups: Default attributes of the devices on the bus. - * @drv_groups: Default attributes of the device drivers on the bus. - * @match: Called, perhaps multiple times, whenever a new device or driver -@@ -105,9 +106,10 @@ struct bus_type { - const char *name; - const char *dev_name; - struct device *dev_root; -- struct bus_attribute *bus_attrs; -+ struct bus_attribute *bus_attrs; /* use bus_groups instead */ - struct device_attribute *dev_attrs; /* use dev_groups instead */ - struct driver_attribute *drv_attrs; /* use drv_groups instead */ -+ const struct attribute_group **bus_groups; - const struct attribute_group **dev_groups; - const struct attribute_group **drv_groups; - diff --git a/driver-core-bus_type-add-dev_groups.patch b/driver-core-bus_type-add-dev_groups.patch deleted file mode 100644 index 794e53800a46fc..00000000000000 --- a/driver-core-bus_type-add-dev_groups.patch +++ /dev/null @@ -1,108 +0,0 @@ -From foo@baz Wed Jul 10 15:50:50 PDT 2013 -Date: Wed, 10 Jul 2013 15:50:50 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver core: bus_type: add dev_groups - -attribute groups are much more flexible than just a list of attributes, -due to their support for visibility of the attributes, and binary -attributes. Add dev_groups to struct bus_type which should be used -instead of dev_attrs. - -dev_attrs will be removed from the structure soon. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/base.h | 5 +++++ - drivers/base/bus.c | 6 ++++++ - drivers/base/core.c | 7 +++---- - include/linux/device.h | 4 +++- - 4 files changed, 17 insertions(+), 5 deletions(-) - ---- a/drivers/base/base.h -+++ b/drivers/base/base.h -@@ -119,6 +119,11 @@ static inline int driver_match_device(st - return drv->bus->match ? drv->bus->match(dev, drv) : 1; - } - -+extern int device_add_groups(struct device *dev, -+ const struct attribute_group **groups); -+extern void device_remove_groups(struct device *dev, -+ const struct attribute_group **groups); -+ - extern char *make_class_name(const char *name, struct kobject *kobj); - - extern int devres_release_all(struct device *dev); ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -499,6 +499,9 @@ int bus_add_device(struct device *dev) - error = device_add_attrs(bus, dev); - if (error) - goto out_put; -+ error = device_add_groups(dev, bus->dev_groups); -+ if (error) -+ goto out_groups; - error = sysfs_create_link(&bus->p->devices_kset->kobj, - &dev->kobj, dev_name(dev)); - if (error) -@@ -513,6 +516,8 @@ int bus_add_device(struct device *dev) - - out_subsys: - sysfs_remove_link(&bus->p->devices_kset->kobj, dev_name(dev)); -+out_groups: -+ device_remove_groups(dev, bus->dev_groups); - out_id: - device_remove_attrs(bus, dev); - out_put: -@@ -575,6 +580,7 @@ void bus_remove_device(struct device *de - sysfs_remove_link(&dev->bus->p->devices_kset->kobj, - dev_name(dev)); - device_remove_attrs(dev->bus, dev); -+ device_remove_groups(dev, dev->bus->dev_groups); - if (klist_node_attached(&dev->p->knode_bus)) - klist_del(&dev->p->knode_bus); - ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -491,8 +491,7 @@ static void device_remove_bin_attributes - device_remove_bin_file(dev, &attrs[i]); - } - --static int device_add_groups(struct device *dev, -- const struct attribute_group **groups) -+int device_add_groups(struct device *dev, const struct attribute_group **groups) - { - int error = 0; - int i; -@@ -511,8 +510,8 @@ static int device_add_groups(struct devi - return error; - } - --static void device_remove_groups(struct device *dev, -- const struct attribute_group **groups) -+void device_remove_groups(struct device *dev, -+ const struct attribute_group **groups) - { - int i; - ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -66,6 +66,7 @@ extern void bus_remove_file(struct bus_t - * @bus_attrs: Default attributes of the bus. - * @dev_attrs: Default attributes of the devices on the bus. - * @drv_attrs: Default attributes of the device drivers on the bus. -+ * @dev_groups: Default attributes of the devices on the bus. - * @match: Called, perhaps multiple times, whenever a new device or driver - * is added for this bus. It should return a nonzero value if the - * given device can be handled by the given driver. -@@ -104,8 +105,9 @@ struct bus_type { - const char *dev_name; - struct device *dev_root; - struct bus_attribute *bus_attrs; -- struct device_attribute *dev_attrs; -+ struct device_attribute *dev_attrs; /* use dev_groups instead */ - struct driver_attribute *drv_attrs; -+ const struct attribute_group **dev_groups; - - int (*match)(struct device *dev, struct device_driver *drv); - int (*uevent)(struct device *dev, struct kobj_uevent_env *env); diff --git a/driver-core-bus_type-add-drv_groups.patch b/driver-core-bus_type-add-drv_groups.patch deleted file mode 100644 index 76cefe15b5f092..00000000000000 --- a/driver-core-bus_type-add-drv_groups.patch +++ /dev/null @@ -1,101 +0,0 @@ -From foo@baz Wed Jul 10 15:53:04 PDT 2013 -Date: Wed, 10 Jul 2013 15:53:04 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver core: bus_type: add drv_groups - -attribute groups are much more flexible than just a list of attributes, -due to their support for visibility of the attributes, and binary -attributes. Add drv_groups to struct bus_type which should be used -instead of drv_attrs. - -drv_attrs will be removed from the structure soon. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/base.h | 5 +++++ - drivers/base/bus.c | 5 +++++ - drivers/base/driver.c | 8 ++++---- - include/linux/device.h | 4 +++- - 4 files changed, 17 insertions(+), 5 deletions(-) - ---- a/drivers/base/base.h -+++ b/drivers/base/base.h -@@ -119,6 +119,11 @@ static inline int driver_match_device(st - return drv->bus->match ? drv->bus->match(dev, drv) : 1; - } - -+extern int driver_add_groups(struct device_driver *drv, -+ const struct attribute_group **groups); -+extern void driver_remove_groups(struct device_driver *drv, -+ const struct attribute_group **groups); -+ - extern int device_add_groups(struct device *dev, - const struct attribute_group **groups); - extern void device_remove_groups(struct device *dev, ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -725,6 +725,10 @@ int bus_add_driver(struct device_driver - printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n", - __func__, drv->name); - } -+ error = driver_add_groups(drv, bus->drv_groups); -+ if (error) -+ printk(KERN_ERR "%s: driver_create_groups(%s) failed\n", -+ __func__, drv->name); - - if (!drv->suppress_bind_attrs) { - error = add_bind_files(drv); -@@ -762,6 +766,7 @@ void bus_remove_driver(struct device_dri - if (!drv->suppress_bind_attrs) - remove_bind_files(drv); - driver_remove_attrs(drv->bus, drv); -+ driver_remove_groups(drv, drv->bus->drv_groups); - driver_remove_file(drv, &driver_attr_uevent); - klist_remove(&drv->p->knode_bus); - pr_debug("bus: '%s': remove driver %s\n", drv->bus->name, drv->name); ---- a/drivers/base/driver.c -+++ b/drivers/base/driver.c -@@ -123,8 +123,8 @@ void driver_remove_file(struct device_dr - } - EXPORT_SYMBOL_GPL(driver_remove_file); - --static int driver_add_groups(struct device_driver *drv, -- const struct attribute_group **groups) -+int driver_add_groups(struct device_driver *drv, -+ const struct attribute_group **groups) - { - int error = 0; - int i; -@@ -143,8 +143,8 @@ static int driver_add_groups(struct devi - return error; - } - --static void driver_remove_groups(struct device_driver *drv, -- const struct attribute_group **groups) -+void driver_remove_groups(struct device_driver *drv, -+ const struct attribute_group **groups) - { - int i; - ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -67,6 +67,7 @@ extern void bus_remove_file(struct bus_t - * @dev_attrs: Default attributes of the devices on the bus. - * @drv_attrs: Default attributes of the device drivers on the bus. - * @dev_groups: Default attributes of the devices on the bus. -+ * @drv_groups: Default attributes of the device drivers on the bus. - * @match: Called, perhaps multiple times, whenever a new device or driver - * is added for this bus. It should return a nonzero value if the - * given device can be handled by the given driver. -@@ -106,8 +107,9 @@ struct bus_type { - struct device *dev_root; - struct bus_attribute *bus_attrs; - struct device_attribute *dev_attrs; /* use dev_groups instead */ -- struct driver_attribute *drv_attrs; -+ struct driver_attribute *drv_attrs; /* use drv_groups instead */ - const struct attribute_group **dev_groups; -+ const struct attribute_group **drv_groups; - - int (*match)(struct device *dev, struct device_driver *drv); - int (*uevent)(struct device *dev, struct kobj_uevent_env *env); diff --git a/enclosure-convert-class-code-to-use-dev_groups.patch b/enclosure-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index ac3d0fd0d1e22f..00000000000000 --- a/enclosure-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,88 +0,0 @@ -From foo@baz Tue Jul 9 15:11:14 PDT 2013 -Date: Tue, 09 Jul 2013 15:11:14 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: enclosure: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the enclosure class code to use -the correct field. - -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/misc/enclosure.c | 29 +++++++++++------------------ - 1 file changed, 11 insertions(+), 18 deletions(-) - ---- a/drivers/misc/enclosure.c -+++ b/drivers/misc/enclosure.c -@@ -239,7 +239,7 @@ static void enclosure_component_release( - put_device(dev->parent); - } - --static const struct attribute_group *enclosure_groups[]; -+static const struct attribute_group *enclosure_component_groups[]; - - /** - * enclosure_component_register - add a particular component to an enclosure -@@ -282,7 +282,7 @@ enclosure_component_register(struct encl - dev_set_name(cdev, "%u", number); - - cdev->release = enclosure_component_release; -- cdev->groups = enclosure_groups; -+ cdev->groups = enclosure_component_groups; - - err = device_register(cdev); - if (err) { -@@ -365,25 +365,26 @@ EXPORT_SYMBOL_GPL(enclosure_remove_devic - * sysfs pieces below - */ - --static ssize_t enclosure_show_components(struct device *cdev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t components_show(struct device *cdev, -+ struct device_attribute *attr, char *buf) - { - struct enclosure_device *edev = to_enclosure_device(cdev); - - return snprintf(buf, 40, "%d\n", edev->components); - } -+static DEVICE_ATTR_RO(components); - --static struct device_attribute enclosure_attrs[] = { -- __ATTR(components, S_IRUGO, enclosure_show_components, NULL), -- __ATTR_NULL -+static struct attribute *enclosure_class_attrs[] = { -+ &dev_attr_components.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(enclosure_class); - - static struct class enclosure_class = { - .name = "enclosure", - .owner = THIS_MODULE, - .dev_release = enclosure_release, -- .dev_attrs = enclosure_attrs, -+ .dev_groups = enclosure_class_groups, - }; - - static const char *const enclosure_status [] = { -@@ -536,15 +537,7 @@ static struct attribute *enclosure_compo - &dev_attr_type.attr, - NULL - }; -- --static struct attribute_group enclosure_group = { -- .attrs = enclosure_component_attrs, --}; -- --static const struct attribute_group *enclosure_groups[] = { -- &enclosure_group, -- NULL --}; -+ATTRIBUTE_GROUPS(enclosure_component); - - static int __init enclosure_init(void) - { diff --git a/extcon-convert-extcon_class-to-use-dev_groups.patch b/extcon-convert-extcon_class-to-use-dev_groups.patch deleted file mode 100644 index 8f4ac940be9cca..00000000000000 --- a/extcon-convert-extcon_class-to-use-dev_groups.patch +++ /dev/null @@ -1,62 +0,0 @@ -From foo@baz Tue Jul 9 14:53:12 PDT 2013 -Date: Tue, 09 Jul 2013 14:53:12 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: extcon: convert extcon_class to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the extcon_class code to use the -correct field. - -Cc: MyungJoo Ham <myungjoo.ham@samsung.com> -Cc: Chanwoo Choi <cw00.choi@samsung.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/extcon/extcon-class.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/drivers/extcon/extcon-class.c -+++ b/drivers/extcon/extcon-class.c -@@ -148,6 +148,7 @@ static ssize_t state_store(struct device - - return count; - } -+static DEVICE_ATTR_RW(state); - - static ssize_t name_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -163,6 +164,7 @@ static ssize_t name_show(struct device * - - return sprintf(buf, "%s\n", dev_name(edev->dev)); - } -+static DEVICE_ATTR_RO(name); - - static ssize_t cable_name_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -527,11 +529,12 @@ int extcon_unregister_notifier(struct ex - } - EXPORT_SYMBOL_GPL(extcon_unregister_notifier); - --static struct device_attribute extcon_attrs[] = { -- __ATTR(state, S_IRUGO | S_IWUSR, state_show, state_store), -- __ATTR_RO(name), -- __ATTR_NULL, -+static struct attribute *extcon_attrs[] = { -+ &dev_attr_state.attr, -+ &dev_attr_name.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(extcon); - - static int create_extcon_class(void) - { -@@ -539,7 +542,7 @@ static int create_extcon_class(void) - extcon_class = class_create(THIS_MODULE, "extcon"); - if (IS_ERR(extcon_class)) - return PTR_ERR(extcon_class); -- extcon_class->dev_attrs = extcon_attrs; -+ extcon_class->dev_groups = extcon_groups; - - #if defined(CONFIG_ANDROID) - switch_class = class_compat_register("switch"); diff --git a/hid-roccat-convert-class-code-to-use-bin_attrs-in-groups.patch b/hid-roccat-convert-class-code-to-use-bin_attrs-in-groups.patch deleted file mode 100644 index b96010eabf3322..00000000000000 --- a/hid-roccat-convert-class-code-to-use-bin_attrs-in-groups.patch +++ /dev/null @@ -1,1081 +0,0 @@ -From foo@baz Wed Jul 10 12:22:35 PDT 2013 -Date: Wed, 10 Jul 2013 12:22:35 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hid: roccat: convert class code to use bin_attrs in groups - -Now that attribute groups support binary attributes, use them instead of -the dev_bin_attrs field in struct class, as that is going away soon. - -Note, there is now a compiler warning about an unused function in the -hid-roccat-pyra.c file with this patch: -drivers/hid/hid-roccat-pyra.c:246:16: warning: ‘pyra_sysfs_write_settings’ defined but not used [-Wunused-function] - -That is because the settings binary sysfs file was previously setting -the write field to be able to call this function on a write, yet the -sysfs file was always marked read-only, so it was never being called. I -left the sysfs file the same permissions, but didn't hook up the write -function as that makes no sense. If wanted, I can just delete the -function, but I'm not quite sure what is going on here with it. - -Cc: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-roccat-arvo.c | 32 ++++---- - drivers/hid/hid-roccat-isku.c | 87 ++++++++++++--------- - drivers/hid/hid-roccat-kone.c | 78 ++++++++----------- - drivers/hid/hid-roccat-koneplus.c | 151 ++++++++++++++++---------------------- - drivers/hid/hid-roccat-konepure.c | 67 ++++++++++------ - drivers/hid/hid-roccat-kovaplus.c | 135 +++++++++++++-------------------- - drivers/hid/hid-roccat-pyra.c | 134 ++++++++++++++------------------- - drivers/hid/hid-roccat-savu.c | 58 +++++++------- - 8 files changed, 346 insertions(+), 396 deletions(-) - ---- a/drivers/hid/hid-roccat-arvo.c -+++ b/drivers/hid/hid-roccat-arvo.c -@@ -237,6 +237,8 @@ static ssize_t arvo_sysfs_write_button(s - return arvo_sysfs_write(fp, kobj, buf, off, count, - sizeof(struct arvo_button), ARVO_COMMAND_BUTTON); - } -+static BIN_ATTR(button, 0220, NULL, arvo_sysfs_write_button, -+ sizeof(struct arvo_button)); - - static ssize_t arvo_sysfs_read_info(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, char *buf, -@@ -245,6 +247,8 @@ static ssize_t arvo_sysfs_read_info(stru - return arvo_sysfs_read(fp, kobj, buf, off, count, - sizeof(struct arvo_info), ARVO_COMMAND_INFO); - } -+static BIN_ATTR(info, 0440, arvo_sysfs_read_info, NULL, -+ sizeof(struct arvo_info)); - - static struct attribute *arvo_attrs[] = { - &dev_attr_mode_key.attr, -@@ -252,20 +256,21 @@ static struct attribute *arvo_attrs[] = - &dev_attr_actual_profile.attr, - NULL, - }; --ATTRIBUTE_GROUPS(arvo); - --static struct bin_attribute arvo_bin_attributes[] = { -- { -- .attr = { .name = "button", .mode = 0220 }, -- .size = sizeof(struct arvo_button), -- .write = arvo_sysfs_write_button -- }, -- { -- .attr = { .name = "info", .mode = 0440 }, -- .size = sizeof(struct arvo_info), -- .read = arvo_sysfs_read_info -- }, -- __ATTR_NULL -+static struct bin_attribute *arvo_bin_attributes[] = { -+ &bin_attr_button, -+ &bin_attr_info, -+ NULL, -+}; -+ -+static const struct attribute_group arvo_group = { -+ .attrs = arvo_attrs, -+ .bin_attrs = arvo_bin_attributes, -+}; -+ -+static const struct attribute_group *arvo_groups[] = { -+ &arvo_group, -+ NULL, - }; - - static int arvo_init_arvo_device_struct(struct usb_device *usb_dev, -@@ -434,7 +439,6 @@ static int __init arvo_init(void) - if (IS_ERR(arvo_class)) - return PTR_ERR(arvo_class); - arvo_class->dev_groups = arvo_groups; -- arvo_class->dev_bin_attrs = arvo_bin_attributes; - - retval = hid_register_driver(&arvo_driver); - if (retval) ---- a/drivers/hid/hid-roccat-isku.c -+++ b/drivers/hid/hid-roccat-isku.c -@@ -116,7 +116,6 @@ static struct attribute *isku_attrs[] = - &dev_attr_actual_profile.attr, - NULL, - }; --ATTRIBUTE_GROUPS(isku); - - static ssize_t isku_sysfs_read(struct file *fp, struct kobject *kobj, - char *buf, loff_t off, size_t count, -@@ -185,7 +184,8 @@ ISKU_SYSFS_R(thingy, THINGY) \ - ISKU_SYSFS_W(thingy, THINGY) - - #define ISKU_BIN_ATTR_RW(thingy, THINGY) \ --{ \ -+ISKU_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = ISKU_SIZE_ ## THINGY, \ - .read = isku_sysfs_read_ ## thingy, \ -@@ -193,52 +193,64 @@ ISKU_SYSFS_W(thingy, THINGY) - } - - #define ISKU_BIN_ATTR_R(thingy, THINGY) \ --{ \ -+ISKU_SYSFS_R(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0440 }, \ - .size = ISKU_SIZE_ ## THINGY, \ - .read = isku_sysfs_read_ ## thingy, \ - } - - #define ISKU_BIN_ATTR_W(thingy, THINGY) \ --{ \ -+ISKU_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = ISKU_SIZE_ ## THINGY, \ - .write = isku_sysfs_write_ ## thingy \ - } - --ISKU_SYSFS_RW(macro, MACRO) --ISKU_SYSFS_RW(keys_function, KEYS_FUNCTION) --ISKU_SYSFS_RW(keys_easyzone, KEYS_EASYZONE) --ISKU_SYSFS_RW(keys_media, KEYS_MEDIA) --ISKU_SYSFS_RW(keys_thumbster, KEYS_THUMBSTER) --ISKU_SYSFS_RW(keys_macro, KEYS_MACRO) --ISKU_SYSFS_RW(keys_capslock, KEYS_CAPSLOCK) --ISKU_SYSFS_RW(light, LIGHT) --ISKU_SYSFS_RW(key_mask, KEY_MASK) --ISKU_SYSFS_RW(last_set, LAST_SET) --ISKU_SYSFS_W(talk, TALK) --ISKU_SYSFS_W(talkfx, TALKFX) --ISKU_SYSFS_R(info, INFO) --ISKU_SYSFS_W(control, CONTROL) --ISKU_SYSFS_W(reset, RESET) -- --static struct bin_attribute isku_bin_attributes[] = { -- ISKU_BIN_ATTR_RW(macro, MACRO), -- ISKU_BIN_ATTR_RW(keys_function, KEYS_FUNCTION), -- ISKU_BIN_ATTR_RW(keys_easyzone, KEYS_EASYZONE), -- ISKU_BIN_ATTR_RW(keys_media, KEYS_MEDIA), -- ISKU_BIN_ATTR_RW(keys_thumbster, KEYS_THUMBSTER), -- ISKU_BIN_ATTR_RW(keys_macro, KEYS_MACRO), -- ISKU_BIN_ATTR_RW(keys_capslock, KEYS_CAPSLOCK), -- ISKU_BIN_ATTR_RW(light, LIGHT), -- ISKU_BIN_ATTR_RW(key_mask, KEY_MASK), -- ISKU_BIN_ATTR_RW(last_set, LAST_SET), -- ISKU_BIN_ATTR_W(talk, TALK), -- ISKU_BIN_ATTR_W(talkfx, TALKFX), -- ISKU_BIN_ATTR_R(info, INFO), -- ISKU_BIN_ATTR_W(control, CONTROL), -- ISKU_BIN_ATTR_W(reset, RESET), -- __ATTR_NULL -+ISKU_BIN_ATTR_RW(macro, MACRO); -+ISKU_BIN_ATTR_RW(keys_function, KEYS_FUNCTION); -+ISKU_BIN_ATTR_RW(keys_easyzone, KEYS_EASYZONE); -+ISKU_BIN_ATTR_RW(keys_media, KEYS_MEDIA); -+ISKU_BIN_ATTR_RW(keys_thumbster, KEYS_THUMBSTER); -+ISKU_BIN_ATTR_RW(keys_macro, KEYS_MACRO); -+ISKU_BIN_ATTR_RW(keys_capslock, KEYS_CAPSLOCK); -+ISKU_BIN_ATTR_RW(light, LIGHT); -+ISKU_BIN_ATTR_RW(key_mask, KEY_MASK); -+ISKU_BIN_ATTR_RW(last_set, LAST_SET); -+ISKU_BIN_ATTR_W(talk, TALK); -+ISKU_BIN_ATTR_W(talkfx, TALKFX); -+ISKU_BIN_ATTR_W(control, CONTROL); -+ISKU_BIN_ATTR_W(reset, RESET); -+ISKU_BIN_ATTR_R(info, INFO); -+ -+static struct bin_attribute *isku_bin_attributes[] = { -+ &bin_attr_macro, -+ &bin_attr_keys_function, -+ &bin_attr_keys_easyzone, -+ &bin_attr_keys_media, -+ &bin_attr_keys_thumbster, -+ &bin_attr_keys_macro, -+ &bin_attr_keys_capslock, -+ &bin_attr_light, -+ &bin_attr_key_mask, -+ &bin_attr_last_set, -+ &bin_attr_talk, -+ &bin_attr_talkfx, -+ &bin_attr_control, -+ &bin_attr_reset, -+ &bin_attr_info, -+ NULL, -+}; -+ -+static const struct attribute_group isku_group = { -+ .attrs = isku_attrs, -+ .bin_attrs = isku_bin_attributes, -+}; -+ -+static const struct attribute_group *isku_groups[] = { -+ &isku_group, -+ NULL, - }; - - static int isku_init_isku_device_struct(struct usb_device *usb_dev, -@@ -429,7 +441,6 @@ static int __init isku_init(void) - if (IS_ERR(isku_class)) - return PTR_ERR(isku_class); - isku_class->dev_groups = isku_groups; -- isku_class->dev_bin_attrs = isku_bin_attributes; - - retval = hid_register_driver(&isku_driver); - if (retval) ---- a/drivers/hid/hid-roccat-kone.c -+++ b/drivers/hid/hid-roccat-kone.c -@@ -324,6 +324,8 @@ static ssize_t kone_sysfs_write_settings - - return sizeof(struct kone_settings); - } -+static BIN_ATTR(settings, 0660, kone_sysfs_read_settings, -+ kone_sysfs_write_settings, sizeof(struct kone_settings)); - - static ssize_t kone_sysfs_read_profilex(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, -@@ -378,6 +380,19 @@ static ssize_t kone_sysfs_write_profilex - - return sizeof(struct kone_profile); - } -+#define PROFILE_ATTR(number) \ -+static struct bin_attribute bin_attr_profile##number = { \ -+ .attr = { .name = "profile##number", .mode = 0660 }, \ -+ .size = sizeof(struct kone_profile), \ -+ .read = kone_sysfs_read_profilex, \ -+ .write = kone_sysfs_write_profilex, \ -+ .private = &profile_numbers[number], \ -+}; -+PROFILE_ATTR(1); -+PROFILE_ATTR(2); -+PROFILE_ATTR(3); -+PROFILE_ATTR(4); -+PROFILE_ATTR(5); - - static ssize_t kone_sysfs_show_actual_profile(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -616,51 +631,25 @@ static struct attribute *kone_attrs[] = - &dev_attr_startup_profile.attr, - NULL, - }; --ATTRIBUTE_GROUPS(kone); - --static struct bin_attribute kone_bin_attributes[] = { -- { -- .attr = { .name = "settings", .mode = 0660 }, -- .size = sizeof(struct kone_settings), -- .read = kone_sysfs_read_settings, -- .write = kone_sysfs_write_settings -- }, -- { -- .attr = { .name = "profile1", .mode = 0660 }, -- .size = sizeof(struct kone_profile), -- .read = kone_sysfs_read_profilex, -- .write = kone_sysfs_write_profilex, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2", .mode = 0660 }, -- .size = sizeof(struct kone_profile), -- .read = kone_sysfs_read_profilex, -- .write = kone_sysfs_write_profilex, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3", .mode = 0660 }, -- .size = sizeof(struct kone_profile), -- .read = kone_sysfs_read_profilex, -- .write = kone_sysfs_write_profilex, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4", .mode = 0660 }, -- .size = sizeof(struct kone_profile), -- .read = kone_sysfs_read_profilex, -- .write = kone_sysfs_write_profilex, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5", .mode = 0660 }, -- .size = sizeof(struct kone_profile), -- .read = kone_sysfs_read_profilex, -- .write = kone_sysfs_write_profilex, -- .private = &profile_numbers[4] -- }, -- __ATTR_NULL -+static struct bin_attribute *kone_bin_attributes[] = { -+ &bin_attr_settings, -+ &bin_attr_profile1, -+ &bin_attr_profile2, -+ &bin_attr_profile3, -+ &bin_attr_profile4, -+ &bin_attr_profile5, -+ NULL, -+}; -+ -+static const struct attribute_group kone_group = { -+ .attrs = kone_attrs, -+ .bin_attrs = kone_bin_attributes, -+}; -+ -+static const struct attribute_group *kone_groups[] = { -+ &kone_group, -+ NULL, - }; - - static int kone_init_kone_device_struct(struct usb_device *usb_dev, -@@ -898,7 +887,6 @@ static int __init kone_init(void) - if (IS_ERR(kone_class)) - return PTR_ERR(kone_class); - kone_class->dev_groups = kone_groups; -- kone_class->dev_bin_attrs = kone_bin_attributes; - - retval = hid_register_driver(&kone_driver); - if (retval) ---- a/drivers/hid/hid-roccat-koneplus.c -+++ b/drivers/hid/hid-roccat-koneplus.c -@@ -156,7 +156,8 @@ KONEPLUS_SYSFS_W(thingy, THINGY) \ - KONEPLUS_SYSFS_R(thingy, THINGY) - - #define KONEPLUS_BIN_ATTRIBUTE_RW(thingy, THINGY) \ --{ \ -+KONEPLUS_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = KONEPLUS_SIZE_ ## THINGY, \ - .read = koneplus_sysfs_read_ ## thingy, \ -@@ -164,28 +165,29 @@ KONEPLUS_SYSFS_R(thingy, THINGY) - } - - #define KONEPLUS_BIN_ATTRIBUTE_R(thingy, THINGY) \ --{ \ -+KONEPLUS_SYSFS_R(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0440 }, \ - .size = KONEPLUS_SIZE_ ## THINGY, \ - .read = koneplus_sysfs_read_ ## thingy, \ - } - - #define KONEPLUS_BIN_ATTRIBUTE_W(thingy, THINGY) \ --{ \ -+KONEPLUS_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = KONEPLUS_SIZE_ ## THINGY, \ - .write = koneplus_sysfs_write_ ## thingy \ - } -- --KONEPLUS_SYSFS_W(control, CONTROL) --KONEPLUS_SYSFS_RW(info, INFO) --KONEPLUS_SYSFS_W(talk, TALK) --KONEPLUS_SYSFS_W(macro, MACRO) --KONEPLUS_SYSFS_RW(sensor, SENSOR) --KONEPLUS_SYSFS_RW(tcu, TCU) --KONEPLUS_SYSFS_R(tcu_image, TCU_IMAGE) --KONEPLUS_SYSFS_RW(profile_settings, PROFILE_SETTINGS) --KONEPLUS_SYSFS_RW(profile_buttons, PROFILE_BUTTONS) -+KONEPLUS_BIN_ATTRIBUTE_W(control, CONTROL); -+KONEPLUS_BIN_ATTRIBUTE_W(talk, TALK); -+KONEPLUS_BIN_ATTRIBUTE_W(macro, MACRO); -+KONEPLUS_BIN_ATTRIBUTE_R(tcu_image, TCU_IMAGE); -+KONEPLUS_BIN_ATTRIBUTE_RW(info, INFO); -+KONEPLUS_BIN_ATTRIBUTE_RW(sensor, SENSOR); -+KONEPLUS_BIN_ATTRIBUTE_RW(tcu, TCU); -+KONEPLUS_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS); -+KONEPLUS_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS); - - static ssize_t koneplus_sysfs_read_profilex_settings(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, char *buf, -@@ -225,6 +227,25 @@ static ssize_t koneplus_sysfs_read_profi - KONEPLUS_COMMAND_PROFILE_BUTTONS); - } - -+#define PROFILE_ATTR(number) \ -+static struct bin_attribute bin_attr_profile##number##_settings = { \ -+ .attr = { .name = "profile##number##_settings", .mode = 0440 }, \ -+ .size = KONEPLUS_SIZE_PROFILE_SETTINGS, \ -+ .read = koneplus_sysfs_read_profilex_settings, \ -+ .private = &profile_numbers[number-1], \ -+}; \ -+static struct bin_attribute bin_attr_profile##number##_buttons = { \ -+ .attr = { .name = "profile##number##_buttons", .mode = 0440 }, \ -+ .size = KONEPLUS_SIZE_PROFILE_BUTTONS, \ -+ .read = koneplus_sysfs_read_profilex_buttons, \ -+ .private = &profile_numbers[number-1], \ -+}; -+PROFILE_ATTR(1); -+PROFILE_ATTR(2); -+PROFILE_ATTR(3); -+PROFILE_ATTR(4); -+PROFILE_ATTR(5); -+ - static ssize_t koneplus_sysfs_show_actual_profile(struct device *dev, - struct device_attribute *attr, char *buf) - { -@@ -308,79 +329,38 @@ static struct attribute *koneplus_attrs[ - &dev_attr_firmware_version.attr, - NULL, - }; --ATTRIBUTE_GROUPS(koneplus); - --static struct bin_attribute koneplus_bin_attributes[] = { -- KONEPLUS_BIN_ATTRIBUTE_W(control, CONTROL), -- KONEPLUS_BIN_ATTRIBUTE_RW(info, INFO), -- KONEPLUS_BIN_ATTRIBUTE_W(talk, TALK), -- KONEPLUS_BIN_ATTRIBUTE_W(macro, MACRO), -- KONEPLUS_BIN_ATTRIBUTE_RW(sensor, SENSOR), -- KONEPLUS_BIN_ATTRIBUTE_RW(tcu, TCU), -- KONEPLUS_BIN_ATTRIBUTE_R(tcu_image, TCU_IMAGE), -- KONEPLUS_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS), -- KONEPLUS_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS), -- { -- .attr = { .name = "profile1_settings", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_SETTINGS, -- .read = koneplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_settings", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_SETTINGS, -- .read = koneplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_settings", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_SETTINGS, -- .read = koneplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_settings", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_SETTINGS, -- .read = koneplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_settings", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_SETTINGS, -- .read = koneplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[4] -- }, -- { -- .attr = { .name = "profile1_buttons", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_BUTTONS, -- .read = koneplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_buttons", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_BUTTONS, -- .read = koneplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_buttons", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_BUTTONS, -- .read = koneplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_buttons", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_BUTTONS, -- .read = koneplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_buttons", .mode = 0440 }, -- .size = KONEPLUS_SIZE_PROFILE_BUTTONS, -- .read = koneplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[4] -- }, -- __ATTR_NULL -+static struct bin_attribute *koneplus_bin_attributes[] = { -+ &bin_attr_control, -+ &bin_attr_talk, -+ &bin_attr_macro, -+ &bin_attr_tcu_image, -+ &bin_attr_info, -+ &bin_attr_sensor, -+ &bin_attr_tcu, -+ &bin_attr_profile_settings, -+ &bin_attr_profile_buttons, -+ &bin_attr_profile1_settings, -+ &bin_attr_profile2_settings, -+ &bin_attr_profile3_settings, -+ &bin_attr_profile4_settings, -+ &bin_attr_profile5_settings, -+ &bin_attr_profile1_buttons, -+ &bin_attr_profile2_buttons, -+ &bin_attr_profile3_buttons, -+ &bin_attr_profile4_buttons, -+ &bin_attr_profile5_buttons, -+ NULL, -+}; -+ -+static const struct attribute_group koneplus_group = { -+ .attrs = koneplus_attrs, -+ .bin_attrs = koneplus_bin_attributes, -+}; -+ -+static const struct attribute_group *koneplus_groups[] = { -+ &koneplus_group, -+ NULL, - }; - - static int koneplus_init_koneplus_device_struct(struct usb_device *usb_dev, -@@ -577,7 +557,6 @@ static int __init koneplus_init(void) - if (IS_ERR(koneplus_class)) - return PTR_ERR(koneplus_class); - koneplus_class->dev_groups = koneplus_groups; -- koneplus_class->dev_bin_attrs = koneplus_bin_attributes; - - retval = hid_register_driver(&koneplus_driver); - if (retval) ---- a/drivers/hid/hid-roccat-konepure.c -+++ b/drivers/hid/hid-roccat-konepure.c -@@ -94,7 +94,8 @@ KONEPURE_SYSFS_W(thingy, THINGY) \ - KONEPURE_SYSFS_R(thingy, THINGY) - - #define KONEPURE_BIN_ATTRIBUTE_RW(thingy, THINGY) \ --{ \ -+KONEPURE_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = KONEPURE_SIZE_ ## THINGY, \ - .read = konepure_sysfs_read_ ## thingy, \ -@@ -102,44 +103,56 @@ KONEPURE_SYSFS_R(thingy, THINGY) - } - - #define KONEPURE_BIN_ATTRIBUTE_R(thingy, THINGY) \ --{ \ -+KONEPURE_SYSFS_R(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0440 }, \ - .size = KONEPURE_SIZE_ ## THINGY, \ - .read = konepure_sysfs_read_ ## thingy, \ - } - - #define KONEPURE_BIN_ATTRIBUTE_W(thingy, THINGY) \ --{ \ -+KONEPURE_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = KONEPURE_SIZE_ ## THINGY, \ - .write = konepure_sysfs_write_ ## thingy \ - } - --KONEPURE_SYSFS_RW(actual_profile, ACTUAL_PROFILE) --KONEPURE_SYSFS_W(control, CONTROL) --KONEPURE_SYSFS_RW(info, INFO) --KONEPURE_SYSFS_W(talk, TALK) --KONEPURE_SYSFS_W(macro, MACRO) --KONEPURE_SYSFS_RW(sensor, SENSOR) --KONEPURE_SYSFS_RW(tcu, TCU) --KONEPURE_SYSFS_R(tcu_image, TCU_IMAGE) --KONEPURE_SYSFS_RW(profile_settings, PROFILE_SETTINGS) --KONEPURE_SYSFS_RW(profile_buttons, PROFILE_BUTTONS) -- --static struct bin_attribute konepure_bin_attributes[] = { -- KONEPURE_BIN_ATTRIBUTE_RW(actual_profile, ACTUAL_PROFILE), -- KONEPURE_BIN_ATTRIBUTE_W(control, CONTROL), -- KONEPURE_BIN_ATTRIBUTE_RW(info, INFO), -- KONEPURE_BIN_ATTRIBUTE_W(talk, TALK), -- KONEPURE_BIN_ATTRIBUTE_W(macro, MACRO), -- KONEPURE_BIN_ATTRIBUTE_RW(sensor, SENSOR), -- KONEPURE_BIN_ATTRIBUTE_RW(tcu, TCU), -- KONEPURE_BIN_ATTRIBUTE_R(tcu_image, TCU_IMAGE), -- KONEPURE_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS), -- KONEPURE_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS), -- __ATTR_NULL -+KONEPURE_BIN_ATTRIBUTE_RW(actual_profile, ACTUAL_PROFILE); -+KONEPURE_BIN_ATTRIBUTE_RW(info, INFO); -+KONEPURE_BIN_ATTRIBUTE_RW(sensor, SENSOR); -+KONEPURE_BIN_ATTRIBUTE_RW(tcu, TCU); -+KONEPURE_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS); -+KONEPURE_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS); -+KONEPURE_BIN_ATTRIBUTE_W(control, CONTROL); -+KONEPURE_BIN_ATTRIBUTE_W(talk, TALK); -+KONEPURE_BIN_ATTRIBUTE_W(macro, MACRO); -+KONEPURE_BIN_ATTRIBUTE_R(tcu_image, TCU_IMAGE); -+ -+static struct bin_attribute *konepure_bin_attributes[] = { -+ &bin_attr_actual_profile, -+ &bin_attr_info, -+ &bin_attr_sensor, -+ &bin_attr_tcu, -+ &bin_attr_profile_settings, -+ &bin_attr_profile_buttons, -+ &bin_attr_control, -+ &bin_attr_talk, -+ &bin_attr_macro, -+ &bin_attr_tcu_image, -+ NULL, - }; - -+static const struct attribute_group konepure_group = { -+ .bin_attrs = konepure_bin_attributes, -+}; -+ -+static const struct attribute_group *konepure_groups[] = { -+ &konepure_group, -+ NULL, -+}; -+ -+ - static int konepure_init_konepure_device_struct(struct usb_device *usb_dev, - struct konepure_device *konepure) - { -@@ -282,7 +295,7 @@ static int __init konepure_init(void) - konepure_class = class_create(THIS_MODULE, "konepure"); - if (IS_ERR(konepure_class)) - return PTR_ERR(konepure_class); -- konepure_class->dev_bin_attrs = konepure_bin_attributes; -+ konepure_class->dev_groups = konepure_groups; - - retval = hid_register_driver(&konepure_driver); - if (retval) ---- a/drivers/hid/hid-roccat-kovaplus.c -+++ b/drivers/hid/hid-roccat-kovaplus.c -@@ -197,31 +197,25 @@ KOVAPLUS_SYSFS_W(thingy, THINGY) \ - KOVAPLUS_SYSFS_R(thingy, THINGY) - - #define KOVAPLUS_BIN_ATTRIBUTE_RW(thingy, THINGY) \ --{ \ -+KOVAPLUS_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = KOVAPLUS_SIZE_ ## THINGY, \ - .read = kovaplus_sysfs_read_ ## thingy, \ - .write = kovaplus_sysfs_write_ ## thingy \ - } - --#define KOVAPLUS_BIN_ATTRIBUTE_R(thingy, THINGY) \ --{ \ -- .attr = { .name = #thingy, .mode = 0440 }, \ -- .size = KOVAPLUS_SIZE_ ## THINGY, \ -- .read = kovaplus_sysfs_read_ ## thingy, \ --} -- - #define KOVAPLUS_BIN_ATTRIBUTE_W(thingy, THINGY) \ --{ \ -+KOVAPLUS_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = KOVAPLUS_SIZE_ ## THINGY, \ - .write = kovaplus_sysfs_write_ ## thingy \ - } -- --KOVAPLUS_SYSFS_W(control, CONTROL) --KOVAPLUS_SYSFS_RW(info, INFO) --KOVAPLUS_SYSFS_RW(profile_settings, PROFILE_SETTINGS) --KOVAPLUS_SYSFS_RW(profile_buttons, PROFILE_BUTTONS) -+KOVAPLUS_BIN_ATTRIBUTE_W(control, CONTROL); -+KOVAPLUS_BIN_ATTRIBUTE_RW(info, INFO); -+KOVAPLUS_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS); -+KOVAPLUS_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS); - - static ssize_t kovaplus_sysfs_read_profilex_settings(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, char *buf, -@@ -261,6 +255,25 @@ static ssize_t kovaplus_sysfs_read_profi - KOVAPLUS_COMMAND_PROFILE_BUTTONS); - } - -+#define PROFILE_ATTR(number) \ -+static struct bin_attribute bin_attr_profile##number##_settings = { \ -+ .attr = { .name = "profile##number##_settings", .mode = 0440 }, \ -+ .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, \ -+ .read = kovaplus_sysfs_read_profilex_settings, \ -+ .private = &profile_numbers[number-1], \ -+}; \ -+static struct bin_attribute bin_attr_profile##number##_buttons = { \ -+ .attr = { .name = "profile##number##_buttons", .mode = 0440 }, \ -+ .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, \ -+ .read = kovaplus_sysfs_read_profilex_buttons, \ -+ .private = &profile_numbers[number-1], \ -+}; -+PROFILE_ATTR(1); -+PROFILE_ATTR(2); -+PROFILE_ATTR(3); -+PROFILE_ATTR(4); -+PROFILE_ATTR(5); -+ - static ssize_t kovaplus_sysfs_show_actual_profile(struct device *dev, - struct device_attribute *attr, char *buf) - { -@@ -372,74 +385,33 @@ static struct attribute *kovaplus_attrs[ - &dev_attr_actual_sensitivity_y.attr, - NULL, - }; --ATTRIBUTE_GROUPS(kovaplus); - --static struct bin_attribute kovaplus_bin_attributes[] = { -- KOVAPLUS_BIN_ATTRIBUTE_W(control, CONTROL), -- KOVAPLUS_BIN_ATTRIBUTE_RW(info, INFO), -- KOVAPLUS_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS), -- KOVAPLUS_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS), -- { -- .attr = { .name = "profile1_settings", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, -- .read = kovaplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_settings", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, -- .read = kovaplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_settings", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, -- .read = kovaplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_settings", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, -- .read = kovaplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_settings", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_SETTINGS, -- .read = kovaplus_sysfs_read_profilex_settings, -- .private = &profile_numbers[4] -- }, -- { -- .attr = { .name = "profile1_buttons", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, -- .read = kovaplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_buttons", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, -- .read = kovaplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_buttons", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, -- .read = kovaplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_buttons", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, -- .read = kovaplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_buttons", .mode = 0440 }, -- .size = KOVAPLUS_SIZE_PROFILE_BUTTONS, -- .read = kovaplus_sysfs_read_profilex_buttons, -- .private = &profile_numbers[4] -- }, -- __ATTR_NULL -+static struct bin_attribute *kovaplus_bin_attributes[] = { -+ &bin_attr_control, -+ &bin_attr_info, -+ &bin_attr_profile_settings, -+ &bin_attr_profile_buttons, -+ &bin_attr_profile1_settings, -+ &bin_attr_profile2_settings, -+ &bin_attr_profile3_settings, -+ &bin_attr_profile4_settings, -+ &bin_attr_profile5_settings, -+ &bin_attr_profile1_buttons, -+ &bin_attr_profile2_buttons, -+ &bin_attr_profile3_buttons, -+ &bin_attr_profile4_buttons, -+ &bin_attr_profile5_buttons, -+ NULL, -+}; -+ -+static const struct attribute_group kovaplus_group = { -+ .attrs = kovaplus_attrs, -+ .bin_attrs = kovaplus_bin_attributes, -+}; -+ -+static const struct attribute_group *kovaplus_groups[] = { -+ &kovaplus_group, -+ NULL, - }; - - static int kovaplus_init_kovaplus_device_struct(struct usb_device *usb_dev, -@@ -668,7 +640,6 @@ static int __init kovaplus_init(void) - if (IS_ERR(kovaplus_class)) - return PTR_ERR(kovaplus_class); - kovaplus_class->dev_groups = kovaplus_groups; -- kovaplus_class->dev_bin_attrs = kovaplus_bin_attributes; - - retval = hid_register_driver(&kovaplus_driver); - if (retval) ---- a/drivers/hid/hid-roccat-pyra.c -+++ b/drivers/hid/hid-roccat-pyra.c -@@ -156,7 +156,8 @@ PYRA_SYSFS_W(thingy, THINGY) \ - PYRA_SYSFS_R(thingy, THINGY) - - #define PYRA_BIN_ATTRIBUTE_RW(thingy, THINGY) \ --{ \ -+PYRA_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = PYRA_SIZE_ ## THINGY, \ - .read = pyra_sysfs_read_ ## thingy, \ -@@ -164,24 +165,26 @@ PYRA_SYSFS_R(thingy, THINGY) - } - - #define PYRA_BIN_ATTRIBUTE_R(thingy, THINGY) \ --{ \ -+PYRA_SYSFS_R(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0440 }, \ - .size = PYRA_SIZE_ ## THINGY, \ - .read = pyra_sysfs_read_ ## thingy, \ - } - - #define PYRA_BIN_ATTRIBUTE_W(thingy, THINGY) \ --{ \ -+PYRA_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = PYRA_SIZE_ ## THINGY, \ - .write = pyra_sysfs_write_ ## thingy \ - } - --PYRA_SYSFS_W(control, CONTROL) --PYRA_SYSFS_RW(info, INFO) --PYRA_SYSFS_RW(profile_settings, PROFILE_SETTINGS) --PYRA_SYSFS_RW(profile_buttons, PROFILE_BUTTONS) --PYRA_SYSFS_R(settings, SETTINGS) -+PYRA_BIN_ATTRIBUTE_W(control, CONTROL); -+PYRA_BIN_ATTRIBUTE_RW(info, INFO); -+PYRA_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS); -+PYRA_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS); -+PYRA_BIN_ATTRIBUTE_R(settings, SETTINGS); - - static ssize_t pyra_sysfs_read_profilex_settings(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, char *buf, -@@ -221,6 +224,25 @@ static ssize_t pyra_sysfs_read_profilex_ - PYRA_COMMAND_PROFILE_BUTTONS); - } - -+#define PROFILE_ATTR(number) \ -+static struct bin_attribute bin_attr_profile##number##_settings = { \ -+ .attr = { .name = "profile##number##_settings", .mode = 0440 }, \ -+ .size = PYRA_SIZE_PROFILE_SETTINGS, \ -+ .read = pyra_sysfs_read_profilex_settings, \ -+ .private = &profile_numbers[number-1], \ -+}; \ -+static struct bin_attribute bin_attr_profile##number##_buttons = { \ -+ .attr = { .name = "profile##number##_buttons", .mode = 0440 }, \ -+ .size = PYRA_SIZE_PROFILE_BUTTONS, \ -+ .read = pyra_sysfs_read_profilex_buttons, \ -+ .private = &profile_numbers[number-1], \ -+}; -+PROFILE_ATTR(1); -+PROFILE_ATTR(2); -+PROFILE_ATTR(3); -+PROFILE_ATTR(4); -+PROFILE_ATTR(5); -+ - static ssize_t pyra_sysfs_write_settings(struct file *fp, - struct kobject *kobj, struct bin_attribute *attr, char *buf, - loff_t off, size_t count) -@@ -314,75 +336,34 @@ static struct attribute *pyra_attrs[] = - &dev_attr_startup_profile.attr, - NULL, - }; --ATTRIBUTE_GROUPS(pyra); - --static struct bin_attribute pyra_bin_attributes[] = { -- PYRA_BIN_ATTRIBUTE_W(control, CONTROL), -- PYRA_BIN_ATTRIBUTE_RW(info, INFO), -- PYRA_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS), -- PYRA_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS), -- PYRA_BIN_ATTRIBUTE_RW(settings, SETTINGS), -- { -- .attr = { .name = "profile1_settings", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_SETTINGS, -- .read = pyra_sysfs_read_profilex_settings, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_settings", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_SETTINGS, -- .read = pyra_sysfs_read_profilex_settings, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_settings", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_SETTINGS, -- .read = pyra_sysfs_read_profilex_settings, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_settings", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_SETTINGS, -- .read = pyra_sysfs_read_profilex_settings, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_settings", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_SETTINGS, -- .read = pyra_sysfs_read_profilex_settings, -- .private = &profile_numbers[4] -- }, -- { -- .attr = { .name = "profile1_buttons", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_BUTTONS, -- .read = pyra_sysfs_read_profilex_buttons, -- .private = &profile_numbers[0] -- }, -- { -- .attr = { .name = "profile2_buttons", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_BUTTONS, -- .read = pyra_sysfs_read_profilex_buttons, -- .private = &profile_numbers[1] -- }, -- { -- .attr = { .name = "profile3_buttons", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_BUTTONS, -- .read = pyra_sysfs_read_profilex_buttons, -- .private = &profile_numbers[2] -- }, -- { -- .attr = { .name = "profile4_buttons", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_BUTTONS, -- .read = pyra_sysfs_read_profilex_buttons, -- .private = &profile_numbers[3] -- }, -- { -- .attr = { .name = "profile5_buttons", .mode = 0440 }, -- .size = PYRA_SIZE_PROFILE_BUTTONS, -- .read = pyra_sysfs_read_profilex_buttons, -- .private = &profile_numbers[4] -- }, -- __ATTR_NULL -+static struct bin_attribute *pyra_bin_attributes[] = { -+ &bin_attr_control, -+ &bin_attr_info, -+ &bin_attr_profile_settings, -+ &bin_attr_profile_buttons, -+ &bin_attr_settings, -+ &bin_attr_profile1_settings, -+ &bin_attr_profile2_settings, -+ &bin_attr_profile3_settings, -+ &bin_attr_profile4_settings, -+ &bin_attr_profile5_settings, -+ &bin_attr_profile1_buttons, -+ &bin_attr_profile2_buttons, -+ &bin_attr_profile3_buttons, -+ &bin_attr_profile4_buttons, -+ &bin_attr_profile5_buttons, -+ NULL, -+}; -+ -+static const struct attribute_group pyra_group = { -+ .attrs = pyra_attrs, -+ .bin_attrs = pyra_bin_attributes, -+}; -+ -+static const struct attribute_group *pyra_groups[] = { -+ &pyra_group, -+ NULL, - }; - - static int pyra_init_pyra_device_struct(struct usb_device *usb_dev, -@@ -605,7 +586,6 @@ static int __init pyra_init(void) - if (IS_ERR(pyra_class)) - return PTR_ERR(pyra_class); - pyra_class->dev_groups = pyra_groups; -- pyra_class->dev_bin_attrs = pyra_bin_attributes; - - retval = hid_register_driver(&pyra_driver); - if (retval) ---- a/drivers/hid/hid-roccat-savu.c -+++ b/drivers/hid/hid-roccat-savu.c -@@ -94,44 +94,48 @@ SAVU_SYSFS_W(thingy, THINGY) \ - SAVU_SYSFS_R(thingy, THINGY) - - #define SAVU_BIN_ATTRIBUTE_RW(thingy, THINGY) \ --{ \ -+SAVU_SYSFS_RW(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0660 }, \ - .size = SAVU_SIZE_ ## THINGY, \ - .read = savu_sysfs_read_ ## thingy, \ - .write = savu_sysfs_write_ ## thingy \ - } - --#define SAVU_BIN_ATTRIBUTE_R(thingy, THINGY) \ --{ \ -- .attr = { .name = #thingy, .mode = 0440 }, \ -- .size = SAVU_SIZE_ ## THINGY, \ -- .read = savu_sysfs_read_ ## thingy, \ --} -- - #define SAVU_BIN_ATTRIBUTE_W(thingy, THINGY) \ --{ \ -+SAVU_SYSFS_W(thingy, THINGY); \ -+static struct bin_attribute bin_attr_##thingy = { \ - .attr = { .name = #thingy, .mode = 0220 }, \ - .size = SAVU_SIZE_ ## THINGY, \ - .write = savu_sysfs_write_ ## thingy \ - } - --SAVU_SYSFS_W(control, CONTROL) --SAVU_SYSFS_RW(profile, PROFILE) --SAVU_SYSFS_RW(general, GENERAL) --SAVU_SYSFS_RW(buttons, BUTTONS) --SAVU_SYSFS_RW(macro, MACRO) --SAVU_SYSFS_RW(info, INFO) --SAVU_SYSFS_RW(sensor, SENSOR) -- --static struct bin_attribute savu_bin_attributes[] = { -- SAVU_BIN_ATTRIBUTE_W(control, CONTROL), -- SAVU_BIN_ATTRIBUTE_RW(profile, PROFILE), -- SAVU_BIN_ATTRIBUTE_RW(general, GENERAL), -- SAVU_BIN_ATTRIBUTE_RW(buttons, BUTTONS), -- SAVU_BIN_ATTRIBUTE_RW(macro, MACRO), -- SAVU_BIN_ATTRIBUTE_RW(info, INFO), -- SAVU_BIN_ATTRIBUTE_RW(sensor, SENSOR), -- __ATTR_NULL -+SAVU_BIN_ATTRIBUTE_W(control, CONTROL); -+SAVU_BIN_ATTRIBUTE_RW(profile, PROFILE); -+SAVU_BIN_ATTRIBUTE_RW(general, GENERAL); -+SAVU_BIN_ATTRIBUTE_RW(buttons, BUTTONS); -+SAVU_BIN_ATTRIBUTE_RW(macro, MACRO); -+SAVU_BIN_ATTRIBUTE_RW(info, INFO); -+SAVU_BIN_ATTRIBUTE_RW(sensor, SENSOR); -+ -+static struct bin_attribute *savu_bin_attributes[] = { -+ &bin_attr_control, -+ &bin_attr_profile, -+ &bin_attr_general, -+ &bin_attr_buttons, -+ &bin_attr_macro, -+ &bin_attr_info, -+ &bin_attr_sensor, -+ NULL, -+}; -+ -+static const struct attribute_group savu_group = { -+ .bin_attrs = savu_bin_attributes, -+}; -+ -+static const struct attribute_group *savu_groups[] = { -+ &savu_group, -+ NULL, - }; - - static int savu_init_savu_device_struct(struct usb_device *usb_dev, -@@ -294,7 +298,7 @@ static int __init savu_init(void) - savu_class = class_create(THIS_MODULE, "savu"); - if (IS_ERR(savu_class)) - return PTR_ERR(savu_class); -- savu_class->dev_bin_attrs = savu_bin_attributes; -+ savu_class->dev_groups = savu_groups; - - retval = hid_register_driver(&savu_driver); - if (retval) diff --git a/hid-roccat-convert-class-code-to-use-dev_groups.patch b/hid-roccat-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index b32e5729c31eb9..00000000000000 --- a/hid-roccat-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,410 +0,0 @@ -From foo@baz Tue Jul 9 14:54:09 PDT 2013 -Date: Tue, 09 Jul 2013 14:54:09 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: HID: roccat: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the roccat class code to use the -correct field. - -Cc: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/hid/hid-roccat-arvo.c | 25 ++++++++++++++----------- - drivers/hid/hid-roccat-isku.c | 13 +++++++------ - drivers/hid/hid-roccat-kone.c | 30 ++++++++++++++++++------------ - drivers/hid/hid-roccat-koneplus.c | 26 +++++++++++++++----------- - drivers/hid/hid-roccat-kovaplus.c | 33 +++++++++++++++++++-------------- - drivers/hid/hid-roccat-pyra.c | 22 +++++++++++++--------- - 6 files changed, 86 insertions(+), 63 deletions(-) - ---- a/drivers/hid/hid-roccat-arvo.c -+++ b/drivers/hid/hid-roccat-arvo.c -@@ -75,6 +75,8 @@ static ssize_t arvo_sysfs_set_mode_key(s - - return size; - } -+static DEVICE_ATTR(mode_key, 0660, -+ arvo_sysfs_show_mode_key, arvo_sysfs_set_mode_key); - - static ssize_t arvo_sysfs_show_key_mask(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -123,6 +125,8 @@ static ssize_t arvo_sysfs_set_key_mask(s - - return size; - } -+static DEVICE_ATTR(key_mask, 0660, -+ arvo_sysfs_show_key_mask, arvo_sysfs_set_key_mask); - - /* retval is 1-5 on success, < 0 on error */ - static int arvo_get_actual_profile(struct usb_device *usb_dev) -@@ -179,6 +183,9 @@ static ssize_t arvo_sysfs_set_actual_pro - mutex_unlock(&arvo->arvo_lock); - return retval; - } -+static DEVICE_ATTR(actual_profile, 0660, -+ arvo_sysfs_show_actual_profile, -+ arvo_sysfs_set_actual_profile); - - static ssize_t arvo_sysfs_write(struct file *fp, - struct kobject *kobj, void const *buf, -@@ -239,17 +246,13 @@ static ssize_t arvo_sysfs_read_info(stru - sizeof(struct arvo_info), ARVO_COMMAND_INFO); - } - -- --static struct device_attribute arvo_attributes[] = { -- __ATTR(mode_key, 0660, -- arvo_sysfs_show_mode_key, arvo_sysfs_set_mode_key), -- __ATTR(key_mask, 0660, -- arvo_sysfs_show_key_mask, arvo_sysfs_set_key_mask), -- __ATTR(actual_profile, 0660, -- arvo_sysfs_show_actual_profile, -- arvo_sysfs_set_actual_profile), -- __ATTR_NULL -+static struct attribute *arvo_attrs[] = { -+ &dev_attr_mode_key.attr, -+ &dev_attr_key_mask.attr, -+ &dev_attr_actual_profile.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(arvo); - - static struct bin_attribute arvo_bin_attributes[] = { - { -@@ -430,7 +433,7 @@ static int __init arvo_init(void) - arvo_class = class_create(THIS_MODULE, "arvo"); - if (IS_ERR(arvo_class)) - return PTR_ERR(arvo_class); -- arvo_class->dev_attrs = arvo_attributes; -+ arvo_class->dev_groups = arvo_groups; - arvo_class->dev_bin_attrs = arvo_bin_attributes; - - retval = hid_register_driver(&arvo_driver); ---- a/drivers/hid/hid-roccat-isku.c -+++ b/drivers/hid/hid-roccat-isku.c -@@ -109,13 +109,14 @@ static ssize_t isku_sysfs_set_actual_pro - - return size; - } -+static DEVICE_ATTR(actual_profile, 0660, isku_sysfs_show_actual_profile, -+ isku_sysfs_set_actual_profile); - --static struct device_attribute isku_attributes[] = { -- __ATTR(actual_profile, 0660, -- isku_sysfs_show_actual_profile, -- isku_sysfs_set_actual_profile), -- __ATTR_NULL -+static struct attribute *isku_attrs[] = { -+ &dev_attr_actual_profile.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(isku); - - static ssize_t isku_sysfs_read(struct file *fp, struct kobject *kobj, - char *buf, loff_t off, size_t count, -@@ -427,7 +428,7 @@ static int __init isku_init(void) - isku_class = class_create(THIS_MODULE, "isku"); - if (IS_ERR(isku_class)) - return PTR_ERR(isku_class); -- isku_class->dev_attrs = isku_attributes; -+ isku_class->dev_groups = isku_groups; - isku_class->dev_bin_attrs = isku_bin_attributes; - - retval = hid_register_driver(&isku_driver); ---- a/drivers/hid/hid-roccat-kone.c -+++ b/drivers/hid/hid-roccat-kone.c -@@ -386,6 +386,7 @@ static ssize_t kone_sysfs_show_actual_pr - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kone->actual_profile); - } -+static DEVICE_ATTR(actual_profile, 0440, kone_sysfs_show_actual_profile, NULL); - - static ssize_t kone_sysfs_show_actual_dpi(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -394,6 +395,7 @@ static ssize_t kone_sysfs_show_actual_dp - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kone->actual_dpi); - } -+static DEVICE_ATTR(actual_dpi, 0440, kone_sysfs_show_actual_dpi, NULL); - - /* weight is read each time, since we don't get informed when it's changed */ - static ssize_t kone_sysfs_show_weight(struct device *dev, -@@ -416,6 +418,7 @@ static ssize_t kone_sysfs_show_weight(st - return retval; - return snprintf(buf, PAGE_SIZE, "%d\n", weight); - } -+static DEVICE_ATTR(weight, 0440, kone_sysfs_show_weight, NULL); - - static ssize_t kone_sysfs_show_firmware_version(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -424,6 +427,8 @@ static ssize_t kone_sysfs_show_firmware_ - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kone->firmware_version); - } -+static DEVICE_ATTR(firmware_version, 0440, kone_sysfs_show_firmware_version, -+ NULL); - - static ssize_t kone_sysfs_show_tcu(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -524,6 +529,7 @@ exit_unlock: - mutex_unlock(&kone->kone_lock); - return retval; - } -+static DEVICE_ATTR(tcu, 0660, kone_sysfs_show_tcu, kone_sysfs_set_tcu); - - static ssize_t kone_sysfs_show_startup_profile(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -570,15 +576,17 @@ static ssize_t kone_sysfs_set_startup_pr - mutex_unlock(&kone->kone_lock); - return size; - } -+static DEVICE_ATTR(startup_profile, 0660, kone_sysfs_show_startup_profile, -+ kone_sysfs_set_startup_profile); - --static struct device_attribute kone_attributes[] = { -+static struct attribute *kone_attrs[] = { - /* - * Read actual dpi settings. - * Returns raw value for further processing. Refer to enum - * kone_polling_rates to get real value. - */ -- __ATTR(actual_dpi, 0440, kone_sysfs_show_actual_dpi, NULL), -- __ATTR(actual_profile, 0440, kone_sysfs_show_actual_profile, NULL), -+ &dev_attr_actual_dpi.attr, -+ &dev_attr_actual_profile.attr, - - /* - * The mouse can be equipped with one of four supplied weights from 5 -@@ -587,7 +595,7 @@ static struct device_attribute kone_attr - * by software. Refer to enum kone_weights to get corresponding real - * weight. - */ -- __ATTR(weight, 0440, kone_sysfs_show_weight, NULL), -+ &dev_attr_weight.attr, - - /* - * Prints firmware version stored in mouse as integer. -@@ -595,22 +603,20 @@ static struct device_attribute kone_attr - * to get the real version number the decimal point has to be shifted 2 - * positions to the left. E.g. a value of 138 means 1.38. - */ -- __ATTR(firmware_version, 0440, -- kone_sysfs_show_firmware_version, NULL), -+ &dev_attr_firmware_version.attr, - - /* - * Prints state of Tracking Control Unit as number where 0 = off and - * 1 = on. Writing 0 deactivates tcu and writing 1 calibrates and - * activates the tcu - */ -- __ATTR(tcu, 0660, kone_sysfs_show_tcu, kone_sysfs_set_tcu), -+ &dev_attr_tcu.attr, - - /* Prints and takes the number of the profile the mouse starts with */ -- __ATTR(startup_profile, 0660, -- kone_sysfs_show_startup_profile, -- kone_sysfs_set_startup_profile), -- __ATTR_NULL -+ &dev_attr_startup_profile.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(kone); - - static struct bin_attribute kone_bin_attributes[] = { - { -@@ -891,7 +897,7 @@ static int __init kone_init(void) - kone_class = class_create(THIS_MODULE, "kone"); - if (IS_ERR(kone_class)) - return PTR_ERR(kone_class); -- kone_class->dev_attrs = kone_attributes; -+ kone_class->dev_groups = kone_groups; - kone_class->dev_bin_attrs = kone_bin_attributes; - - retval = hid_register_driver(&kone_driver); ---- a/drivers/hid/hid-roccat-koneplus.c -+++ b/drivers/hid/hid-roccat-koneplus.c -@@ -274,6 +274,12 @@ static ssize_t koneplus_sysfs_set_actual - - return size; - } -+static DEVICE_ATTR(actual_profile, 0660, -+ koneplus_sysfs_show_actual_profile, -+ koneplus_sysfs_set_actual_profile); -+static DEVICE_ATTR(startup_profile, 0660, -+ koneplus_sysfs_show_actual_profile, -+ koneplus_sysfs_set_actual_profile); - - static ssize_t koneplus_sysfs_show_firmware_version(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -293,18 +299,16 @@ static ssize_t koneplus_sysfs_show_firmw - - return snprintf(buf, PAGE_SIZE, "%d\n", info.firmware_version); - } -+static DEVICE_ATTR(firmware_version, 0440, -+ koneplus_sysfs_show_firmware_version, NULL); - --static struct device_attribute koneplus_attributes[] = { -- __ATTR(actual_profile, 0660, -- koneplus_sysfs_show_actual_profile, -- koneplus_sysfs_set_actual_profile), -- __ATTR(startup_profile, 0660, -- koneplus_sysfs_show_actual_profile, -- koneplus_sysfs_set_actual_profile), -- __ATTR(firmware_version, 0440, -- koneplus_sysfs_show_firmware_version, NULL), -- __ATTR_NULL -+static struct attribute *koneplus_attrs[] = { -+ &dev_attr_actual_profile.attr, -+ &dev_attr_startup_profile.attr, -+ &dev_attr_firmware_version.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(koneplus); - - static struct bin_attribute koneplus_bin_attributes[] = { - KONEPLUS_BIN_ATTRIBUTE_W(control, CONTROL), -@@ -572,7 +576,7 @@ static int __init koneplus_init(void) - koneplus_class = class_create(THIS_MODULE, "koneplus"); - if (IS_ERR(koneplus_class)) - return PTR_ERR(koneplus_class); -- koneplus_class->dev_attrs = koneplus_attributes; -+ koneplus_class->dev_groups = koneplus_groups; - koneplus_class->dev_bin_attrs = koneplus_bin_attributes; - - retval = hid_register_driver(&koneplus_driver); ---- a/drivers/hid/hid-roccat-kovaplus.c -+++ b/drivers/hid/hid-roccat-kovaplus.c -@@ -310,6 +310,9 @@ static ssize_t kovaplus_sysfs_set_actual - - return size; - } -+static DEVICE_ATTR(actual_profile, 0660, -+ kovaplus_sysfs_show_actual_profile, -+ kovaplus_sysfs_set_actual_profile); - - static ssize_t kovaplus_sysfs_show_actual_cpi(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -318,6 +321,7 @@ static ssize_t kovaplus_sysfs_show_actua - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kovaplus->actual_cpi); - } -+static DEVICE_ATTR(actual_cpi, 0440, kovaplus_sysfs_show_actual_cpi, NULL); - - static ssize_t kovaplus_sysfs_show_actual_sensitivity_x(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -326,6 +330,8 @@ static ssize_t kovaplus_sysfs_show_actua - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kovaplus->actual_x_sensitivity); - } -+static DEVICE_ATTR(actual_sensitivity_x, 0440, -+ kovaplus_sysfs_show_actual_sensitivity_x, NULL); - - static ssize_t kovaplus_sysfs_show_actual_sensitivity_y(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -334,6 +340,8 @@ static ssize_t kovaplus_sysfs_show_actua - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", kovaplus->actual_y_sensitivity); - } -+static DEVICE_ATTR(actual_sensitivity_y, 0440, -+ kovaplus_sysfs_show_actual_sensitivity_y, NULL); - - static ssize_t kovaplus_sysfs_show_firmware_version(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -353,21 +361,18 @@ static ssize_t kovaplus_sysfs_show_firmw - - return snprintf(buf, PAGE_SIZE, "%d\n", info.firmware_version); - } -+static DEVICE_ATTR(firmware_version, 0440, -+ kovaplus_sysfs_show_firmware_version, NULL); - --static struct device_attribute kovaplus_attributes[] = { -- __ATTR(actual_cpi, 0440, -- kovaplus_sysfs_show_actual_cpi, NULL), -- __ATTR(firmware_version, 0440, -- kovaplus_sysfs_show_firmware_version, NULL), -- __ATTR(actual_profile, 0660, -- kovaplus_sysfs_show_actual_profile, -- kovaplus_sysfs_set_actual_profile), -- __ATTR(actual_sensitivity_x, 0440, -- kovaplus_sysfs_show_actual_sensitivity_x, NULL), -- __ATTR(actual_sensitivity_y, 0440, -- kovaplus_sysfs_show_actual_sensitivity_y, NULL), -- __ATTR_NULL -+static struct attribute *kovaplus_attrs[] = { -+ &dev_attr_actual_cpi.attr, -+ &dev_attr_firmware_version.attr, -+ &dev_attr_actual_profile.attr, -+ &dev_attr_actual_sensitivity_x.attr, -+ &dev_attr_actual_sensitivity_y.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(kovaplus); - - static struct bin_attribute kovaplus_bin_attributes[] = { - KOVAPLUS_BIN_ATTRIBUTE_W(control, CONTROL), -@@ -662,7 +667,7 @@ static int __init kovaplus_init(void) - kovaplus_class = class_create(THIS_MODULE, "kovaplus"); - if (IS_ERR(kovaplus_class)) - return PTR_ERR(kovaplus_class); -- kovaplus_class->dev_attrs = kovaplus_attributes; -+ kovaplus_class->dev_groups = kovaplus_groups; - kovaplus_class->dev_bin_attrs = kovaplus_bin_attributes; - - retval = hid_register_driver(&kovaplus_driver); ---- a/drivers/hid/hid-roccat-pyra.c -+++ b/drivers/hid/hid-roccat-pyra.c -@@ -266,6 +266,7 @@ static ssize_t pyra_sysfs_show_actual_cp - hid_get_drvdata(dev_get_drvdata(dev->parent->parent)); - return snprintf(buf, PAGE_SIZE, "%d\n", pyra->actual_cpi); - } -+static DEVICE_ATTR(actual_cpi, 0440, pyra_sysfs_show_actual_cpi, NULL); - - static ssize_t pyra_sysfs_show_actual_profile(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -282,6 +283,8 @@ static ssize_t pyra_sysfs_show_actual_pr - - return snprintf(buf, PAGE_SIZE, "%d\n", settings.startup_profile); - } -+static DEVICE_ATTR(actual_profile, 0440, pyra_sysfs_show_actual_profile, NULL); -+static DEVICE_ATTR(startup_profile, 0440, pyra_sysfs_show_actual_profile, NULL); - - static ssize_t pyra_sysfs_show_firmware_version(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -301,16 +304,17 @@ static ssize_t pyra_sysfs_show_firmware_ - - return snprintf(buf, PAGE_SIZE, "%d\n", info.firmware_version); - } -+static DEVICE_ATTR(firmware_version, 0440, pyra_sysfs_show_firmware_version, -+ NULL); - --static struct device_attribute pyra_attributes[] = { -- __ATTR(actual_cpi, 0440, pyra_sysfs_show_actual_cpi, NULL), -- __ATTR(actual_profile, 0440, pyra_sysfs_show_actual_profile, NULL), -- __ATTR(firmware_version, 0440, -- pyra_sysfs_show_firmware_version, NULL), -- __ATTR(startup_profile, 0440, -- pyra_sysfs_show_actual_profile, NULL), -- __ATTR_NULL -+static struct attribute *pyra_attrs[] = { -+ &dev_attr_actual_cpi.attr, -+ &dev_attr_actual_profile.attr, -+ &dev_attr_firmware_version.attr, -+ &dev_attr_startup_profile.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pyra); - - static struct bin_attribute pyra_bin_attributes[] = { - PYRA_BIN_ATTRIBUTE_W(control, CONTROL), -@@ -600,7 +604,7 @@ static int __init pyra_init(void) - pyra_class = class_create(THIS_MODULE, "pyra"); - if (IS_ERR(pyra_class)) - return PTR_ERR(pyra_class); -- pyra_class->dev_attrs = pyra_attributes; -+ pyra_class->dev_groups = pyra_groups; - pyra_class->dev_bin_attrs = pyra_bin_attributes; - - retval = hid_register_driver(&pyra_driver); diff --git a/isdn-convert-class-code-to-use-dev_groups.patch b/isdn-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index b5478287095c64..00000000000000 --- a/isdn-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,159 +0,0 @@ -From foo@baz Tue Jul 9 14:55:31 PDT 2013 -Date: Tue, 09 Jul 2013 14:55:31 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: ISDN: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the mISDN class code to use the -correct field. - -Cc: Karsten Keil <isdn@linux-pingi.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/isdn/mISDN/core.c | 62 +++++++++++++++++++++++++--------------------- - 1 file changed, 35 insertions(+), 27 deletions(-) - ---- a/drivers/isdn/mISDN/core.c -+++ b/drivers/isdn/mISDN/core.c -@@ -37,8 +37,8 @@ static void mISDN_dev_release(struct dev - /* nothing to do: the device is part of its parent's data structure */ - } - --static ssize_t _show_id(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t id_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - -@@ -46,9 +46,10 @@ static ssize_t _show_id(struct device *d - return -ENODEV; - return sprintf(buf, "%d\n", mdev->id); - } -+static DEVICE_ATTR_RO(id); - --static ssize_t _show_nrbchan(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t nrbchan_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - -@@ -56,9 +57,10 @@ static ssize_t _show_nrbchan(struct devi - return -ENODEV; - return sprintf(buf, "%d\n", mdev->nrbchan); - } -+static DEVICE_ATTR_RO(nrbchan); - --static ssize_t _show_d_protocols(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t d_protocols_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - -@@ -66,9 +68,10 @@ static ssize_t _show_d_protocols(struct - return -ENODEV; - return sprintf(buf, "%d\n", mdev->Dprotocols); - } -+static DEVICE_ATTR_RO(d_protocols); - --static ssize_t _show_b_protocols(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t b_protocols_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - -@@ -76,9 +79,10 @@ static ssize_t _show_b_protocols(struct - return -ENODEV; - return sprintf(buf, "%d\n", mdev->Bprotocols | get_all_Bprotocols()); - } -+static DEVICE_ATTR_RO(b_protocols); - --static ssize_t _show_protocol(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t protocol_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - -@@ -86,17 +90,19 @@ static ssize_t _show_protocol(struct dev - return -ENODEV; - return sprintf(buf, "%d\n", mdev->D.protocol); - } -+static DEVICE_ATTR_RO(protocol); - --static ssize_t _show_name(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t name_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - strcpy(buf, dev_name(dev)); - return strlen(buf); - } -+static DEVICE_ATTR_RO(name); - - #if 0 /* hangs */ --static ssize_t _set_name(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+static ssize_t name_set(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - int err = 0; - char *out = kmalloc(count + 1, GFP_KERNEL); -@@ -113,10 +119,11 @@ static ssize_t _set_name(struct device * - - return (err < 0) ? err : count; - } -+static DEVICE_ATTR_RW(name); - #endif - --static ssize_t _show_channelmap(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t channelmap_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct mISDNdevice *mdev = dev_to_mISDN(dev); - char *bp = buf; -@@ -127,18 +134,19 @@ static ssize_t _show_channelmap(struct d - - return bp - buf; - } -+static DEVICE_ATTR_RO(channelmap); - --static struct device_attribute mISDN_dev_attrs[] = { -- __ATTR(id, S_IRUGO, _show_id, NULL), -- __ATTR(d_protocols, S_IRUGO, _show_d_protocols, NULL), -- __ATTR(b_protocols, S_IRUGO, _show_b_protocols, NULL), -- __ATTR(protocol, S_IRUGO, _show_protocol, NULL), -- __ATTR(channelmap, S_IRUGO, _show_channelmap, NULL), -- __ATTR(nrbchan, S_IRUGO, _show_nrbchan, NULL), -- __ATTR(name, S_IRUGO, _show_name, NULL), --/* __ATTR(name, S_IRUGO | S_IWUSR, _show_name, _set_name), */ -- {} -+static struct attribute *mISDN_attrs[] = { -+ &dev_attr_id.attr, -+ &dev_attr_d_protocols.attr, -+ &dev_attr_b_protocols.attr, -+ &dev_attr_protocol.attr, -+ &dev_attr_channelmap.attr, -+ &dev_attr_nrbchan.attr, -+ &dev_attr_name.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(mISDN); - - static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) - { -@@ -162,7 +170,7 @@ static struct class mISDN_class = { - .name = "mISDN", - .owner = THIS_MODULE, - .dev_uevent = mISDN_uevent, -- .dev_attrs = mISDN_dev_attrs, -+ .dev_groups = mISDN_groups, - .dev_release = mISDN_dev_release, - .class_release = mISDN_class_release, - }; diff --git a/kobject-delayed-kobject-release-help-find-buggy-drivers.patch b/kobject-delayed-kobject-release-help-find-buggy-drivers.patch deleted file mode 100644 index cdae1a841c82e6..00000000000000 --- a/kobject-delayed-kobject-release-help-find-buggy-drivers.patch +++ /dev/null @@ -1,125 +0,0 @@ -From rmk+greg=kroah.com@arm.linux.org.uk Thu Jun 27 07:06:26 2013 -From: Russell King <rmk@arm.linux.org.uk> -Date: Thu, 27 Jun 2013 15:06:14 +0100 -Subject: kobject: delayed kobject release: help find buggy drivers -To: Greg KH <greg@kroah.com> -Cc: Linux Kernel List <linux-kernel@vger.kernel.org>, Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org> -Message-ID: <20130627140613.GB12530@flint.arm.linux.org.uk> - - -From: Russell King <rmk+kernel@arm.linux.org.uk> - -Implement debugging for kobject release functions. kobjects are -reference counted, so the drop of the last reference to them is not -predictable. However, the common case is for the last reference to be -the kobject's removal from a subsystem, which results in the release -function being immediately called. - -This can hide subtle bugs, which can occur when another thread holds a -reference to the kobject at the same time that a kobject is removed. -This results in the release method being delayed. - -In order to make these kinds of problems more visible, the following -patch implements a delayed release; this has the effect that the -release function will be out of order with respect to the removal of -the kobject in the same manner that it would be if a reference was -being held. - -This provides us with an easy way to allow driver writers to debug -their drivers and fix otherwise hidden problems. - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> ---- - include/linux/kobject.h | 4 ++++ - lib/Kconfig.debug | 19 +++++++++++++++++++ - lib/kobject.c | 22 +++++++++++++++++++--- - 3 files changed, 42 insertions(+), 3 deletions(-) - ---- a/include/linux/kobject.h -+++ b/include/linux/kobject.h -@@ -26,6 +26,7 @@ - #include <linux/kernel.h> - #include <linux/wait.h> - #include <linux/atomic.h> -+#include <linux/workqueue.h> - - #define UEVENT_HELPER_PATH_LEN 256 - #define UEVENT_NUM_ENVP 32 /* number of env pointers */ -@@ -65,6 +66,9 @@ struct kobject { - struct kobj_type *ktype; - struct sysfs_dirent *sd; - struct kref kref; -+#ifdef CONFIG_DEBUG_KOBJECT_RELEASE -+ struct delayed_work release; -+#endif - unsigned int state_initialized:1; - unsigned int state_in_sysfs:1; - unsigned int state_add_uevent_sent:1; ---- a/lib/Kconfig.debug -+++ b/lib/Kconfig.debug -@@ -981,6 +981,25 @@ config DEBUG_KOBJECT - If you say Y here, some extra kobject debugging messages will be sent - to the syslog. - -+config DEBUG_KOBJECT_RELEASE -+ bool "kobject release debugging" -+ depends on DEBUG_KERNEL -+ help -+ kobjects are reference counted objects. This means that their -+ last reference count put is not predictable, and the kobject can -+ live on past the point at which a driver decides to drop it's -+ initial reference to the kobject gained on allocation. An -+ example of this would be a struct device which has just been -+ unregistered. -+ -+ However, some buggy drivers assume that after such an operation, -+ the memory backing the kobject can be immediately freed. This -+ goes completely against the principles of a refcounted object. -+ -+ If you say Y here, the kernel will delay the release of kobjects -+ on the last reference count to improve the visibility of this -+ kind of kobject release bug. -+ - config HAVE_DEBUG_BUGVERBOSE - bool - ---- a/lib/kobject.c -+++ b/lib/kobject.c -@@ -545,8 +545,8 @@ static void kobject_cleanup(struct kobje - struct kobj_type *t = get_ktype(kobj); - const char *name = kobj->name; - -- pr_debug("kobject: '%s' (%p): %s\n", -- kobject_name(kobj), kobj, __func__); -+ pr_debug("kobject: '%s' (%p): %s, parent %p\n", -+ kobject_name(kobj), kobj, __func__, kobj->parent); - - if (t && !t->release) - pr_debug("kobject: '%s' (%p): does not have a release() " -@@ -580,9 +580,25 @@ static void kobject_cleanup(struct kobje - } - } - -+#ifdef CONFIG_DEBUG_KOBJECT_RELEASE -+static void kobject_delayed_cleanup(struct work_struct *work) -+{ -+ kobject_cleanup(container_of(to_delayed_work(work), -+ struct kobject, release)); -+} -+#endif -+ - static void kobject_release(struct kref *kref) - { -- kobject_cleanup(container_of(kref, struct kobject, kref)); -+ struct kobject *kobj = container_of(kref, struct kobject, kref); -+#ifdef CONFIG_DEBUG_KOBJECT_RELEASE -+ pr_debug("kobject: '%s' (%p): %s, parent %p (delayed)\n", -+ kobject_name(kobj), kobj, __func__, kobj->parent); -+ INIT_DELAYED_WORK(&kobj->release, kobject_delayed_cleanup); -+ schedule_delayed_work(&kobj->release, HZ); -+#else -+ kobject_cleanup(kobj); -+#endif - } - - /** diff --git a/leds-convert-class-code-to-use-dev_groups.patch b/leds-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index ace9ceac4fa186..00000000000000 --- a/leds-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,95 +0,0 @@ -From foo@baz Tue Jul 9 14:58:19 PDT 2013 -Date: Tue, 09 Jul 2013 14:58:19 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: leds: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the led class code to use the -correct field. - -Cc: Bryan Wu <cooloney@gmail.com> -Cc: Richard Purdie <rpurdie@rpsys.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/leds/led-class.c | 38 ++++++++++++++++++++++++++++++-------- - 1 file changed, 30 insertions(+), 8 deletions(-) - ---- a/drivers/leds/led-class.c -+++ b/drivers/leds/led-class.c -@@ -29,7 +29,7 @@ static void led_update_brightness(struct - led_cdev->brightness = led_cdev->brightness_get(led_cdev); - } - --static ssize_t led_brightness_show(struct device *dev, -+static ssize_t brightness_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct led_classdev *led_cdev = dev_get_drvdata(dev); -@@ -40,7 +40,7 @@ static ssize_t led_brightness_show(struc - return sprintf(buf, "%u\n", led_cdev->brightness); - } - --static ssize_t led_brightness_store(struct device *dev, -+static ssize_t brightness_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t size) - { - struct led_classdev *led_cdev = dev_get_drvdata(dev); -@@ -57,6 +57,7 @@ static ssize_t led_brightness_store(stru - - return size; - } -+static DEVICE_ATTR_RW(brightness); - - static ssize_t led_max_brightness_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -65,14 +66,35 @@ static ssize_t led_max_brightness_show(s - - return sprintf(buf, "%u\n", led_cdev->max_brightness); - } -+static DEVICE_ATTR(max_brightness, 0444, led_max_brightness_show, NULL); - --static struct device_attribute led_class_attrs[] = { -- __ATTR(brightness, 0644, led_brightness_show, led_brightness_store), -- __ATTR(max_brightness, 0444, led_max_brightness_show, NULL), - #ifdef CONFIG_LEDS_TRIGGERS -- __ATTR(trigger, 0644, led_trigger_show, led_trigger_store), -+static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store); -+static struct attribute *led_trigger_attrs[] = { -+ &dev_attr_trigger.attr, -+ NULL, -+}; -+static const struct attribute_group led_trigger_group = { -+ .attrs = led_trigger_attrs, -+}; -+#endif -+ -+static struct attribute *led_class_attrs[] = { -+ &dev_attr_brightness.attr, -+ &dev_attr_max_brightness.attr, -+ NULL, -+}; -+ -+static const struct attribute_group led_group = { -+ .attrs = led_class_attrs, -+}; -+ -+static const struct attribute_group *led_groups[] = { -+ &led_group, -+#ifdef CONFIG_LEDS_TRIGGERS -+ &led_trigger_group, - #endif -- __ATTR_NULL, -+ NULL, - }; - - static void led_timer_function(unsigned long data) -@@ -258,7 +280,7 @@ static int __init leds_init(void) - if (IS_ERR(leds_class)) - return PTR_ERR(leds_class); - leds_class->pm = &leds_class_dev_pm_ops; -- leds_class->dev_attrs = led_class_attrs; -+ leds_class->dev_groups = led_groups; - return 0; - } - diff --git a/mips-convert-vpe_class-to-use-dev_groups.patch b/mips-convert-vpe_class-to-use-dev_groups.patch deleted file mode 100644 index e40022b38932d6..00000000000000 --- a/mips-convert-vpe_class-to-use-dev_groups.patch +++ /dev/null @@ -1,67 +0,0 @@ -From foo@baz Tue Jul 9 14:46:12 PDT 2013 -Date: Tue, 09 Jul 2013 14:46:12 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: mips: convert vpe_class to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the MIPS vpe_class code to use -the correct field. - -Cc: Ralf Baechle <ralf@linux-mips.org> -Cc: John Crispin <blogic@openwrt.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/mips/kernel/vpe.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - ---- a/arch/mips/kernel/vpe.c -+++ b/arch/mips/kernel/vpe.c -@@ -1335,8 +1335,9 @@ static ssize_t store_kill(struct device - - return len; - } -+static DEVICE_ATTR(kill, S_IWUSR, NULL, store_kill); - --static ssize_t show_ntcs(struct device *cd, struct device_attribute *attr, -+static ssize_t ntcs_show(struct device *cd, struct device_attribute *attr, - char *buf) - { - struct vpe *vpe = get_vpe(tclimit); -@@ -1344,7 +1345,7 @@ static ssize_t show_ntcs(struct device * - return sprintf(buf, "%d\n", vpe->ntcs); - } - --static ssize_t store_ntcs(struct device *dev, struct device_attribute *attr, -+static ssize_t ntcs_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t len) - { - struct vpe *vpe = get_vpe(tclimit); -@@ -1365,12 +1366,14 @@ static ssize_t store_ntcs(struct device - out_einval: - return -EINVAL; - } -+static DEVICE_ATTR_RW(ntcs); - --static struct device_attribute vpe_class_attributes[] = { -- __ATTR(kill, S_IWUSR, NULL, store_kill), -- __ATTR(ntcs, S_IRUGO | S_IWUSR, show_ntcs, store_ntcs), -- {} -+static struct attribute vpe_attrs[] = { -+ &dev_attr_kill.attr, -+ &dev_attr_ntcs.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(vpe); - - static void vpe_device_release(struct device *cd) - { -@@ -1381,7 +1384,7 @@ struct class vpe_class = { - .name = "vpe", - .owner = THIS_MODULE, - .dev_release = vpe_device_release, -- .dev_attrs = vpe_class_attributes, -+ .dev_groups = vpe_groups, - }; - - struct device vpe_device; diff --git a/net-core-convert-class-code-to-use-dev_groups.patch b/net-core-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 31aecfb7d86d41..00000000000000 --- a/net-core-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,337 +0,0 @@ -From foo@baz Tue Jul 9 16:17:49 PDT 2013 -Date: Tue, 09 Jul 2013 16:17:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: net: core: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the networking core class code to -use the correct field. - -In order to do this in the "cleanest" way, some of the macros had to be -changed to reflect the driver core format of naming show/store -functions, which accounts for the majority of the churn in this file. - -Cc: netdev@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - - ---- - net/core/net-sysfs.c | 134 ++++++++++++++++++++++++++++----------------------- - 1 file changed, 74 insertions(+), 60 deletions(-) - ---- a/net/core/net-sysfs.c -+++ b/net/core/net-sysfs.c -@@ -60,12 +60,19 @@ static ssize_t format_##field(const stru - { \ - return sprintf(buf, format_string, net->field); \ - } \ --static ssize_t show_##field(struct device *dev, \ -+static ssize_t field##_show(struct device *dev, \ - struct device_attribute *attr, char *buf) \ - { \ - return netdev_show(dev, attr, buf, format_##field); \ --} -+} \ - -+#define NETDEVICE_SHOW_RO(field, format_string) \ -+NETDEVICE_SHOW(field, format_string); \ -+static DEVICE_ATTR_RO(field) -+ -+#define NETDEVICE_SHOW_RW(field, format_string) \ -+NETDEVICE_SHOW(field, format_string); \ -+static DEVICE_ATTR_RW(field) - - /* use same locking and permission rules as SIF* ioctl's */ - static ssize_t netdev_store(struct device *dev, struct device_attribute *attr, -@@ -96,16 +103,16 @@ static ssize_t netdev_store(struct devic - return ret; - } - --NETDEVICE_SHOW(dev_id, fmt_hex); --NETDEVICE_SHOW(addr_assign_type, fmt_dec); --NETDEVICE_SHOW(addr_len, fmt_dec); --NETDEVICE_SHOW(iflink, fmt_dec); --NETDEVICE_SHOW(ifindex, fmt_dec); --NETDEVICE_SHOW(type, fmt_dec); --NETDEVICE_SHOW(link_mode, fmt_dec); -+NETDEVICE_SHOW_RO(dev_id, fmt_hex); -+NETDEVICE_SHOW_RO(addr_assign_type, fmt_dec); -+NETDEVICE_SHOW_RO(addr_len, fmt_dec); -+NETDEVICE_SHOW_RO(iflink, fmt_dec); -+NETDEVICE_SHOW_RO(ifindex, fmt_dec); -+NETDEVICE_SHOW_RO(type, fmt_dec); -+NETDEVICE_SHOW_RO(link_mode, fmt_dec); - - /* use same locking rules as GIFHWADDR ioctl's */ --static ssize_t show_address(struct device *dev, struct device_attribute *attr, -+static ssize_t address_show(struct device *dev, struct device_attribute *attr, - char *buf) - { - struct net_device *net = to_net_dev(dev); -@@ -117,15 +124,17 @@ static ssize_t show_address(struct devic - read_unlock(&dev_base_lock); - return ret; - } -+static DEVICE_ATTR_RO(address); - --static ssize_t show_broadcast(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t broadcast_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct net_device *net = to_net_dev(dev); - if (dev_isalive(net)) - return sysfs_format_mac(buf, net->broadcast, net->addr_len); - return -EINVAL; - } -+static DEVICE_ATTR_RO(broadcast); - - static int change_carrier(struct net_device *net, unsigned long new_carrier) - { -@@ -134,13 +143,13 @@ static int change_carrier(struct net_dev - return dev_change_carrier(net, (bool) new_carrier); - } - --static ssize_t store_carrier(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t len) -+static ssize_t carrier_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t len) - { - return netdev_store(dev, attr, buf, len, change_carrier); - } - --static ssize_t show_carrier(struct device *dev, -+static ssize_t carrier_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct net_device *netdev = to_net_dev(dev); -@@ -149,8 +158,9 @@ static ssize_t show_carrier(struct devic - } - return -EINVAL; - } -+static DEVICE_ATTR_RW(carrier); - --static ssize_t show_speed(struct device *dev, -+static ssize_t speed_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct net_device *netdev = to_net_dev(dev); -@@ -167,8 +177,9 @@ static ssize_t show_speed(struct device - rtnl_unlock(); - return ret; - } -+static DEVICE_ATTR_RO(speed); - --static ssize_t show_duplex(struct device *dev, -+static ssize_t duplex_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct net_device *netdev = to_net_dev(dev); -@@ -198,8 +209,9 @@ static ssize_t show_duplex(struct device - rtnl_unlock(); - return ret; - } -+static DEVICE_ATTR_RO(duplex); - --static ssize_t show_dormant(struct device *dev, -+static ssize_t dormant_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct net_device *netdev = to_net_dev(dev); -@@ -209,6 +221,7 @@ static ssize_t show_dormant(struct devic - - return -EINVAL; - } -+static DEVICE_ATTR_RO(dormant); - - static const char *const operstates[] = { - "unknown", -@@ -220,7 +233,7 @@ static const char *const operstates[] = - "up" - }; - --static ssize_t show_operstate(struct device *dev, -+static ssize_t operstate_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - const struct net_device *netdev = to_net_dev(dev); -@@ -237,35 +250,33 @@ static ssize_t show_operstate(struct dev - - return sprintf(buf, "%s\n", operstates[operstate]); - } -+static DEVICE_ATTR_RO(operstate); - - /* read-write attributes */ --NETDEVICE_SHOW(mtu, fmt_dec); - - static int change_mtu(struct net_device *net, unsigned long new_mtu) - { - return dev_set_mtu(net, (int) new_mtu); - } - --static ssize_t store_mtu(struct device *dev, struct device_attribute *attr, -+static ssize_t mtu_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t len) - { - return netdev_store(dev, attr, buf, len, change_mtu); - } -- --NETDEVICE_SHOW(flags, fmt_hex); -+NETDEVICE_SHOW_RW(mtu, fmt_dec); - - static int change_flags(struct net_device *net, unsigned long new_flags) - { - return dev_change_flags(net, (unsigned int) new_flags); - } - --static ssize_t store_flags(struct device *dev, struct device_attribute *attr, -+static ssize_t flags_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t len) - { - return netdev_store(dev, attr, buf, len, change_flags); - } -- --NETDEVICE_SHOW(tx_queue_len, fmt_ulong); -+NETDEVICE_SHOW_RW(flags, fmt_hex); - - static int change_tx_queue_len(struct net_device *net, unsigned long new_len) - { -@@ -273,7 +284,7 @@ static int change_tx_queue_len(struct ne - return 0; - } - --static ssize_t store_tx_queue_len(struct device *dev, -+static ssize_t tx_queue_len_store(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t len) - { -@@ -282,8 +293,9 @@ static ssize_t store_tx_queue_len(struct - - return netdev_store(dev, attr, buf, len, change_tx_queue_len); - } -+NETDEVICE_SHOW_RW(tx_queue_len, fmt_ulong); - --static ssize_t store_ifalias(struct device *dev, struct device_attribute *attr, -+static ssize_t ifalias_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t len) - { - struct net_device *netdev = to_net_dev(dev); -@@ -306,7 +318,7 @@ static ssize_t store_ifalias(struct devi - return ret < 0 ? ret : len; - } - --static ssize_t show_ifalias(struct device *dev, -+static ssize_t ifalias_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - const struct net_device *netdev = to_net_dev(dev); -@@ -319,8 +331,7 @@ static ssize_t show_ifalias(struct devic - rtnl_unlock(); - return ret; - } -- --NETDEVICE_SHOW(group, fmt_dec); -+static DEVICE_ATTR_RW(ifalias); - - static int change_group(struct net_device *net, unsigned long new_group) - { -@@ -328,35 +339,37 @@ static int change_group(struct net_devic - return 0; - } - --static ssize_t store_group(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t len) -+static ssize_t group_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t len) - { - return netdev_store(dev, attr, buf, len, change_group); - } -+NETDEVICE_SHOW(group, fmt_dec); -+static DEVICE_ATTR(netdev_group, S_IRUGO | S_IWUSR, group_show, group_store); - --static struct device_attribute net_class_attributes[] = { -- __ATTR(addr_assign_type, S_IRUGO, show_addr_assign_type, NULL), -- __ATTR(addr_len, S_IRUGO, show_addr_len, NULL), -- __ATTR(dev_id, S_IRUGO, show_dev_id, NULL), -- __ATTR(ifalias, S_IRUGO | S_IWUSR, show_ifalias, store_ifalias), -- __ATTR(iflink, S_IRUGO, show_iflink, NULL), -- __ATTR(ifindex, S_IRUGO, show_ifindex, NULL), -- __ATTR(type, S_IRUGO, show_type, NULL), -- __ATTR(link_mode, S_IRUGO, show_link_mode, NULL), -- __ATTR(address, S_IRUGO, show_address, NULL), -- __ATTR(broadcast, S_IRUGO, show_broadcast, NULL), -- __ATTR(carrier, S_IRUGO | S_IWUSR, show_carrier, store_carrier), -- __ATTR(speed, S_IRUGO, show_speed, NULL), -- __ATTR(duplex, S_IRUGO, show_duplex, NULL), -- __ATTR(dormant, S_IRUGO, show_dormant, NULL), -- __ATTR(operstate, S_IRUGO, show_operstate, NULL), -- __ATTR(mtu, S_IRUGO | S_IWUSR, show_mtu, store_mtu), -- __ATTR(flags, S_IRUGO | S_IWUSR, show_flags, store_flags), -- __ATTR(tx_queue_len, S_IRUGO | S_IWUSR, show_tx_queue_len, -- store_tx_queue_len), -- __ATTR(netdev_group, S_IRUGO | S_IWUSR, show_group, store_group), -- {} -+static struct attribute *net_class_attrs[] = { -+ &dev_attr_netdev_group.attr, -+ &dev_attr_type.attr, -+ &dev_attr_dev_id.attr, -+ &dev_attr_iflink.attr, -+ &dev_attr_ifindex.attr, -+ &dev_attr_addr_assign_type.attr, -+ &dev_attr_addr_len.attr, -+ &dev_attr_link_mode.attr, -+ &dev_attr_address.attr, -+ &dev_attr_broadcast.attr, -+ &dev_attr_speed.attr, -+ &dev_attr_duplex.attr, -+ &dev_attr_dormant.attr, -+ &dev_attr_operstate.attr, -+ &dev_attr_ifalias.attr, -+ &dev_attr_carrier.attr, -+ &dev_attr_mtu.attr, -+ &dev_attr_flags.attr, -+ &dev_attr_tx_queue_len.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(net_class); - - /* Show a given an attribute in the statistics group */ - static ssize_t netstat_show(const struct device *d, -@@ -382,13 +395,13 @@ static ssize_t netstat_show(const struct - - /* generate a read-only statistics attribute */ - #define NETSTAT_ENTRY(name) \ --static ssize_t show_##name(struct device *d, \ -+static ssize_t name##_show(struct device *d, \ - struct device_attribute *attr, char *buf) \ - { \ - return netstat_show(d, attr, buf, \ - offsetof(struct rtnl_link_stats64, name)); \ - } \ --static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL) -+static DEVICE_ATTR_RO(name) - - NETSTAT_ENTRY(rx_packets); - NETSTAT_ENTRY(tx_packets); -@@ -457,6 +470,9 @@ static struct attribute_group wireless_g - .attrs = wireless_attrs, - }; - #endif -+ -+#else /* CONFIG_SYSFS */ -+#define net_class_groups NULL - #endif /* CONFIG_SYSFS */ - - #ifdef CONFIG_RPS -@@ -1229,9 +1245,7 @@ static const void *net_namespace(struct - static struct class net_class = { - .name = "net", - .dev_release = netdev_release, --#ifdef CONFIG_SYSFS -- .dev_attrs = net_class_attributes, --#endif /* CONFIG_SYSFS */ -+ .dev_groups = net_class_groups, - .dev_uevent = netdev_uevent, - .ns_type = &net_ns_type_operations, - .namespace = net_namespace, diff --git a/net-ieee802154-convert-class-code-to-use-dev_groups.patch b/net-ieee802154-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 53d0526a29b7a2..00000000000000 --- a/net-ieee802154-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Tue Jul 9 16:20:29 PDT 2013 -Date: Tue, 09 Jul 2013 16:20:29 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: net: ieee802154: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the ieee802154 class code to use -the correct field. - -Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com> -Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> -Cc: netdev@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - - ---- - net/ieee802154/wpan-class.c | 21 ++++++++++++--------- - 1 file changed, 12 insertions(+), 9 deletions(-) - ---- a/net/ieee802154/wpan-class.c -+++ b/net/ieee802154/wpan-class.c -@@ -36,7 +36,8 @@ static ssize_t name ## _show(struct devi - ret = snprintf(buf, PAGE_SIZE, format_string "\n", args); \ - mutex_unlock(&phy->pib_lock); \ - return ret; \ --} -+} \ -+static DEVICE_ATTR_RO(name); - - #define MASTER_SHOW(field, format_string) \ - MASTER_SHOW_COMPLEX(field, format_string, phy->field) -@@ -66,15 +67,17 @@ static ssize_t channels_supported_show(s - mutex_unlock(&phy->pib_lock); - return len; - } -+static DEVICE_ATTR_RO(channels_supported); - --static struct device_attribute pmib_attrs[] = { -- __ATTR_RO(current_channel), -- __ATTR_RO(current_page), -- __ATTR_RO(channels_supported), -- __ATTR_RO(transmit_power), -- __ATTR_RO(cca_mode), -- {}, -+static struct attribute *pmib_attrs[] = { -+ &dev_attr_current_channel.attr, -+ &dev_attr_current_page.attr, -+ &dev_attr_channels_supported.attr, -+ &dev_attr_transmit_power.attr, -+ &dev_attr_cca_mode.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pmib); - - static void wpan_phy_release(struct device *d) - { -@@ -85,7 +88,7 @@ static void wpan_phy_release(struct devi - static struct class wpan_phy_class = { - .name = "ieee802154", - .dev_release = wpan_phy_release, -- .dev_attrs = pmib_attrs, -+ .dev_groups = pmib_groups, - }; - - static DEFINE_MUTEX(wpan_phy_mutex); diff --git a/net-rfkill-convert-class-code-to-use-dev_groups.patch b/net-rfkill-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 71f66e171bacf6..00000000000000 --- a/net-rfkill-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,199 +0,0 @@ -From foo@baz Tue Jul 9 16:22:33 PDT 2013 -Date: Tue, 09 Jul 2013 16:22:33 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: net: rfkill: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the rfkill class code to use the -correct field. - -Cc: Johannes Berg <johannes@sipsolutions.net> -Cc: John W. Linville <linville@tuxdriver.com> -Cc: linux-wireless@vger.kernel.org -Cc: netdev@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - net/rfkill/core.c | 88 ++++++++++++++++++++++++------------------------------ - 1 file changed, 40 insertions(+), 48 deletions(-) - ---- a/net/rfkill/core.c -+++ b/net/rfkill/core.c -@@ -576,14 +576,14 @@ void rfkill_set_states(struct rfkill *rf - } - EXPORT_SYMBOL(rfkill_set_states); - --static ssize_t rfkill_name_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t name_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%s\n", rfkill->name); - } -+static DEVICE_ATTR_RO(name); - - static const char *rfkill_get_type_str(enum rfkill_type type) - { -@@ -611,54 +611,52 @@ static const char *rfkill_get_type_str(e - } - } - --static ssize_t rfkill_type_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t type_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%s\n", rfkill_get_type_str(rfkill->type)); - } -+static DEVICE_ATTR_RO(type); - --static ssize_t rfkill_idx_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t index_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%d\n", rfkill->idx); - } -+static DEVICE_ATTR_RO(index); - --static ssize_t rfkill_persistent_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t persistent_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%d\n", rfkill->persistent); - } -+static DEVICE_ATTR_RO(persistent); - --static ssize_t rfkill_hard_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t hard_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%d\n", (rfkill->state & RFKILL_BLOCK_HW) ? 1 : 0 ); - } -+static DEVICE_ATTR_RO(hard); - --static ssize_t rfkill_soft_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t soft_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%d\n", (rfkill->state & RFKILL_BLOCK_SW) ? 1 : 0 ); - } - --static ssize_t rfkill_soft_store(struct device *dev, -- struct device_attribute *attr, -- const char *buf, size_t count) -+static ssize_t soft_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct rfkill *rfkill = to_rfkill(dev); - unsigned long state; -@@ -680,6 +678,7 @@ static ssize_t rfkill_soft_store(struct - - return count; - } -+static DEVICE_ATTR_RW(soft); - - static u8 user_state_from_blocked(unsigned long state) - { -@@ -691,18 +690,16 @@ static u8 user_state_from_blocked(unsign - return RFKILL_USER_STATE_UNBLOCKED; - } - --static ssize_t rfkill_state_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t state_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct rfkill *rfkill = to_rfkill(dev); - - return sprintf(buf, "%d\n", user_state_from_blocked(rfkill->state)); - } - --static ssize_t rfkill_state_store(struct device *dev, -- struct device_attribute *attr, -- const char *buf, size_t count) -+static ssize_t state_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct rfkill *rfkill = to_rfkill(dev); - unsigned long state; -@@ -725,32 +722,27 @@ static ssize_t rfkill_state_store(struct - - return count; - } -+static DEVICE_ATTR_RW(state); - --static ssize_t rfkill_claim_show(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t claim_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - return sprintf(buf, "%d\n", 0); - } -+static DEVICE_ATTR_RO(claim); - --static ssize_t rfkill_claim_store(struct device *dev, -- struct device_attribute *attr, -- const char *buf, size_t count) --{ -- return -EOPNOTSUPP; --} -- --static struct device_attribute rfkill_dev_attrs[] = { -- __ATTR(name, S_IRUGO, rfkill_name_show, NULL), -- __ATTR(type, S_IRUGO, rfkill_type_show, NULL), -- __ATTR(index, S_IRUGO, rfkill_idx_show, NULL), -- __ATTR(persistent, S_IRUGO, rfkill_persistent_show, NULL), -- __ATTR(state, S_IRUGO|S_IWUSR, rfkill_state_show, rfkill_state_store), -- __ATTR(claim, S_IRUGO|S_IWUSR, rfkill_claim_show, rfkill_claim_store), -- __ATTR(soft, S_IRUGO|S_IWUSR, rfkill_soft_show, rfkill_soft_store), -- __ATTR(hard, S_IRUGO, rfkill_hard_show, NULL), -- __ATTR_NULL -+static struct attribute *rfkill_dev_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_type.attr, -+ &dev_attr_index.attr, -+ &dev_attr_persistent.attr, -+ &dev_attr_state.attr, -+ &dev_attr_claim.attr, -+ &dev_attr_soft.attr, -+ &dev_attr_hard.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(rfkill_dev); - - static void rfkill_release(struct device *dev) - { -@@ -830,7 +822,7 @@ static int rfkill_resume(struct device * - static struct class rfkill_class = { - .name = "rfkill", - .dev_release = rfkill_release, -- .dev_attrs = rfkill_dev_attrs, -+ .dev_groups = rfkill_dev_groups, - .dev_uevent = rfkill_dev_uevent, - .suspend = rfkill_suspend, - .resume = rfkill_resume, diff --git a/net-wireless-convert-class-code-to-use-dev_groups.patch b/net-wireless-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 1c15569d5ba047..00000000000000 --- a/net-wireless-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,75 +0,0 @@ -From foo@baz Tue Jul 9 16:21:34 PDT 2013 -Date: Tue, 09 Jul 2013 16:21:34 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: net: wireless: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the networking wireless class -code to use the correct field. - -Cc: Johannes Berg <johannes@sipsolutions.net> -Cc: John W. Linville <linville@tuxdriver.com> -Cc: linux-wireless@vger.kernel.org -Cc: netdev@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - net/wireless/sysfs.c | 23 +++++++++++++---------- - 1 file changed, 13 insertions(+), 10 deletions(-) - ---- a/net/wireless/sysfs.c -+++ b/net/wireless/sysfs.c -@@ -30,7 +30,8 @@ static ssize_t name ## _show(struct devi - char *buf) \ - { \ - return sprintf(buf, fmt "\n", dev_to_rdev(dev)->member); \ --} -+} \ -+static DEVICE_ATTR_RO(name) - - SHOW_FMT(index, "%d", wiphy_idx); - SHOW_FMT(macaddress, "%pM", wiphy.perm_addr); -@@ -42,7 +43,7 @@ static ssize_t name_show(struct device * - struct wiphy *wiphy = &dev_to_rdev(dev)->wiphy; - return sprintf(buf, "%s\n", dev_name(&wiphy->dev)); - } -- -+static DEVICE_ATTR_RO(name); - - static ssize_t addresses_show(struct device *dev, - struct device_attribute *attr, -@@ -60,15 +61,17 @@ static ssize_t addresses_show(struct dev - - return buf - start; - } -+static DEVICE_ATTR_RO(addresses); - --static struct device_attribute ieee80211_dev_attrs[] = { -- __ATTR_RO(index), -- __ATTR_RO(macaddress), -- __ATTR_RO(address_mask), -- __ATTR_RO(addresses), -- __ATTR_RO(name), -- {} -+static struct attribute *ieee80211_attrs[] = { -+ &dev_attr_index.attr, -+ &dev_attr_macaddress.attr, -+ &dev_attr_address_mask.attr, -+ &dev_attr_addresses.attr, -+ &dev_attr_name.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(ieee80211); - - static void wiphy_dev_release(struct device *dev) - { -@@ -146,7 +149,7 @@ struct class ieee80211_class = { - .name = "ieee80211", - .owner = THIS_MODULE, - .dev_release = wiphy_dev_release, -- .dev_attrs = ieee80211_dev_attrs, -+ .dev_groups = ieee80211_groups, - .dev_uevent = wiphy_uevent, - #ifdef CONFIG_PM - .suspend = wiphy_suspend, diff --git a/pci-convert-class-code-to-use-dev_groups.patch b/pci-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 73f40d843edfee..00000000000000 --- a/pci-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,102 +0,0 @@ -From foo@baz Tue Jul 9 15:12:13 PDT 2013 -Date: Tue, 09 Jul 2013 15:12:13 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PCI: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the PCI class code to use the -correct field. - -Cc: Bjorn Helgaas <bhelgaas@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/pci/pci-sysfs.c | 32 +++++++++++++++++++++----------- - drivers/pci/pci.h | 2 +- - drivers/pci/probe.c | 2 +- - 3 files changed, 23 insertions(+), 13 deletions(-) - ---- a/drivers/pci/pci-sysfs.c -+++ b/drivers/pci/pci-sysfs.c -@@ -131,19 +131,19 @@ static ssize_t pci_bus_show_cpuaffinity( - return ret; - } - --static inline ssize_t pci_bus_show_cpumaskaffinity(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t cpuaffinity_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - return pci_bus_show_cpuaffinity(dev, 0, attr, buf); - } -+static DEVICE_ATTR_RO(cpuaffinity); - --static inline ssize_t pci_bus_show_cpulistaffinity(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t cpulistaffinity_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - return pci_bus_show_cpuaffinity(dev, 1, attr, buf); - } -+static DEVICE_ATTR_RO(cpulistaffinity); - - /* show resources */ - static ssize_t -@@ -379,6 +379,7 @@ dev_bus_rescan_store(struct device *dev, - } - return count; - } -+static DEVICE_ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, dev_bus_rescan_store); - - #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI) - static ssize_t d3cold_allowed_store(struct device *dev, -@@ -514,11 +515,20 @@ struct device_attribute pci_dev_attrs[] - __ATTR_NULL, - }; - --struct device_attribute pcibus_dev_attrs[] = { -- __ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, dev_bus_rescan_store), -- __ATTR(cpuaffinity, S_IRUGO, pci_bus_show_cpumaskaffinity, NULL), -- __ATTR(cpulistaffinity, S_IRUGO, pci_bus_show_cpulistaffinity, NULL), -- __ATTR_NULL, -+static struct attribute *pcibus_attrs[] = { -+ &dev_attr_rescan.attr, -+ &dev_attr_cpuaffinity.attr, -+ &dev_attr_cpulistaffinity.attr, -+ NULL, -+}; -+ -+static const struct attribute_group pcibus_group = { -+ .attrs = pcibus_attrs, -+}; -+ -+const struct attribute_group *pcibus_groups[] = { -+ &pcibus_group, -+ NULL, - }; - - static ssize_t ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -151,7 +151,7 @@ static inline int pci_no_d1d2(struct pci - - } - extern struct device_attribute pci_dev_attrs[]; --extern struct device_attribute pcibus_dev_attrs[]; -+extern const struct attribute_group *pcibus_groups[]; - extern struct device_type pci_dev_type; - extern struct bus_attribute pci_bus_attrs[]; - ---- a/drivers/pci/probe.c -+++ b/drivers/pci/probe.c -@@ -96,7 +96,7 @@ static void release_pcibus_dev(struct de - static struct class pcibus_class = { - .name = "pci_bus", - .dev_release = &release_pcibus_dev, -- .dev_attrs = pcibus_dev_attrs, -+ .dev_groups = pcibus_groups, - }; - - static int __init pcibus_class_init(void) diff --git a/pps-convert-class-code-to-use-dev_groups.patch b/pps-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 7f8da06fae3ffa..00000000000000 --- a/pps-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,143 +0,0 @@ -From foo@baz Tue Jul 9 15:16:41 PDT 2013 -Date: Tue, 09 Jul 2013 15:16:42 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PPS: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the pps class code to use the -correct field. - -Cc: Rodolfo Giometti <giometti@enneenne.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/pps/pps.c | 2 - - drivers/pps/sysfs.c | 55 ++++++++++++++++++++++++++++----------------- - include/linux/pps_kernel.h | 2 - - 3 files changed, 37 insertions(+), 22 deletions(-) - ---- a/drivers/pps/pps.c -+++ b/drivers/pps/pps.c -@@ -406,7 +406,7 @@ static int __init pps_init(void) - pr_err("failed to allocate class\n"); - return PTR_ERR(pps_class); - } -- pps_class->dev_attrs = pps_attrs; -+ pps_class->dev_groups = pps_groups; - - err = alloc_chrdev_region(&pps_devt, 0, PPS_MAX_SOURCES, "pps"); - if (err < 0) { ---- a/drivers/pps/sysfs.c -+++ b/drivers/pps/sysfs.c -@@ -29,8 +29,8 @@ - * Attribute functions - */ - --static ssize_t pps_show_assert(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t assert_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - -@@ -41,9 +41,10 @@ static ssize_t pps_show_assert(struct de - (long long) pps->assert_tu.sec, pps->assert_tu.nsec, - pps->assert_sequence); - } -+static DEVICE_ATTR_RO(assert); - --static ssize_t pps_show_clear(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t clear_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - -@@ -54,45 +55,59 @@ static ssize_t pps_show_clear(struct dev - (long long) pps->clear_tu.sec, pps->clear_tu.nsec, - pps->clear_sequence); - } -+static DEVICE_ATTR_RO(clear); - --static ssize_t pps_show_mode(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t mode_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - - return sprintf(buf, "%4x\n", pps->info.mode); - } -+static DEVICE_ATTR_RO(mode); - --static ssize_t pps_show_echo(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t echo_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - - return sprintf(buf, "%d\n", !!pps->info.echo); - } -+static DEVICE_ATTR_RO(echo); - --static ssize_t pps_show_name(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t name_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - - return sprintf(buf, "%s\n", pps->info.name); - } -+static DEVICE_ATTR_RO(name); - --static ssize_t pps_show_path(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t path_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct pps_device *pps = dev_get_drvdata(dev); - - return sprintf(buf, "%s\n", pps->info.path); - } -+static DEVICE_ATTR_RO(path); - --struct device_attribute pps_attrs[] = { -- __ATTR(assert, S_IRUGO, pps_show_assert, NULL), -- __ATTR(clear, S_IRUGO, pps_show_clear, NULL), -- __ATTR(mode, S_IRUGO, pps_show_mode, NULL), -- __ATTR(echo, S_IRUGO, pps_show_echo, NULL), -- __ATTR(name, S_IRUGO, pps_show_name, NULL), -- __ATTR(path, S_IRUGO, pps_show_path, NULL), -- __ATTR_NULL, -+static struct attribute *pps_attrs[] = { -+ &dev_attr_assert.attr, -+ &dev_attr_clear.attr, -+ &dev_attr_mode.attr, -+ &dev_attr_echo.attr, -+ &dev_attr_name.attr, -+ &dev_attr_path.attr, -+ NULL, -+}; -+ -+static const struct attribute_group pps_group = { -+ .attrs = pps_attrs, -+}; -+ -+const struct attribute_group *pps_groups[] = { -+ &pps_group, -+ NULL, - }; ---- a/include/linux/pps_kernel.h -+++ b/include/linux/pps_kernel.h -@@ -80,7 +80,7 @@ struct pps_device { - * Global variables - */ - --extern struct device_attribute pps_attrs[]; -+extern const struct attribute_group *pps_groups[]; - - /* - * Internal functions. diff --git a/ptp-convert-class-code-to-use-dev_groups.patch b/ptp-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 181426831d3ee9..00000000000000 --- a/ptp-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,109 +0,0 @@ -From foo@baz Tue Jul 9 15:17:24 PDT 2013 -Date: Tue, 09 Jul 2013 15:17:24 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PTP: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the ptp class code to use the -correct field. - -Cc: Richard Cochran <richardcochran@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/ptp/ptp_clock.c | 2 - - drivers/ptp/ptp_private.h | 2 - - drivers/ptp/ptp_sysfs.c | 51 ++++++++++++++++++++++++++-------------------- - 3 files changed, 31 insertions(+), 24 deletions(-) - ---- a/drivers/ptp/ptp_clock.c -+++ b/drivers/ptp/ptp_clock.c -@@ -330,7 +330,7 @@ static int __init ptp_init(void) - goto no_region; - } - -- ptp_class->dev_attrs = ptp_dev_attrs; -+ ptp_class->dev_groups = ptp_groups; - pr_info("PTP clock support registered\n"); - return 0; - ---- a/drivers/ptp/ptp_private.h -+++ b/drivers/ptp/ptp_private.h -@@ -84,7 +84,7 @@ uint ptp_poll(struct posix_clock *pc, - * see ptp_sysfs.c - */ - --extern struct device_attribute ptp_dev_attrs[]; -+extern const struct attribute_group *ptp_groups[]; - - int ptp_cleanup_sysfs(struct ptp_clock *ptp); - ---- a/drivers/ptp/ptp_sysfs.c -+++ b/drivers/ptp/ptp_sysfs.c -@@ -27,36 +27,43 @@ static ssize_t clock_name_show(struct de - struct ptp_clock *ptp = dev_get_drvdata(dev); - return snprintf(page, PAGE_SIZE-1, "%s\n", ptp->info->name); - } -+static DEVICE_ATTR(clock_name, 0444, clock_name_show, NULL); - --#define PTP_SHOW_INT(name) \ --static ssize_t name##_show(struct device *dev, \ -+#define PTP_SHOW_INT(name, var) \ -+static ssize_t var##_show(struct device *dev, \ - struct device_attribute *attr, char *page) \ - { \ - struct ptp_clock *ptp = dev_get_drvdata(dev); \ -- return snprintf(page, PAGE_SIZE-1, "%d\n", ptp->info->name); \ --} -+ return snprintf(page, PAGE_SIZE-1, "%d\n", ptp->info->var); \ -+} \ -+static DEVICE_ATTR(name, 0444, var##_show, NULL); - --PTP_SHOW_INT(max_adj); --PTP_SHOW_INT(n_alarm); --PTP_SHOW_INT(n_ext_ts); --PTP_SHOW_INT(n_per_out); --PTP_SHOW_INT(pps); -- --#define PTP_RO_ATTR(_var, _name) { \ -- .attr = { .name = __stringify(_name), .mode = 0444 }, \ -- .show = _var##_show, \ --} -+PTP_SHOW_INT(max_adjustment, max_adj); -+PTP_SHOW_INT(n_alarms, n_alarm); -+PTP_SHOW_INT(n_external_timestamps, n_ext_ts); -+PTP_SHOW_INT(n_periodic_outputs, n_per_out); -+PTP_SHOW_INT(pps_available, pps); -+ -+static struct attribute *ptp_attrs[] = { -+ &dev_attr_clock_name.attr, -+ &dev_attr_max_adjustment.attr, -+ &dev_attr_n_alarms.attr, -+ &dev_attr_n_external_timestamps.attr, -+ &dev_attr_n_periodic_outputs.attr, -+ &dev_attr_pps_available.attr, -+ NULL, -+}; - --struct device_attribute ptp_dev_attrs[] = { -- PTP_RO_ATTR(clock_name, clock_name), -- PTP_RO_ATTR(max_adj, max_adjustment), -- PTP_RO_ATTR(n_alarm, n_alarms), -- PTP_RO_ATTR(n_ext_ts, n_external_timestamps), -- PTP_RO_ATTR(n_per_out, n_periodic_outputs), -- PTP_RO_ATTR(pps, pps_available), -- __ATTR_NULL, -+static const struct attribute_group ptp_group = { -+ .attrs = ptp_attrs, - }; - -+const struct attribute_group *ptp_groups[] = { -+ &ptp_group, -+ NULL, -+}; -+ -+ - static ssize_t extts_enable_store(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) diff --git a/pwm-convert-class-code-to-use-dev_groups.patch b/pwm-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index ec507cc32af9dc..00000000000000 --- a/pwm-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,65 +0,0 @@ -From foo@baz Wed Jul 24 14:30:57 PDT 2013 -Date: Wed, 24 Jul 2013 14:30:57 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: pwm: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the pwm class code to use the -correct field. - -Cc: Thierry Reding <thierry.reding@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/pwm/sysfs.c | 21 ++++++++++++--------- - 1 file changed, 12 insertions(+), 9 deletions(-) - ---- a/drivers/pwm/sysfs.c -+++ b/drivers/pwm/sysfs.c -@@ -268,6 +268,7 @@ static ssize_t pwm_export_store(struct d - - return ret ? : len; - } -+static DEVICE_ATTR(export, 0200, NULL, pwm_export_store); - - static ssize_t pwm_unexport_store(struct device *parent, - struct device_attribute *attr, -@@ -288,27 +289,29 @@ static ssize_t pwm_unexport_store(struct - - return ret ? : len; - } -+static DEVICE_ATTR(unexport, 0200, NULL, pwm_unexport_store); - --static ssize_t pwm_npwm_show(struct device *parent, -- struct device_attribute *attr, -- char *buf) -+static ssize_t npwm_show(struct device *parent, struct device_attribute *attr, -+ char *buf) - { - const struct pwm_chip *chip = dev_get_drvdata(parent); - - return sprintf(buf, "%u\n", chip->npwm); - } -+static DEVICE_ATTR_RO(npwm); - --static struct device_attribute pwm_chip_attrs[] = { -- __ATTR(export, 0200, NULL, pwm_export_store), -- __ATTR(unexport, 0200, NULL, pwm_unexport_store), -- __ATTR(npwm, 0444, pwm_npwm_show, NULL), -- __ATTR_NULL, -+static struct attribute *pwm_chip_attrs[] = { -+ &dev_attr_export.attr, -+ &dev_attr_unexport.attr, -+ &dev_attr_npwm.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pwm_chip); - - static struct class pwm_class = { - .name = "pwm", - .owner = THIS_MODULE, -- .dev_attrs = pwm_chip_attrs, -+ .dev_groups = pwm_chip_groups, - }; - - static int pwmchip_sysfs_match(struct device *parent, const void *data) diff --git a/qlcnic_sysfs.patch b/qlcnic_sysfs.patch index ca3871ede5552e..1905df3aef1477 100644 --- a/qlcnic_sysfs.patch +++ b/qlcnic_sysfs.patch @@ -1,8 +1,10 @@ -diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c -index 10ed82b3..6cc8f15f 100644 +--- + drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c | 74 +++++++++++----------- + 1 file changed, 40 insertions(+), 34 deletions(-) + --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c -@@ -33,9 +33,9 @@ int qlcnicvf_config_led(struct qlcnic_adapter *adapter, u32 state, u32 rate) +@@ -33,9 +33,9 @@ int qlcnicvf_config_led(struct qlcnic_ad return -EOPNOTSUPP; } @@ -27,7 +29,7 @@ index 10ed82b3..6cc8f15f 100644 { struct qlcnic_adapter *adapter = dev_get_drvdata(dev); int bridged_mode = 0; -@@ -69,10 +68,11 @@ static ssize_t qlcnic_show_bridged_mode(struct device *dev, +@@ -69,10 +68,11 @@ static ssize_t qlcnic_show_bridged_mode( return sprintf(buf, "%d\n", bridged_mode); } @@ -42,7 +44,7 @@ index 10ed82b3..6cc8f15f 100644 { struct qlcnic_adapter *adapter = dev_get_drvdata(dev); unsigned long new; -@@ -86,12 +86,13 @@ static ssize_t qlcnic_store_diag_mode(struct device *dev, +@@ -86,12 +86,13 @@ static ssize_t qlcnic_store_diag_mode(st return len; } @@ -70,7 +72,7 @@ index 10ed82b3..6cc8f15f 100644 { struct qlcnic_adapter *adapter = dev_get_drvdata(dev); int err = 0; -@@ -244,8 +244,8 @@ static ssize_t qlcnic_store_beacon(struct device *dev, +@@ -244,8 +244,8 @@ static ssize_t qlcnic_store_beacon(struc return err; } @@ -81,7 +83,7 @@ index 10ed82b3..6cc8f15f 100644 { struct qlcnic_adapter *adapter = dev_get_drvdata(dev); -@@ -273,6 +273,7 @@ static int qlcnic_sysfs_validate_crb(struct qlcnic_adapter *adapter, +@@ -273,6 +273,7 @@ static int qlcnic_sysfs_validate_crb(str return 0; } @@ -89,7 +91,7 @@ index 10ed82b3..6cc8f15f 100644 static ssize_t qlcnic_sysfs_read_crb(struct file *filp, struct kobject *kobj, struct bin_attribute *attr, char *buf, -@@ -1155,24 +1156,6 @@ static ssize_t qlcnic_83xx_sysfs_flash_write_handler(struct file *filp, +@@ -1155,24 +1156,6 @@ static ssize_t qlcnic_83xx_sysfs_flash_w return size; } @@ -114,7 +116,7 @@ index 10ed82b3..6cc8f15f 100644 static struct bin_attribute bin_attr_crb = { .attr = {.name = "crb", .mode = (S_IRUGO | S_IWUSR)}, .size = 0, -@@ -1236,6 +1219,24 @@ static struct bin_attribute bin_attr_flash = { +@@ -1236,6 +1219,24 @@ static struct bin_attribute bin_attr_fla .write = qlcnic_83xx_sysfs_flash_write_handler, }; @@ -139,7 +141,7 @@ index 10ed82b3..6cc8f15f 100644 void qlcnic_create_sysfs_entries(struct qlcnic_adapter *adapter) { struct device *dev = &adapter->pdev->dev; -@@ -1257,6 +1258,11 @@ void qlcnic_remove_sysfs_entries(struct qlcnic_adapter *adapter) +@@ -1257,6 +1258,11 @@ void qlcnic_remove_sysfs_entries(struct void qlcnic_create_diag_entries(struct qlcnic_adapter *adapter) { struct device *dev = &adapter->pdev->dev; diff --git a/regulator-convert-class-code-to-use-dev_groups.patch b/regulator-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 72e68d60131728..00000000000000 --- a/regulator-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,94 +0,0 @@ -From foo@baz Tue Jul 9 15:18:23 PDT 2013 -Date: Tue, 09 Jul 2013 15:18:23 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: regulator: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the regulator class code to use -the correct field. - -Cc: Liam Girdwood <lgirdwood@gmail.com> -Cc: Mark Brown <broonie@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/regulator/core.c | 28 ++++++++++++++++------------ - 1 file changed, 16 insertions(+), 12 deletions(-) - ---- a/drivers/regulator/core.c -+++ b/drivers/regulator/core.c -@@ -323,13 +323,14 @@ static ssize_t regulator_uA_show(struct - } - static DEVICE_ATTR(microamps, 0444, regulator_uA_show, NULL); - --static ssize_t regulator_name_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t name_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct regulator_dev *rdev = dev_get_drvdata(dev); - - return sprintf(buf, "%s\n", rdev_get_name(rdev)); - } -+static DEVICE_ATTR_RO(name); - - static ssize_t regulator_print_opmode(char *buf, int mode) - { -@@ -489,15 +490,16 @@ static ssize_t regulator_total_uA_show(s - } - static DEVICE_ATTR(requested_microamps, 0444, regulator_total_uA_show, NULL); - --static ssize_t regulator_num_users_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t num_users_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct regulator_dev *rdev = dev_get_drvdata(dev); - return sprintf(buf, "%d\n", rdev->use_count); - } -+static DEVICE_ATTR_RO(num_users); - --static ssize_t regulator_type_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t type_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct regulator_dev *rdev = dev_get_drvdata(dev); - -@@ -509,6 +511,7 @@ static ssize_t regulator_type_show(struc - } - return sprintf(buf, "unknown\n"); - } -+static DEVICE_ATTR_RO(type); - - static ssize_t regulator_suspend_mem_uV_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -632,12 +635,13 @@ static DEVICE_ATTR(bypass, 0444, - * These are the only attributes are present for all regulators. - * Other attributes are a function of regulator functionality. - */ --static struct device_attribute regulator_dev_attrs[] = { -- __ATTR(name, 0444, regulator_name_show, NULL), -- __ATTR(num_users, 0444, regulator_num_users_show, NULL), -- __ATTR(type, 0444, regulator_type_show, NULL), -- __ATTR_NULL, -+static struct attribute *regulator_dev_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_num_users.attr, -+ &dev_attr_type.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(regulator_dev); - - static void regulator_dev_release(struct device *dev) - { -@@ -648,7 +652,7 @@ static void regulator_dev_release(struct - static struct class regulator_class = { - .name = "regulator", - .dev_release = regulator_dev_release, -- .dev_attrs = regulator_dev_attrs, -+ .dev_groups = regulator_dev_groups, - }; - - /* Calculate the new optimum regulator operating mode based on the new total diff --git a/rtc-convert-class-code-to-use-dev_groups.patch b/rtc-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 422b897ae3e8ef..00000000000000 --- a/rtc-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,137 +0,0 @@ -From foo@baz Tue Jul 9 15:19:10 PDT 2013 -Date: Tue, 09 Jul 2013 15:19:10 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: rtc: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the rtc class code to use the -correct field. - -Cc: Alessandro Zummo <a.zummo@towertech.it> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/rtc/rtc-sysfs.c | 46 +++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - ---- a/drivers/rtc/rtc-sysfs.c -+++ b/drivers/rtc/rtc-sysfs.c -@@ -25,15 +25,14 @@ - */ - - static ssize_t --rtc_sysfs_show_name(struct device *dev, struct device_attribute *attr, -- char *buf) -+name_show(struct device *dev, struct device_attribute *attr, char *buf) - { - return sprintf(buf, "%s\n", to_rtc_device(dev)->name); - } -+static DEVICE_ATTR_RO(name); - - static ssize_t --rtc_sysfs_show_date(struct device *dev, struct device_attribute *attr, -- char *buf) -+date_show(struct device *dev, struct device_attribute *attr, char *buf) - { - ssize_t retval; - struct rtc_time tm; -@@ -46,10 +45,10 @@ rtc_sysfs_show_date(struct device *dev, - - return retval; - } -+static DEVICE_ATTR_RO(date); - - static ssize_t --rtc_sysfs_show_time(struct device *dev, struct device_attribute *attr, -- char *buf) -+time_show(struct device *dev, struct device_attribute *attr, char *buf) - { - ssize_t retval; - struct rtc_time tm; -@@ -62,10 +61,10 @@ rtc_sysfs_show_time(struct device *dev, - - return retval; - } -+static DEVICE_ATTR_RO(time); - - static ssize_t --rtc_sysfs_show_since_epoch(struct device *dev, struct device_attribute *attr, -- char *buf) -+since_epoch_show(struct device *dev, struct device_attribute *attr, char *buf) - { - ssize_t retval; - struct rtc_time tm; -@@ -79,16 +78,16 @@ rtc_sysfs_show_since_epoch(struct device - - return retval; - } -+static DEVICE_ATTR_RO(since_epoch); - - static ssize_t --rtc_sysfs_show_max_user_freq(struct device *dev, struct device_attribute *attr, -- char *buf) -+max_user_freq_show(struct device *dev, struct device_attribute *attr, char *buf) - { - return sprintf(buf, "%d\n", to_rtc_device(dev)->max_user_freq); - } - - static ssize_t --rtc_sysfs_set_max_user_freq(struct device *dev, struct device_attribute *attr, -+max_user_freq_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t n) - { - struct rtc_device *rtc = to_rtc_device(dev); -@@ -101,6 +100,7 @@ rtc_sysfs_set_max_user_freq(struct devic - - return n; - } -+static DEVICE_ATTR_RW(max_user_freq); - - /** - * rtc_sysfs_show_hctosys - indicate if the given RTC set the system time -@@ -109,8 +109,7 @@ rtc_sysfs_set_max_user_freq(struct devic - * boot or resume event. - */ - static ssize_t --rtc_sysfs_show_hctosys(struct device *dev, struct device_attribute *attr, -- char *buf) -+hctosys_show(struct device *dev, struct device_attribute *attr, char *buf) - { - #ifdef CONFIG_RTC_HCTOSYS_DEVICE - if (rtc_hctosys_ret == 0 && -@@ -121,17 +120,18 @@ rtc_sysfs_show_hctosys(struct device *de - #endif - return sprintf(buf, "0\n"); - } -+static DEVICE_ATTR_RO(hctosys); - --static struct device_attribute rtc_attrs[] = { -- __ATTR(name, S_IRUGO, rtc_sysfs_show_name, NULL), -- __ATTR(date, S_IRUGO, rtc_sysfs_show_date, NULL), -- __ATTR(time, S_IRUGO, rtc_sysfs_show_time, NULL), -- __ATTR(since_epoch, S_IRUGO, rtc_sysfs_show_since_epoch, NULL), -- __ATTR(max_user_freq, S_IRUGO | S_IWUSR, rtc_sysfs_show_max_user_freq, -- rtc_sysfs_set_max_user_freq), -- __ATTR(hctosys, S_IRUGO, rtc_sysfs_show_hctosys, NULL), -- { }, -+static struct attribute *rtc_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_date.attr, -+ &dev_attr_time.attr, -+ &dev_attr_since_epoch.attr, -+ &dev_attr_max_user_freq.attr, -+ &dev_attr_hctosys.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(rtc); - - static ssize_t - rtc_sysfs_show_wakealarm(struct device *dev, struct device_attribute *attr, -@@ -261,5 +261,5 @@ void rtc_sysfs_del_device(struct rtc_dev - - void __init rtc_sysfs_init(struct class *rtc_class) - { -- rtc_class->dev_attrs = rtc_attrs; -+ rtc_class->dev_groups = rtc_groups; - } diff --git a/scsi-osd-convert-class-code-to-use-dev_groups.patch b/scsi-osd-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index f569b9a7080e1b..00000000000000 --- a/scsi-osd-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz Tue Jul 9 15:35:52 PDT 2013 -Date: Tue, 09 Jul 2013 15:35:52 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: SCSI: OSD: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the scsi osd class code to use -the correct field. - -Cc: Boaz Harrosh <bharrosh@panasas.com> -Cc: Benny Halevy <bhalevy@tonian.com> -Cc: James E.J. Bottomley <JBottomley@parallels.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/scsi/osd/osd_uld.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/drivers/scsi/osd/osd_uld.c -+++ b/drivers/scsi/osd/osd_uld.c -@@ -107,6 +107,7 @@ static ssize_t osdname_show(struct devic - class_dev); - return sprintf(buf, "%s\n", ould->odi.osdname); - } -+static DEVICE_ATTR_RO(osdname); - - static ssize_t systemid_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -117,17 +118,19 @@ static ssize_t systemid_show(struct devi - memcpy(buf, ould->odi.systemid, ould->odi.systemid_len); - return ould->odi.systemid_len; - } -+static DEVICE_ATTR_RO(systemid); - --static struct device_attribute osd_uld_attrs[] = { -- __ATTR(osdname, S_IRUGO, osdname_show, NULL), -- __ATTR(systemid, S_IRUGO, systemid_show, NULL), -- __ATTR_NULL, -+static struct attribute *osd_uld_attrs[] = { -+ &dev_attr_osdname.attr, -+ &dev_attr_systemid.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(osd_uld); - - static struct class osd_uld_class = { - .owner = THIS_MODULE, - .name = "scsi_osd", -- .dev_attrs = osd_uld_attrs, -+ .dev_groups = osd_uld_groups, - }; - - /* diff --git a/scsi-sd-convert-class-code-to-use-dev_groups.patch b/scsi-sd-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 42effba73bc6d1..00000000000000 --- a/scsi-sd-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,314 +0,0 @@ -From foo@baz Tue Jul 9 15:36:59 PDT 2013 -Date: Tue, 09 Jul 2013 15:36:59 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: SCSI: sd: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the scsi disk class code to use -the correct field. - -It required some functions to be moved around to place the show and -store functions next to each other, the old order seemed to make no -sense at all. - -Cc: James E.J. Bottomley <JBottomley@parallels.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/scsi/sd.c | 147 +++++++++++++++++++++++++++--------------------------- - 1 file changed, 74 insertions(+), 73 deletions(-) - ---- a/drivers/scsi/sd.c -+++ b/drivers/scsi/sd.c -@@ -132,8 +132,8 @@ static const char *sd_cache_types[] = { - }; - - static ssize_t --sd_store_cache_type(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+cache_type_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - int i, ct = -1, rcd, wce, sp; - struct scsi_disk *sdkp = to_scsi_disk(dev); -@@ -199,8 +199,18 @@ sd_store_cache_type(struct device *dev, - } - - static ssize_t --sd_store_manage_start_stop(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+manage_start_stop_show(struct device *dev, struct device_attribute *attr, -+ char *buf) -+{ -+ struct scsi_disk *sdkp = to_scsi_disk(dev); -+ struct scsi_device *sdp = sdkp->device; -+ -+ return snprintf(buf, 20, "%u\n", sdp->manage_start_stop); -+} -+ -+static ssize_t -+manage_start_stop_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct scsi_device *sdp = sdkp->device; -@@ -212,10 +222,19 @@ sd_store_manage_start_stop(struct device - - return count; - } -+static DEVICE_ATTR_RW(manage_start_stop); -+ -+static ssize_t -+allow_restart_show(struct device *dev, struct device_attribute *attr, char *buf) -+{ -+ struct scsi_disk *sdkp = to_scsi_disk(dev); -+ -+ return snprintf(buf, 40, "%d\n", sdkp->device->allow_restart); -+} - - static ssize_t --sd_store_allow_restart(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+allow_restart_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct scsi_device *sdp = sdkp->device; -@@ -230,47 +249,30 @@ sd_store_allow_restart(struct device *de - - return count; - } -+static DEVICE_ATTR_RW(allow_restart); - - static ssize_t --sd_show_cache_type(struct device *dev, struct device_attribute *attr, -- char *buf) -+cache_type_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - int ct = sdkp->RCD + 2*sdkp->WCE; - - return snprintf(buf, 40, "%s\n", sd_cache_types[ct]); - } -+static DEVICE_ATTR_RW(cache_type); - - static ssize_t --sd_show_fua(struct device *dev, struct device_attribute *attr, char *buf) -+FUA_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - - return snprintf(buf, 20, "%u\n", sdkp->DPOFUA); - } -+static DEVICE_ATTR_RO(FUA); - - static ssize_t --sd_show_manage_start_stop(struct device *dev, struct device_attribute *attr, -- char *buf) --{ -- struct scsi_disk *sdkp = to_scsi_disk(dev); -- struct scsi_device *sdp = sdkp->device; -- -- return snprintf(buf, 20, "%u\n", sdp->manage_start_stop); --} -- --static ssize_t --sd_show_allow_restart(struct device *dev, struct device_attribute *attr, -- char *buf) --{ -- struct scsi_disk *sdkp = to_scsi_disk(dev); -- -- return snprintf(buf, 40, "%d\n", sdkp->device->allow_restart); --} -- --static ssize_t --sd_show_protection_type(struct device *dev, struct device_attribute *attr, -- char *buf) -+protection_type_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - -@@ -278,8 +280,8 @@ sd_show_protection_type(struct device *d - } - - static ssize_t --sd_store_protection_type(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+protection_type_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - unsigned int val; -@@ -298,10 +300,11 @@ sd_store_protection_type(struct device * - - return count; - } -+static DEVICE_ATTR_RW(protection_type); - - static ssize_t --sd_show_protection_mode(struct device *dev, struct device_attribute *attr, -- char *buf) -+protection_mode_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct scsi_device *sdp = sdkp->device; -@@ -320,24 +323,26 @@ sd_show_protection_mode(struct device *d - - return snprintf(buf, 20, "%s%u\n", dix ? "dix" : "dif", dif); - } -+static DEVICE_ATTR_RO(protection_mode); - - static ssize_t --sd_show_app_tag_own(struct device *dev, struct device_attribute *attr, -- char *buf) -+app_tag_own_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - - return snprintf(buf, 20, "%u\n", sdkp->ATO); - } -+static DEVICE_ATTR_RO(app_tag_own); - - static ssize_t --sd_show_thin_provisioning(struct device *dev, struct device_attribute *attr, -- char *buf) -+thin_provisioning_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - - return snprintf(buf, 20, "%u\n", sdkp->lbpme); - } -+static DEVICE_ATTR_RO(thin_provisioning); - - static const char *lbp_mode[] = { - [SD_LBP_FULL] = "full", -@@ -349,8 +354,8 @@ static const char *lbp_mode[] = { - }; - - static ssize_t --sd_show_provisioning_mode(struct device *dev, struct device_attribute *attr, -- char *buf) -+provisioning_mode_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - -@@ -358,8 +363,8 @@ sd_show_provisioning_mode(struct device - } - - static ssize_t --sd_store_provisioning_mode(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+provisioning_mode_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct scsi_device *sdp = sdkp->device; -@@ -385,10 +390,11 @@ sd_store_provisioning_mode(struct device - - return count; - } -+static DEVICE_ATTR_RW(provisioning_mode); - - static ssize_t --sd_show_max_medium_access_timeouts(struct device *dev, -- struct device_attribute *attr, char *buf) -+max_medium_access_timeouts_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - -@@ -396,9 +402,9 @@ sd_show_max_medium_access_timeouts(struc - } - - static ssize_t --sd_store_max_medium_access_timeouts(struct device *dev, -- struct device_attribute *attr, -- const char *buf, size_t count) -+max_medium_access_timeouts_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, -+ size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - int err; -@@ -410,10 +416,11 @@ sd_store_max_medium_access_timeouts(stru - - return err ? err : count; - } -+static DEVICE_ATTR_RW(max_medium_access_timeouts); - - static ssize_t --sd_show_write_same_blocks(struct device *dev, struct device_attribute *attr, -- char *buf) -+max_write_same_blocks_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - -@@ -421,8 +428,8 @@ sd_show_write_same_blocks(struct device - } - - static ssize_t --sd_store_write_same_blocks(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+max_write_same_blocks_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct scsi_device *sdp = sdkp->device; -@@ -451,35 +458,29 @@ sd_store_write_same_blocks(struct device - - return count; - } -+static DEVICE_ATTR_RW(max_write_same_blocks); - --static struct device_attribute sd_disk_attrs[] = { -- __ATTR(cache_type, S_IRUGO|S_IWUSR, sd_show_cache_type, -- sd_store_cache_type), -- __ATTR(FUA, S_IRUGO, sd_show_fua, NULL), -- __ATTR(allow_restart, S_IRUGO|S_IWUSR, sd_show_allow_restart, -- sd_store_allow_restart), -- __ATTR(manage_start_stop, S_IRUGO|S_IWUSR, sd_show_manage_start_stop, -- sd_store_manage_start_stop), -- __ATTR(protection_type, S_IRUGO|S_IWUSR, sd_show_protection_type, -- sd_store_protection_type), -- __ATTR(protection_mode, S_IRUGO, sd_show_protection_mode, NULL), -- __ATTR(app_tag_own, S_IRUGO, sd_show_app_tag_own, NULL), -- __ATTR(thin_provisioning, S_IRUGO, sd_show_thin_provisioning, NULL), -- __ATTR(provisioning_mode, S_IRUGO|S_IWUSR, sd_show_provisioning_mode, -- sd_store_provisioning_mode), -- __ATTR(max_write_same_blocks, S_IRUGO|S_IWUSR, -- sd_show_write_same_blocks, sd_store_write_same_blocks), -- __ATTR(max_medium_access_timeouts, S_IRUGO|S_IWUSR, -- sd_show_max_medium_access_timeouts, -- sd_store_max_medium_access_timeouts), -- __ATTR_NULL, -+static struct attribute *sd_disk_attrs[] = { -+ &dev_attr_cache_type.attr, -+ &dev_attr_FUA.attr, -+ &dev_attr_allow_restart.attr, -+ &dev_attr_manage_start_stop.attr, -+ &dev_attr_protection_type.attr, -+ &dev_attr_protection_mode.attr, -+ &dev_attr_app_tag_own.attr, -+ &dev_attr_thin_provisioning.attr, -+ &dev_attr_provisioning_mode.attr, -+ &dev_attr_max_write_same_blocks.attr, -+ &dev_attr_max_medium_access_timeouts.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(sd_disk); - - static struct class sd_disk_class = { - .name = "scsi_disk", - .owner = THIS_MODULE, - .dev_release = scsi_disk_release, -- .dev_attrs = sd_disk_attrs, -+ .dev_groups = sd_disk_groups, - }; - - static const struct dev_pm_ops sd_pm_ops = { diff --git a/scsi-st-convert-class-code-to-use-dev_groups.patch b/scsi-st-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index bf3a01ed1b5e2e..00000000000000 --- a/scsi-st-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,96 +0,0 @@ -From foo@baz Tue Jul 9 15:38:50 PDT 2013 -Date: Tue, 09 Jul 2013 15:38:50 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: SCSI: st: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the scsi tape class code to use -the correct field. - -Cc: Kai Mäkisara <Kai.Makisara@kolumbus.fi> -Cc: James E.J. Bottomley <JBottomley@parallels.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/scsi/st.c | 25 +++++++++++++++---------- - 1 file changed, 15 insertions(+), 10 deletions(-) - ---- a/drivers/scsi/st.c -+++ b/drivers/scsi/st.c -@@ -82,7 +82,7 @@ static int try_rdio = 1; - static int try_wdio = 1; - - static struct class st_sysfs_class; --static struct device_attribute st_dev_attrs[]; -+static const struct attribute_group *st_dev_groups[]; - - MODULE_AUTHOR("Kai Makisara"); - MODULE_DESCRIPTION("SCSI tape (st) driver"); -@@ -4274,7 +4274,7 @@ static void scsi_tape_release(struct kre - - static struct class st_sysfs_class = { - .name = "scsi_tape", -- .dev_attrs = st_dev_attrs, -+ .dev_groups = st_dev_groups, - }; - - static int __init init_st(void) -@@ -4408,6 +4408,7 @@ defined_show(struct device *dev, struct - l = snprintf(buf, PAGE_SIZE, "%d\n", STm->defined); - return l; - } -+static DEVICE_ATTR_RO(defined); - - static ssize_t - default_blksize_show(struct device *dev, struct device_attribute *attr, -@@ -4419,7 +4420,7 @@ default_blksize_show(struct device *dev, - l = snprintf(buf, PAGE_SIZE, "%d\n", STm->default_blksize); - return l; - } -- -+static DEVICE_ATTR_RO(default_blksize); - - static ssize_t - default_density_show(struct device *dev, struct device_attribute *attr, -@@ -4433,6 +4434,7 @@ default_density_show(struct device *dev, - l = snprintf(buf, PAGE_SIZE, fmt, STm->default_density); - return l; - } -+static DEVICE_ATTR_RO(default_density); - - static ssize_t - default_compression_show(struct device *dev, struct device_attribute *attr, -@@ -4444,6 +4446,7 @@ default_compression_show(struct device * - l = snprintf(buf, PAGE_SIZE, "%d\n", STm->default_compression - 1); - return l; - } -+static DEVICE_ATTR_RO(default_compression); - - static ssize_t - options_show(struct device *dev, struct device_attribute *attr, char *buf) -@@ -4472,15 +4475,17 @@ options_show(struct device *dev, struct - l = snprintf(buf, PAGE_SIZE, "0x%08x\n", options); - return l; - } -+static DEVICE_ATTR_RO(options); - --static struct device_attribute st_dev_attrs[] = { -- __ATTR_RO(defined), -- __ATTR_RO(default_blksize), -- __ATTR_RO(default_density), -- __ATTR_RO(default_compression), -- __ATTR_RO(options), -- __ATTR_NULL, -+static struct attribute *st_dev_attrs[] = { -+ &dev_attr_defined.attr, -+ &dev_attr_default_blksize.attr, -+ &dev_attr_default_density.attr, -+ &dev_attr_default_compression.attr, -+ &dev_attr_options.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(st_dev); - - /* The following functions may be useful for a larger audience. */ - static int sgl_map_user_pages(struct st_buffer *STbp, diff --git a/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch b/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch index a4fa431cc339ca..c9a0e924a3a0a6 100644 --- a/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch +++ b/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch @@ -98,7 +98,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> static int skip_tx_en_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_8250_port *port, int idx) -@@ -2254,6 +2308,27 @@ static struct pci_serial_quirk pci_seria +@@ -2255,6 +2309,27 @@ static struct pci_serial_quirk pci_seria .subdevice = PCI_ANY_ID, .setup = pci_brcm_trumanage_setup, }, @@ -126,7 +126,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> /* * Default "match everything" terminator entry -@@ -2451,6 +2526,9 @@ enum pci_board_num_t { +@@ -2452,6 +2527,9 @@ enum pci_board_num_t { pbn_omegapci, pbn_NETMOS9900_2s_115200, pbn_brcm_trumanage, @@ -136,7 +136,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> }; /* -@@ -3201,6 +3279,24 @@ static struct pciserial_board pci_boards +@@ -3202,6 +3280,24 @@ static struct pciserial_board pci_boards .reg_shift = 2, .base_baud = 115200, }, @@ -161,7 +161,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> }; static const struct pci_device_id blacklist[] = { -@@ -3361,14 +3457,15 @@ pciserial_init_ports(struct pci_dev *dev +@@ -3362,14 +3458,15 @@ pciserial_init_ports(struct pci_dev *dev if (quirk->setup(priv, board, &uart, i)) break; @@ -182,7 +182,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> break; } } -@@ -4911,6 +5008,11 @@ static struct pci_device_id serial_pci_t +@@ -4918,6 +5015,11 @@ static struct pci_device_id serial_pci_t 0, 0, pbn_exar_XR17V358 }, @@ -2,40 +2,11 @@ xen-disable-clock-timer-when-shutting-down.patch serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch # patches already in my git trees, but still here so I don't loose them. -kobject-delayed-kobject-release-help-find-buggy-drivers.patch -applied/misc-c2port-use-dev_bin_attrs-instead-of-hand-coding-it.patch # usb DEBUG cleanups -applied/usb-ldusb-remove-custom-dbg_info-macro.patch -applied/usb-legotower-remove-unneeded-tracing-macros.patch -applied/usb-legousbtower-remove-custom-debug-macro.patch -applied/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch -applied/usb-legotower-remove-direct-calls-to-printk.patch -applied/usb-adutux-remove-unneeded-tracing-macros.patch -applied/usb-adutux-remove-custom-debug-macro.patch -applied/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch -applied/usb-adutux-remove-direct-calls-to-printk.patch -applied/usb-misc-remove-config_usb_debug-from-makefile.patch - -applied/usb-usbatm-remove-unused-udsl_assert-macro.patch -applied/usb-usbatm-remove-unneeded-trace-printk-calls.patch -applied/usb-usbatm-don-t-rely-on-config_usb_debug.patch -applied/usb-usbatm-move-the-atm_dbg-call-to-use-dynamic-debug.patch -applied/usb-usbatm-remove-config_usb_debug-dependancy.patch - -applied/usb-phy-remove-custom-dbg-macro.patch -applied/usb-phy-remove-config_usb_debug-usage.patch -applied/usb-gadget-fix-up-comment.patch -applied/usb-isp1362-remove-unused-_bug_on-calls.patch -applied/usb-isp1362-remove-unused-_warn_on-calls.patch -applied/usb-isp1362-remove-_dbg-usage.patch -applied/usb-isp1362-remove-config_usb_debug-dependency.patch -applied/usb-isp116x-remove-dependency-on-config_usb_debug.patch -applied/usb-sl811-remove-config_usb_debug-dependency.patch - -applied/usb-remove-unneeded-idr.h-include.patch -applied/usb-sl811-move-debug-files-from-proc-to-debugfs.patch -applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch + + + # My specific stuff, at the top to make it easier to work stuff below. @@ -43,46 +14,8 @@ applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch # dev_groups to struct class work -mips-convert-vpe_class-to-use-dev_groups.patch -bsr-convert-bsr_class-to-use-dev_groups.patch -tile-srom-convert-srom_class-to-use-dev_groups.patch -dma-convert-dma_devclass-to-use-dev_groups.patch -devfreq-convert-devfreq_class-to-use-dev_groups.patch -extcon-convert-extcon_class-to-use-dev_groups.patch -hid-roccat-convert-class-code-to-use-dev_groups.patch -isdn-convert-class-code-to-use-dev_groups.patch -leds-convert-class-code-to-use-dev_groups.patch -v4l2-convert-class-code-to-use-dev_groups.patch -c2port-convert-class-code-to-use-dev_groups.patch -enclosure-convert-class-code-to-use-dev_groups.patch -pci-convert-class-code-to-use-dev_groups.patch -x86-wmi-convert-class-code-to-use-dev_groups.patch -pps-convert-class-code-to-use-dev_groups.patch -ptp-convert-class-code-to-use-dev_groups.patch -regulator-convert-class-code-to-use-dev_groups.patch -rtc-convert-class-code-to-use-dev_groups.patch -uio-convert-class-code-to-use-dev_groups.patch -cuse-convert-class-code-to-use-dev_groups.patch -staging-comedi-convert-class-code-to-use-dev_groups.patch -backing-dev-convert-class-code-to-use-dev_groups.patch -scsi-osd-convert-class-code-to-use-dev_groups.patch -scsi-sd-convert-class-code-to-use-dev_groups.patch -scsi-st-convert-class-code-to-use-dev_groups.patch -video-backlight-convert-class-code-to-use-dev_groups.patch -video-backlight-lcd-convert-class-code-to-use-dev_groups.patch video-output-convert-class-code-to-use-dev_groups.patch -net-core-convert-class-code-to-use-dev_groups.patch -net-ieee802154-convert-class-code-to-use-dev_groups.patch -net-wireless-convert-class-code-to-use-dev_groups.patch -net-rfkill-convert-class-code-to-use-dev_groups.patch -c2port-convert-class-code-to-use-bin_attrs-in-groups.patch -hid-roccat-convert-class-code-to-use-bin_attrs-in-groups.patch -pwm-convert-class-code-to-use-dev_groups.patch - -driver-core-bus_type-add-dev_groups.patch -driver-core-bus_type-add-drv_groups.patch -driver-core-bus_type-add-bus_groups.patch -sysfs-add-sysfs_create-remove_groups.patch + driver-core-remove-dev_attrs-from-struct-class.patch driver-core-remove-dev_bin_attrs-from-struct-class.patch diff --git a/staging-comedi-convert-class-code-to-use-dev_groups.patch b/staging-comedi-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 0f13ccc2469e12..00000000000000 --- a/staging-comedi-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,134 +0,0 @@ -From foo@baz Tue Jul 9 15:33:57 PDT 2013 -Date: Tue, 09 Jul 2013 15:33:57 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: staging: comedi: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the comedi class code to use the -correct field. - -Cc: Ian Abbott <abbotti@mev.co.uk> -Cc: H Hartley Sweeten <hsweeten@visionengravers.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/staging/comedi/comedi_fops.c | 39 +++++++++++++++++------------------ - 1 file changed, 20 insertions(+), 19 deletions(-) - ---- a/drivers/staging/comedi/comedi_fops.c -+++ b/drivers/staging/comedi/comedi_fops.c -@@ -262,7 +262,7 @@ static int resize_async_buffer(struct co - - /* sysfs attribute files */ - --static ssize_t show_max_read_buffer_kb(struct device *csdev, -+static ssize_t max_read_buffer_kb_show(struct device *csdev, - struct device_attribute *attr, char *buf) - { - unsigned int minor = MINOR(csdev->devt); -@@ -283,7 +283,7 @@ static ssize_t show_max_read_buffer_kb(s - return snprintf(buf, PAGE_SIZE, "%i\n", size); - } - --static ssize_t store_max_read_buffer_kb(struct device *csdev, -+static ssize_t max_read_buffer_kb_store(struct device *csdev, - struct device_attribute *attr, - const char *buf, size_t count) - { -@@ -314,8 +314,9 @@ static ssize_t store_max_read_buffer_kb( - - return err ? err : count; - } -+static DEVICE_ATTR_RW(max_read_buffer_kb); - --static ssize_t show_read_buffer_kb(struct device *csdev, -+static ssize_t read_buffer_kb_show(struct device *csdev, - struct device_attribute *attr, char *buf) - { - unsigned int minor = MINOR(csdev->devt); -@@ -336,7 +337,7 @@ static ssize_t show_read_buffer_kb(struc - return snprintf(buf, PAGE_SIZE, "%i\n", size); - } - --static ssize_t store_read_buffer_kb(struct device *csdev, -+static ssize_t read_buffer_kb_store(struct device *csdev, - struct device_attribute *attr, - const char *buf, size_t count) - { -@@ -367,8 +368,9 @@ static ssize_t store_read_buffer_kb(stru - - return err ? err : count; - } -+static DEVICE_ATTR_RW(read_buffer_kb); - --static ssize_t show_max_write_buffer_kb(struct device *csdev, -+static ssize_t max_write_buffer_kb_show(struct device *csdev, - struct device_attribute *attr, - char *buf) - { -@@ -390,7 +392,7 @@ static ssize_t show_max_write_buffer_kb( - return snprintf(buf, PAGE_SIZE, "%i\n", size); - } - --static ssize_t store_max_write_buffer_kb(struct device *csdev, -+static ssize_t max_write_buffer_kb_store(struct device *csdev, - struct device_attribute *attr, - const char *buf, size_t count) - { -@@ -421,8 +423,9 @@ static ssize_t store_max_write_buffer_kb - - return err ? err : count; - } -+static DEVICE_ATTR_RW(max_write_buffer_kb); - --static ssize_t show_write_buffer_kb(struct device *csdev, -+static ssize_t write_buffer_kb_show(struct device *csdev, - struct device_attribute *attr, char *buf) - { - unsigned int minor = MINOR(csdev->devt); -@@ -443,7 +446,7 @@ static ssize_t show_write_buffer_kb(stru - return snprintf(buf, PAGE_SIZE, "%i\n", size); - } - --static ssize_t store_write_buffer_kb(struct device *csdev, -+static ssize_t write_buffer_kb_store(struct device *csdev, - struct device_attribute *attr, - const char *buf, size_t count) - { -@@ -474,18 +477,16 @@ static ssize_t store_write_buffer_kb(str - - return err ? err : count; - } -+static DEVICE_ATTR_RW(write_buffer_kb); - --static struct device_attribute comedi_dev_attrs[] = { -- __ATTR(max_read_buffer_kb, S_IRUGO | S_IWUSR, -- show_max_read_buffer_kb, store_max_read_buffer_kb), -- __ATTR(read_buffer_kb, S_IRUGO | S_IWUSR | S_IWGRP, -- show_read_buffer_kb, store_read_buffer_kb), -- __ATTR(max_write_buffer_kb, S_IRUGO | S_IWUSR, -- show_max_write_buffer_kb, store_max_write_buffer_kb), -- __ATTR(write_buffer_kb, S_IRUGO | S_IWUSR | S_IWGRP, -- show_write_buffer_kb, store_write_buffer_kb), -- __ATTR_NULL -+static struct attribute *comedi_dev_attrs[] = { -+ &dev_attr_max_read_buffer_kb.attr, -+ &dev_attr_read_buffer_kb.attr, -+ &dev_attr_max_write_buffer_kb.attr, -+ &dev_attr_write_buffer_kb.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(comedi_dev); - - static void comedi_set_subdevice_runflags(struct comedi_subdevice *s, - unsigned mask, unsigned bits) -@@ -2564,7 +2565,7 @@ static int __init comedi_init(void) - return PTR_ERR(comedi_class); - } - -- comedi_class->dev_attrs = comedi_dev_attrs; -+ comedi_class->dev_groups = comedi_dev_groups; - - /* XXX requires /proc interface */ - comedi_proc_init(); diff --git a/sysfs-add-sysfs_create-remove_groups.patch b/sysfs-add-sysfs_create-remove_groups.patch deleted file mode 100644 index a47afd00a1c8f0..00000000000000 --- a/sysfs-add-sysfs_create-remove_groups.patch +++ /dev/null @@ -1,217 +0,0 @@ -From foo@baz Wed Aug 21 13:10:49 PDT 2013 -Date: Wed, 21 Aug 2013 13:10:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH] sysfs: add sysfs_create/remove_groups() - -These functions are being open-coded in 3 different places in the driver -core, and other driver subsystems will want to start doing this as well, -so move it to the sysfs core to keep it all in one place, where we know -it is written properly. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/base/bus.c | 23 +-------------------- - drivers/base/core.c | 22 +------------------- - drivers/base/driver.c | 22 +------------------- - fs/sysfs/group.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ - include/linux/sysfs.h | 4 +++ - 5 files changed, 64 insertions(+), 61 deletions(-) - ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -884,32 +884,13 @@ static void bus_remove_attrs(struct bus_ - static int bus_add_groups(struct bus_type *bus, - const struct attribute_group **groups) - { -- int error = 0; -- int i; -- -- if (groups) { -- for (i = 0; groups[i]; i++) { -- error = sysfs_create_group(&bus->p->subsys.kobj, -- groups[i]); -- if (error) { -- while (--i >= 0) -- sysfs_remove_group(&bus->p->subsys.kobj, -- groups[i]); -- break; -- } -- } -- } -- return error; -+ return sysfs_create_groups(&bus->p->subsys.kobj, groups); - } - - static void bus_remove_groups(struct bus_type *bus, - const struct attribute_group **groups) - { -- int i; -- -- if (groups) -- for (i = 0; groups[i]; i++) -- sysfs_remove_group(&bus->p->subsys.kobj, groups[i]); -+ sysfs_remove_groups(&bus->p->subsys.kobj, groups); - } - - static void klist_devices_get(struct klist_node *n) ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -493,31 +493,13 @@ static void device_remove_bin_attributes - - int device_add_groups(struct device *dev, const struct attribute_group **groups) - { -- int error = 0; -- int i; -- -- if (groups) { -- for (i = 0; groups[i]; i++) { -- error = sysfs_create_group(&dev->kobj, groups[i]); -- if (error) { -- while (--i >= 0) -- sysfs_remove_group(&dev->kobj, -- groups[i]); -- break; -- } -- } -- } -- return error; -+ return sysfs_create_groups(&dev->kobj, groups); - } - - void device_remove_groups(struct device *dev, - const struct attribute_group **groups) - { -- int i; -- -- if (groups) -- for (i = 0; groups[i]; i++) -- sysfs_remove_group(&dev->kobj, groups[i]); -+ sysfs_remove_groups(&dev->kobj, groups); - } - - static int device_add_attrs(struct device *dev) ---- a/drivers/base/driver.c -+++ b/drivers/base/driver.c -@@ -126,31 +126,13 @@ EXPORT_SYMBOL_GPL(driver_remove_file); - int driver_add_groups(struct device_driver *drv, - const struct attribute_group **groups) - { -- int error = 0; -- int i; -- -- if (groups) { -- for (i = 0; groups[i]; i++) { -- error = sysfs_create_group(&drv->p->kobj, groups[i]); -- if (error) { -- while (--i >= 0) -- sysfs_remove_group(&drv->p->kobj, -- groups[i]); -- break; -- } -- } -- } -- return error; -+ return sysfs_create_groups(&drv->p->kobj, groups); - } - - void driver_remove_groups(struct device_driver *drv, - const struct attribute_group **groups) - { -- int i; -- -- if (groups) -- for (i = 0; groups[i]; i++) -- sysfs_remove_group(&drv->p->kobj, groups[i]); -+ sysfs_remove_groups(&drv->p->kobj, groups); - } - - /** ---- a/fs/sysfs/group.c -+++ b/fs/sysfs/group.c -@@ -131,6 +131,40 @@ int sysfs_create_group(struct kobject *k - } - - /** -+ * sysfs_create_groups - given a directory kobject, create a bunch of attribute groups -+ * @kobj: The kobject to create the group on -+ * @groups: The attribute groups to create, NULL terminated -+ * -+ * This function creates a bunch of attribute groups. If an error occurs when -+ * creating a group, all previously created groups will be removed, unwinding -+ * everything back to the original state when this function was called. -+ * It will explicitly warn and error if any of the attribute files being -+ * created already exist. -+ * -+ * Returns 0 on success or error code from sysfs_create_groups on error. -+ */ -+int sysfs_create_groups(struct kobject *kobj, -+ const struct attribute_group **groups) -+{ -+ int error = 0; -+ int i; -+ -+ if (!groups) -+ return 0; -+ -+ for (i = 0; groups[i]; i++) { -+ error = sysfs_create_group(kobj, groups[i]); -+ if (error) { -+ while (--i >= 0) -+ sysfs_remove_group(kobj, groups[i]); -+ break; -+ } -+ } -+ return error; -+} -+EXPORT_SYMBOL_GPL(sysfs_create_groups); -+ -+/** - * sysfs_update_group - given a directory kobject, update an attribute group - * @kobj: The kobject to update the group on - * @grp: The attribute group to update -@@ -179,6 +213,26 @@ void sysfs_remove_group(struct kobject * - } - - /** -+ * sysfs_remove_groups - remove a list of groups -+ * -+ * kobj: The kobject for the groups to be removed from -+ * groups: NULL terminated list of groups to be removed -+ * -+ * If groups is not NULL, the all groups will be removed from the kobject -+ */ -+void sysfs_remove_groups(struct kobject *kobj, -+ const struct attribute_group **groups) -+{ -+ int i; -+ -+ if (!groups) -+ return; -+ for (i = 0; groups[i]; i++) -+ sysfs_remove_group(kobj, groups[i]); -+} -+EXPORT_SYMBOL_GPL(sysfs_remove_groups); -+ -+/** - * sysfs_merge_group - merge files into a pre-existing attribute group. - * @kobj: The kobject containing the group. - * @grp: The files to create and the attribute group they belong to. ---- a/include/linux/sysfs.h -+++ b/include/linux/sysfs.h -@@ -215,10 +215,14 @@ void sysfs_delete_link(struct kobject *d - - int __must_check sysfs_create_group(struct kobject *kobj, - const struct attribute_group *grp); -+int __must_check sysfs_create_groups(struct kobject *kobj, -+ const struct attribute_group **groups); - int sysfs_update_group(struct kobject *kobj, - const struct attribute_group *grp); - void sysfs_remove_group(struct kobject *kobj, - const struct attribute_group *grp); -+void sysfs_remove_groups(struct kobject *kobj, -+ const struct attribute_group **groups); - int sysfs_add_file_to_group(struct kobject *kobj, - const struct attribute *attr, const char *group); - void sysfs_remove_file_from_group(struct kobject *kobj, diff --git a/tile-srom-convert-srom_class-to-use-dev_groups.patch b/tile-srom-convert-srom_class-to-use-dev_groups.patch deleted file mode 100644 index f924a2e35d296f..00000000000000 --- a/tile-srom-convert-srom_class-to-use-dev_groups.patch +++ /dev/null @@ -1,77 +0,0 @@ -From foo@baz Tue Jul 9 14:49:38 PDT 2013 -Date: Tue, 09 Jul 2013 14:49:38 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: tile: srom: convert srom_class to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the tile srom_class code to use -the correct field. - -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/char/tile-srom.c | 28 ++++++++++++++++------------ - 1 file changed, 16 insertions(+), 12 deletions(-) - ---- a/drivers/char/tile-srom.c -+++ b/drivers/char/tile-srom.c -@@ -279,33 +279,37 @@ loff_t srom_llseek(struct file *file, lo - return fixed_size_llseek(file, offset, origin, srom->total_size); - } - --static ssize_t total_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t total_size_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct srom_dev *srom = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", srom->total_size); - } -+static DEVICE_ATTR_RO(total_size); - --static ssize_t sector_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t sector_size_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct srom_dev *srom = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", srom->sector_size); - } -+static DEVICE_ATTR_RO(sector_size); - --static ssize_t page_show(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t page_size_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct srom_dev *srom = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", srom->page_size); - } -+static DEVICE_ATTR_RO(page_size); - --static struct device_attribute srom_dev_attrs[] = { -- __ATTR(total_size, S_IRUGO, total_show, NULL), -- __ATTR(sector_size, S_IRUGO, sector_show, NULL), -- __ATTR(page_size, S_IRUGO, page_show, NULL), -- __ATTR_NULL -+static struct attribute srom_dev_attrs[] = { -+ &dev_attr_total_size.attr, -+ &dev_attr_sector_size.attr, -+ &dev_attr_page_size.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(srom_dev); - - static char *srom_devnode(struct device *dev, umode_t *mode) - { -@@ -418,7 +422,7 @@ static int srom_init(void) - result = PTR_ERR(srom_class); - goto fail_cdev; - } -- srom_class->dev_attrs = srom_dev_attrs; -+ srom_class->dev_groups = srom_dev_groups; - srom_class->devnode = srom_devnode; - - /* Do per-partition initialization */ diff --git a/uio-convert-class-code-to-use-dev_groups.patch b/uio-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 5e49b44d55aee1..00000000000000 --- a/uio-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,71 +0,0 @@ -From foo@baz Tue Jul 9 15:32:28 PDT 2013 -Date: Tue, 09 Jul 2013 15:32:28 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: UIO: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the uio class code to use the -correct field. - -Cc: Hans J. Koch <hjk@hansjkoch.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/uio/uio.c | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - ---- a/drivers/uio/uio.c -+++ b/drivers/uio/uio.c -@@ -224,38 +224,42 @@ static struct kobj_type portio_attr_type - .default_attrs = portio_attrs, - }; - --static ssize_t show_name(struct device *dev, -+static ssize_t name_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct uio_device *idev = dev_get_drvdata(dev); - return sprintf(buf, "%s\n", idev->info->name); - } -+static DEVICE_ATTR_RO(name); - --static ssize_t show_version(struct device *dev, -+static ssize_t version_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct uio_device *idev = dev_get_drvdata(dev); - return sprintf(buf, "%s\n", idev->info->version); - } -+static DEVICE_ATTR_RO(version); - --static ssize_t show_event(struct device *dev, -+static ssize_t event_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct uio_device *idev = dev_get_drvdata(dev); - return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event)); - } -+static DEVICE_ATTR_RO(event); - --static struct device_attribute uio_class_attributes[] = { -- __ATTR(name, S_IRUGO, show_name, NULL), -- __ATTR(version, S_IRUGO, show_version, NULL), -- __ATTR(event, S_IRUGO, show_event, NULL), -- {} -+static struct attribute *uio_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_version.attr, -+ &dev_attr_event.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(uio); - - /* UIO class infrastructure */ - static struct class uio_class = { - .name = "uio", -- .dev_attrs = uio_class_attributes, -+ .dev_groups = uio_groups, - }; - - /* diff --git a/v4l2-convert-class-code-to-use-dev_groups.patch b/v4l2-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 484c0de13af77f..00000000000000 --- a/v4l2-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,92 +0,0 @@ -From foo@baz Tue Jul 9 15:07:59 PDT 2013 -Date: Tue, 09 Jul 2013 15:08:00 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: v4l2: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the v4l2 class code to use the -correct field. - -Cc: Mauro Carvalho Chehab <mchehab@redhat.com> -Cc: Hans Verkuil <hans.verkuil@cisco.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/media/v4l2-core/v4l2-dev.c | 30 +++++++++++++++++------------- - 1 file changed, 17 insertions(+), 13 deletions(-) - ---- a/drivers/media/v4l2-core/v4l2-dev.c -+++ b/drivers/media/v4l2-core/v4l2-dev.c -@@ -38,24 +38,25 @@ - * sysfs stuff - */ - --static ssize_t show_index(struct device *cd, -- struct device_attribute *attr, char *buf) -+static ssize_t index_show(struct device *cd, -+ struct device_attribute *attr, char *buf) - { - struct video_device *vdev = to_video_device(cd); - - return sprintf(buf, "%i\n", vdev->index); - } -+static DEVICE_ATTR_RO(index); - --static ssize_t show_debug(struct device *cd, -- struct device_attribute *attr, char *buf) -+static ssize_t debug_show(struct device *cd, -+ struct device_attribute *attr, char *buf) - { - struct video_device *vdev = to_video_device(cd); - - return sprintf(buf, "%i\n", vdev->debug); - } - --static ssize_t set_debug(struct device *cd, struct device_attribute *attr, -- const char *buf, size_t len) -+static ssize_t debug_store(struct device *cd, struct device_attribute *attr, -+ const char *buf, size_t len) - { - struct video_device *vdev = to_video_device(cd); - int res = 0; -@@ -68,21 +69,24 @@ static ssize_t set_debug(struct device * - vdev->debug = value; - return len; - } -+static DEVICE_ATTR_RW(debug); - --static ssize_t show_name(struct device *cd, -+static ssize_t name_show(struct device *cd, - struct device_attribute *attr, char *buf) - { - struct video_device *vdev = to_video_device(cd); - - return sprintf(buf, "%.*s\n", (int)sizeof(vdev->name), vdev->name); - } -+static DEVICE_ATTR_RO(name); - --static struct device_attribute video_device_attrs[] = { -- __ATTR(name, S_IRUGO, show_name, NULL), -- __ATTR(debug, 0644, show_debug, set_debug), -- __ATTR(index, S_IRUGO, show_index, NULL), -- __ATTR_NULL -+static struct attribute *video_device_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_debug.attr, -+ &dev_attr_index.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(video_device); - - /* - * Active devices -@@ -217,7 +221,7 @@ static void v4l2_device_release(struct d - - static struct class video_class = { - .name = VIDEO_NAME, -- .dev_attrs = video_device_attrs, -+ .dev_groups = video_device_groups, - }; - - struct video_device *video_devdata(struct file *file) diff --git a/video-backlight-convert-class-code-to-use-dev_groups.patch b/video-backlight-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 3f649fee2c02ae..00000000000000 --- a/video-backlight-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,135 +0,0 @@ -From foo@baz Tue Jul 9 15:39:32 PDT 2013 -Date: Tue, 09 Jul 2013 15:39:32 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: video: backlight: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the video backlight class code to -use the correct field. - -Cc: Richard Purdie <rpurdie@rpsys.net> -Cc: Jingoo Han <jg1.han@samsung.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/video/backlight/backlight.c | 44 +++++++++++++++++++----------------- - 1 file changed, 24 insertions(+), 20 deletions(-) - ---- a/drivers/video/backlight/backlight.c -+++ b/drivers/video/backlight/backlight.c -@@ -103,16 +103,16 @@ static void backlight_generate_event(str - sysfs_notify(&bd->dev.kobj, NULL, "actual_brightness"); - } - --static ssize_t backlight_show_power(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t bl_power_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct backlight_device *bd = to_backlight_device(dev); - - return sprintf(buf, "%d\n", bd->props.power); - } - --static ssize_t backlight_store_power(struct device *dev, -- struct device_attribute *attr, const char *buf, size_t count) -+static ssize_t bl_power_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - int rc; - struct backlight_device *bd = to_backlight_device(dev); -@@ -136,8 +136,9 @@ static ssize_t backlight_store_power(str - - return rc; - } -+static DEVICE_ATTR_RW(bl_power); - --static ssize_t backlight_show_brightness(struct device *dev, -+static ssize_t brightness_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct backlight_device *bd = to_backlight_device(dev); -@@ -145,7 +146,7 @@ static ssize_t backlight_show_brightness - return sprintf(buf, "%d\n", bd->props.brightness); - } - --static ssize_t backlight_store_brightness(struct device *dev, -+static ssize_t brightness_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) - { - int rc; -@@ -175,24 +176,27 @@ static ssize_t backlight_store_brightnes - - return rc; - } -+static DEVICE_ATTR_RW(brightness); - --static ssize_t backlight_show_type(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t type_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct backlight_device *bd = to_backlight_device(dev); - - return sprintf(buf, "%s\n", backlight_types[bd->props.type]); - } -+static DEVICE_ATTR_RO(type); - --static ssize_t backlight_show_max_brightness(struct device *dev, -+static ssize_t max_brightness_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct backlight_device *bd = to_backlight_device(dev); - - return sprintf(buf, "%d\n", bd->props.max_brightness); - } -+static DEVICE_ATTR_RO(max_brightness); - --static ssize_t backlight_show_actual_brightness(struct device *dev, -+static ssize_t actual_brightness_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - int rc = -ENXIO; -@@ -205,6 +209,7 @@ static ssize_t backlight_show_actual_bri - - return rc; - } -+static DEVICE_ATTR_RO(actual_brightness); - - static struct class *backlight_class; - -@@ -247,16 +252,15 @@ static void bl_device_release(struct dev - kfree(bd); - } - --static struct device_attribute bl_device_attributes[] = { -- __ATTR(bl_power, 0644, backlight_show_power, backlight_store_power), -- __ATTR(brightness, 0644, backlight_show_brightness, -- backlight_store_brightness), -- __ATTR(actual_brightness, 0444, backlight_show_actual_brightness, -- NULL), -- __ATTR(max_brightness, 0444, backlight_show_max_brightness, NULL), -- __ATTR(type, 0444, backlight_show_type, NULL), -- __ATTR_NULL, -+static struct attribute *bl_device_attrs[] = { -+ &dev_attr_bl_power.attr, -+ &dev_attr_brightness.attr, -+ &dev_attr_actual_brightness.attr, -+ &dev_attr_max_brightness.attr, -+ &dev_attr_type.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(bl_device); - - /** - * backlight_force_update - tell the backlight subsystem that hardware state -@@ -493,7 +497,7 @@ static int __init backlight_class_init(v - return PTR_ERR(backlight_class); - } - -- backlight_class->dev_attrs = bl_device_attributes; -+ backlight_class->dev_groups = bl_device_groups; - backlight_class->pm = &backlight_class_dev_pm_ops; - return 0; - } diff --git a/video-backlight-lcd-convert-class-code-to-use-dev_groups.patch b/video-backlight-lcd-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 96a7bd0fa70e16..00000000000000 --- a/video-backlight-lcd-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,104 +0,0 @@ -From foo@baz Tue Jul 9 15:40:31 PDT 2013 -Date: Tue, 09 Jul 2013 15:40:31 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: video: backlight: lcd: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the video backlight lcd class -code to use the correct field. - -Cc: Richard Purdie <rpurdie@rpsys.net> -Cc: Jingoo Han <jg1.han@samsung.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/video/backlight/lcd.c | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) - ---- a/drivers/video/backlight/lcd.c -+++ b/drivers/video/backlight/lcd.c -@@ -89,7 +89,7 @@ static inline void lcd_unregister_fb(str - } - #endif /* CONFIG_FB */ - --static ssize_t lcd_show_power(struct device *dev, struct device_attribute *attr, -+static ssize_t lcd_power_show(struct device *dev, struct device_attribute *attr, - char *buf) - { - int rc; -@@ -105,7 +105,7 @@ static ssize_t lcd_show_power(struct dev - return rc; - } - --static ssize_t lcd_store_power(struct device *dev, -+static ssize_t lcd_power_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) - { - int rc; -@@ -128,8 +128,9 @@ static ssize_t lcd_store_power(struct de - - return rc; - } -+static DEVICE_ATTR_RW(lcd_power); - --static ssize_t lcd_show_contrast(struct device *dev, -+static ssize_t contrast_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - int rc = -ENXIO; -@@ -143,7 +144,7 @@ static ssize_t lcd_show_contrast(struct - return rc; - } - --static ssize_t lcd_store_contrast(struct device *dev, -+static ssize_t contrast_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) - { - int rc; -@@ -166,14 +167,16 @@ static ssize_t lcd_store_contrast(struct - - return rc; - } -+static DEVICE_ATTR_RW(contrast); - --static ssize_t lcd_show_max_contrast(struct device *dev, -+static ssize_t max_contrast_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct lcd_device *ld = to_lcd_device(dev); - - return sprintf(buf, "%d\n", ld->props.max_contrast); - } -+static DEVICE_ATTR_RO(max_contrast); - - static struct class *lcd_class; - -@@ -183,12 +186,13 @@ static void lcd_device_release(struct de - kfree(ld); - } - --static struct device_attribute lcd_device_attributes[] = { -- __ATTR(lcd_power, 0644, lcd_show_power, lcd_store_power), -- __ATTR(contrast, 0644, lcd_show_contrast, lcd_store_contrast), -- __ATTR(max_contrast, 0444, lcd_show_max_contrast, NULL), -- __ATTR_NULL, -+static struct attribute *lcd_device_attrs[] = { -+ &dev_attr_lcd_power.attr, -+ &dev_attr_contrast.attr, -+ &dev_attr_max_contrast.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(lcd_device); - - /** - * lcd_device_register - register a new object of lcd_device class. -@@ -344,7 +348,7 @@ static int __init lcd_class_init(void) - return PTR_ERR(lcd_class); - } - -- lcd_class->dev_attrs = lcd_device_attributes; -+ lcd_class->dev_groups = lcd_device_groups; - return 0; - } - diff --git a/workqueue-convert-bus-code-to-use-dev_groups.patch b/workqueue-convert-bus-code-to-use-dev_groups.patch index 037554a3d6d4e5..0f36ed6cda5c9a 100644 --- a/workqueue-convert-bus-code-to-use-dev_groups.patch +++ b/workqueue-convert-bus-code-to-use-dev_groups.patch @@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- a/kernel/workqueue.c +++ b/kernel/workqueue.c -@@ -3086,25 +3086,26 @@ static struct workqueue_struct *dev_to_w +@@ -3095,25 +3095,26 @@ static struct workqueue_struct *dev_to_w return wq_dev->wq; } @@ -51,7 +51,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> { struct workqueue_struct *wq = dev_to_wq(dev); int val; -@@ -3115,12 +3116,14 @@ static ssize_t wq_max_active_store(struc +@@ -3124,12 +3125,14 @@ static ssize_t wq_max_active_store(struc workqueue_set_max_active(wq, val); return count; } @@ -70,7 +70,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> static ssize_t wq_pool_ids_show(struct device *dev, struct device_attribute *attr, char *buf) -@@ -3270,7 +3273,7 @@ static struct device_attribute wq_sysfs_ +@@ -3279,7 +3282,7 @@ static struct device_attribute wq_sysfs_ static struct bus_type wq_subsys = { .name = "workqueue", diff --git a/x86-wmi-convert-class-code-to-use-dev_groups.patch b/x86-wmi-convert-class-code-to-use-dev_groups.patch deleted file mode 100644 index 80c4e125d2ab69..00000000000000 --- a/x86-wmi-convert-class-code-to-use-dev_groups.patch +++ /dev/null @@ -1,45 +0,0 @@ -From foo@baz Tue Jul 9 15:15:36 PDT 2013 -Date: Tue, 09 Jul 2013 15:15:36 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: x86: wmi: convert class code to use dev_groups - -The dev_attrs field of struct class is going away soon, dev_groups -should be used instead. This converts the wmi class code to use the -correct field. - -Cc: Matthew Garrett <matthew.garrett@nebula.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/platform/x86/wmi.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/platform/x86/wmi.c -+++ b/drivers/platform/x86/wmi.c -@@ -693,11 +693,13 @@ static ssize_t modalias_show(struct devi - - return sprintf(buf, "wmi:%s\n", guid_string); - } -+static DEVICE_ATTR_RO(modalias); - --static struct device_attribute wmi_dev_attrs[] = { -- __ATTR_RO(modalias), -- __ATTR_NULL -+static struct attribute *wmi_attrs[] = { -+ &dev_attr_modalias.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(wmi); - - static int wmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) - { -@@ -732,7 +734,7 @@ static struct class wmi_class = { - .name = "wmi", - .dev_release = wmi_dev_free, - .dev_uevent = wmi_dev_uevent, -- .dev_attrs = wmi_dev_attrs, -+ .dev_groups = wmi_groups, - }; - - static int wmi_create_device(const struct guid_block *gblock, |