aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-04 13:07:52 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-04 13:07:52 -0700
commitbbcc0c699929d3b01ecf3066a35799defe733dd2 (patch)
tree5fd368175f54e652b663ebd33dc78e174a288445
parentcba9545b635d1566060d5a8f1a9dc78680f4e839 (diff)
downloadpatches-bbcc0c699929d3b01ecf3066a35799defe733dd2.tar.gz
remove a bunch of patches now in Linus's tree
-rw-r--r--applied/misc-c2port-use-dev_bin_attrs-instead-of-hand-coding-it.patch93
-rw-r--r--applied/usb-adutux-remove-custom-debug-macro-and-module-parameter.patch125
-rw-r--r--applied/usb-adutux-remove-custom-debug-macro.patch283
-rw-r--r--applied/usb-adutux-remove-direct-calls-to-printk.patch56
-rw-r--r--applied/usb-adutux-remove-unneeded-tracing-macros.patch211
-rw-r--r--applied/usb-gadget-fix-up-comment.patch27
-rw-r--r--applied/usb-isp116x-remove-dependency-on-config_usb_debug.patch54
-rw-r--r--applied/usb-isp1362-move-debug-files-from-proc-to-debugfs.patch127
-rw-r--r--applied/usb-isp1362-remove-_dbg-usage.patch142
-rw-r--r--applied/usb-isp1362-remove-config_usb_debug-dependency.patch98
-rw-r--r--applied/usb-isp1362-remove-unused-_bug_on-calls.patch137
-rw-r--r--applied/usb-isp1362-remove-unused-_warn_on-calls.patch67
-rw-r--r--applied/usb-ldusb-remove-custom-dbg_info-macro.patch86
-rw-r--r--applied/usb-legotower-remove-custom-debug-macro-and-module-parameter.patch114
-rw-r--r--applied/usb-legotower-remove-direct-calls-to-printk.patch64
-rw-r--r--applied/usb-legotower-remove-unneeded-tracing-macros.patch217
-rw-r--r--applied/usb-legousbtower-remove-custom-debug-macro.patch110
-rw-r--r--applied/usb-misc-remove-config_usb_debug-from-makefile.patch27
-rw-r--r--applied/usb-phy-remove-config_usb_debug-usage.patch28
-rw-r--r--applied/usb-phy-remove-custom-dbg-macro.patch105
-rw-r--r--applied/usb-remove-unneeded-idr.h-include.patch36
-rw-r--r--applied/usb-sl811-move-debug-files-from-proc-to-debugfs.patch120
-rw-r--r--applied/usb-sl811-remove-config_usb_debug-dependency.patch308
-rw-r--r--applied/usb-usbatm-don-t-rely-on-config_usb_debug.patch40
-rw-r--r--applied/usb-usbatm-move-the-atm_dbg-call-to-use-dynamic-debug.patch46
-rw-r--r--applied/usb-usbatm-remove-config_usb_debug-dependancy.patch63
-rw-r--r--applied/usb-usbatm-remove-unneeded-trace-printk-calls.patch149
-rw-r--r--applied/usb-usbatm-remove-unused-udsl_assert-macro.patch85
-rw-r--r--backing-dev-convert-class-code-to-use-dev_groups.patch63
-rw-r--r--bsr-convert-bsr_class-to-use-dev_groups.patch66
-rw-r--r--c2port-convert-class-code-to-use-bin_attrs-in-groups.patch77
-rw-r--r--c2port-convert-class-code-to-use-dev_groups.patch161
-rw-r--r--cuse-convert-class-code-to-use-dev_groups.patch54
-rw-r--r--devfreq-convert-devfreq_class-to-use-dev_groups.patch199
-rw-r--r--dma-convert-dma_devclass-to-use-dev_groups.patch84
-rw-r--r--driver-core-bus_type-add-bus_groups.patch105
-rw-r--r--driver-core-bus_type-add-dev_groups.patch108
-rw-r--r--driver-core-bus_type-add-drv_groups.patch101
-rw-r--r--enclosure-convert-class-code-to-use-dev_groups.patch88
-rw-r--r--extcon-convert-extcon_class-to-use-dev_groups.patch62
-rw-r--r--hid-roccat-convert-class-code-to-use-bin_attrs-in-groups.patch1081
-rw-r--r--hid-roccat-convert-class-code-to-use-dev_groups.patch410
-rw-r--r--isdn-convert-class-code-to-use-dev_groups.patch159
-rw-r--r--kobject-delayed-kobject-release-help-find-buggy-drivers.patch125
-rw-r--r--leds-convert-class-code-to-use-dev_groups.patch95
-rw-r--r--mips-convert-vpe_class-to-use-dev_groups.patch67
-rw-r--r--net-core-convert-class-code-to-use-dev_groups.patch337
-rw-r--r--net-ieee802154-convert-class-code-to-use-dev_groups.patch66
-rw-r--r--net-rfkill-convert-class-code-to-use-dev_groups.patch199
-rw-r--r--net-wireless-convert-class-code-to-use-dev_groups.patch75
-rw-r--r--pci-convert-class-code-to-use-dev_groups.patch102
-rw-r--r--pps-convert-class-code-to-use-dev_groups.patch143
-rw-r--r--ptp-convert-class-code-to-use-dev_groups.patch109
-rw-r--r--pwm-convert-class-code-to-use-dev_groups.patch65
-rw-r--r--qlcnic_sysfs.patch22
-rw-r--r--regulator-convert-class-code-to-use-dev_groups.patch94
-rw-r--r--rtc-convert-class-code-to-use-dev_groups.patch137
-rw-r--r--scsi-osd-convert-class-code-to-use-dev_groups.patch54
-rw-r--r--scsi-sd-convert-class-code-to-use-dev_groups.patch314
-rw-r--r--scsi-st-convert-class-code-to-use-dev_groups.patch96
-rw-r--r--serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch10
-rw-r--r--series75
-rw-r--r--staging-comedi-convert-class-code-to-use-dev_groups.patch134
-rw-r--r--sysfs-add-sysfs_create-remove_groups.patch217
-rw-r--r--tile-srom-convert-srom_class-to-use-dev_groups.patch77
-rw-r--r--uio-convert-class-code-to-use-dev_groups.patch71
-rw-r--r--v4l2-convert-class-code-to-use-dev_groups.patch92
-rw-r--r--video-backlight-convert-class-code-to-use-dev_groups.patch135
-rw-r--r--video-backlight-lcd-convert-class-code-to-use-dev_groups.patch104
-rw-r--r--workqueue-convert-bus-code-to-use-dev_groups.patch6
-rw-r--r--x86-wmi-convert-class-code-to-use-dev_groups.patch45
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 },
diff --git a/series b/series
index 48fe50d7c835a3..2b84502ab047b2 100644
--- a/series
+++ b/series
@@ -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,