aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-02-08 09:12:01 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2006-02-08 09:12:01 -0800
commit2fdb5c74ee3f0b5b737f365fbf17e3c0ff6dea10 (patch)
tree036ad52c78e857bbe2cb76ed6a58fe0fe1adaa1e /driver
parentc722728e48520ccdf3b9f159d74c46520e57306b (diff)
downloadpatches-2fdb5c74ee3f0b5b737f365fbf17e3c0ff6dea10.tar.gz
removed patches that were accepted upstream
Diffstat (limited to 'driver')
-rw-r--r--driver/debugfs-trivial-comment-fix.patch46
-rw-r--r--driver/drivers-base-proper-prototypes.patch103
-rw-r--r--driver/drm-classdev-cleanup.patch246
-rw-r--r--driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch42
-rw-r--r--driver/fix-uevent-buffer-overflow-in-input-layer.patch30
-rw-r--r--driver/fix-userspace-interface-breakage-in-power-state.patch60
-rw-r--r--driver/ib-sysfs-cleanup.patch54
-rw-r--r--driver/kobject-don-t-oops-on-null-kobject.name.patch37
-rw-r--r--driver/kobject_add-must-have-valid-name.patch28
-rw-r--r--driver/spi-spi_butterfly-restore-lost-deltas.patch179
10 files changed, 0 insertions, 825 deletions
diff --git a/driver/debugfs-trivial-comment-fix.patch b/driver/debugfs-trivial-comment-fix.patch
deleted file mode 100644
index 9e54c7c2879a8..0000000000000
--- a/driver/debugfs-trivial-comment-fix.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From tab@snarc.org Wed Jan 25 05:49:23 2006
-Date: Wed, 25 Jan 2006 14:49:13 +0100
-From: Vincent Hanquez <vincent@snarc.org>
-Cc: Greg Kroah-Hartman <greg@kroah.com>
-Subject: debugfs: trivial comment fix
-Message-ID: <20060125134913.GA8594@snarc.org>
-Content-Disposition: inline
-
-Fix trivial type mixup in the debugfs function comments.
-
-Signed-off-by: Vincent Hanquez <vincent@snarc.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/debugfs/file.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- gregkh-2.6.orig/fs/debugfs/file.c
-+++ gregkh-2.6/fs/debugfs/file.c
-@@ -56,7 +56,7 @@ static u64 debugfs_u8_get(void *data)
- DEFINE_SIMPLE_ATTRIBUTE(fops_u8, debugfs_u8_get, debugfs_u8_set, "%llu\n");
-
- /**
-- * debugfs_create_u8 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value.
-+ * debugfs_create_u8 - create a file in the debugfs filesystem that is used to read and write an unsigned 8 bit value.
- *
- * @name: a pointer to a string containing the name of the file to create.
- * @mode: the permission that the file should have
-@@ -98,7 +98,7 @@ static u64 debugfs_u16_get(void *data)
- DEFINE_SIMPLE_ATTRIBUTE(fops_u16, debugfs_u16_get, debugfs_u16_set, "%llu\n");
-
- /**
-- * debugfs_create_u16 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value.
-+ * debugfs_create_u16 - create a file in the debugfs filesystem that is used to read and write an unsigned 16 bit value.
- *
- * @name: a pointer to a string containing the name of the file to create.
- * @mode: the permission that the file should have
-@@ -140,7 +140,7 @@ static u64 debugfs_u32_get(void *data)
- DEFINE_SIMPLE_ATTRIBUTE(fops_u32, debugfs_u32_get, debugfs_u32_set, "%llu\n");
-
- /**
-- * debugfs_create_u32 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value.
-+ * debugfs_create_u32 - create a file in the debugfs filesystem that is used to read and write an unsigned 32 bit value.
- *
- * @name: a pointer to a string containing the name of the file to create.
- * @mode: the permission that the file should have
diff --git a/driver/drivers-base-proper-prototypes.patch b/driver/drivers-base-proper-prototypes.patch
deleted file mode 100644
index 1bcbde27c3e43..0000000000000
--- a/driver/drivers-base-proper-prototypes.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From bunk@stusta.de Thu Jan 19 08:30:23 2006
-Date: Thu, 19 Jan 2006 17:30:17 +0100
-From: Adrian Bunk <bunk@stusta.de>
-To: Greg KH <gregkh@suse.de>
-Subject: drivers/base/: proper prototypes
-Message-ID: <20060119163017.GQ19398@stusta.de>
-Content-Disposition: inline
-
-This patch contains the following changes:
-- move prototypes to base.h
-- sys.c should #include "base.h" for getting the prototype of it's
- global function system_bus_init()
-
-Note that hidden in this patch there's a bugfix:
-
-Caller and callee disagreed regarding the return type of
-sysdev_shutdown().
-
-
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/base/base.h | 4 ++++
- drivers/base/power/resume.c | 3 +--
- drivers/base/power/shutdown.c | 2 +-
- drivers/base/power/suspend.c | 3 +--
- drivers/base/sys.c | 3 +++
- 5 files changed, 10 insertions(+), 5 deletions(-)
-
---- gregkh-2.6.orig/drivers/base/base.h
-+++ gregkh-2.6/drivers/base/base.h
-@@ -19,6 +19,10 @@ extern void bus_remove_driver(struct dev
- extern void driver_detach(struct device_driver * drv);
- extern int driver_probe_device(struct device_driver *, struct device *);
-
-+extern void sysdev_shutdown(void);
-+extern int sysdev_suspend(pm_message_t state);
-+extern int sysdev_resume(void);
-+
- static inline struct class_device *to_class_dev(struct kobject *obj)
- {
- return container_of(obj, struct class_device, kobj);
---- gregkh-2.6.orig/drivers/base/sys.c
-+++ gregkh-2.6/drivers/base/sys.c
-@@ -21,8 +21,11 @@
- #include <linux/slab.h>
- #include <linux/string.h>
- #include <linux/pm.h>
-+#include <linux/device.h>
- #include <asm/semaphore.h>
-
-+#include "base.h"
-+
- extern struct subsystem devices_subsys;
-
- #define to_sysdev(k) container_of(k, struct sys_device, kobj)
---- gregkh-2.6.orig/drivers/base/power/shutdown.c
-+++ gregkh-2.6/drivers/base/power/shutdown.c
-@@ -12,6 +12,7 @@
- #include <linux/device.h>
- #include <asm/semaphore.h>
-
-+#include "../base.h"
- #include "power.h"
-
- #define to_dev(node) container_of(node, struct device, kobj.entry)
-@@ -28,7 +29,6 @@ extern struct subsystem devices_subsys;
- * they only get one called once when interrupts are disabled.
- */
-
--extern int sysdev_shutdown(void);
-
- /**
- * device_shutdown - call ->shutdown() on each device to shutdown.
---- gregkh-2.6.orig/drivers/base/power/suspend.c
-+++ gregkh-2.6/drivers/base/power/suspend.c
-@@ -9,10 +9,9 @@
- */
-
- #include <linux/device.h>
-+#include "../base.h"
- #include "power.h"
-
--extern int sysdev_suspend(pm_message_t state);
--
- /*
- * The entries in the dpm_active list are in a depth first order, simply
- * because children are guaranteed to be discovered after parents, and
---- gregkh-2.6.orig/drivers/base/power/resume.c
-+++ gregkh-2.6/drivers/base/power/resume.c
-@@ -9,10 +9,9 @@
- */
-
- #include <linux/device.h>
-+#include "../base.h"
- #include "power.h"
-
--extern int sysdev_resume(void);
--
-
- /**
- * resume_device - Restore state for one device.
diff --git a/driver/drm-classdev-cleanup.patch b/driver/drm-classdev-cleanup.patch
deleted file mode 100644
index 0d68180b75a18..0000000000000
--- a/driver/drm-classdev-cleanup.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-From foo@baz.org Sun Jun 5 14:33:21 2005
-Date: Fri, 20 Jan 2006 14:08:59 -0800
-To: Greg KH <gregkh@suse.de>
-From: Greg Kroah-Hartman <gregkh@suse.de>
-Subject: DRM: fix up classdev interface for drm core
-
-Current drm code doesn't work with userspace programs that listen only
-to the kernel event netlink socket as it is trying to create its own dev
-interface. Turns out lots of code can just be deleted as the driver
-core can do all of this work automatically for you.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/char/drm/drmP.h | 10 +--
- drivers/char/drm/drm_stub.c | 2
- drivers/char/drm/drm_sysfs.c | 129 +++++++++----------------------------------
- 3 files changed, 34 insertions(+), 107 deletions(-)
-
---- gregkh-2.6.orig/drivers/char/drm/drm_sysfs.c
-+++ gregkh-2.6/drivers/char/drm/drm_sysfs.c
-@@ -1,3 +1,4 @@
-+
- /*
- * drm_sysfs.c - Modifications to drm_sysfs_class.c to support
- * extra sysfs attribute from DRM. Normal drm_sysfs_class
-@@ -19,36 +20,6 @@
- #include "drm_core.h"
- #include "drmP.h"
-
--struct drm_sysfs_class {
-- struct class_device_attribute attr;
-- struct class class;
--};
--#define to_drm_sysfs_class(d) container_of(d, struct drm_sysfs_class, class)
--
--struct simple_dev {
-- dev_t dev;
-- struct class_device class_dev;
--};
--#define to_simple_dev(d) container_of(d, struct simple_dev, class_dev)
--
--static void release_simple_dev(struct class_device *class_dev)
--{
-- struct simple_dev *s_dev = to_simple_dev(class_dev);
-- kfree(s_dev);
--}
--
--static ssize_t show_dev(struct class_device *class_dev, char *buf)
--{
-- struct simple_dev *s_dev = to_simple_dev(class_dev);
-- return print_dev_t(buf, s_dev->dev);
--}
--
--static void drm_sysfs_class_release(struct class *class)
--{
-- struct drm_sysfs_class *cs = to_drm_sysfs_class(class);
-- kfree(cs);
--}
--
- /* Display the version of drm_core. This doesn't work right in current design */
- static ssize_t version_show(struct class *dev, char *buf)
- {
-@@ -69,38 +40,16 @@ static CLASS_ATTR(version, S_IRUGO, vers
- * Note, the pointer created here is to be destroyed when finished by making a
- * call to drm_sysfs_destroy().
- */
--struct drm_sysfs_class *drm_sysfs_create(struct module *owner, char *name)
-+struct class *drm_sysfs_create(struct module *owner, char *name)
- {
-- struct drm_sysfs_class *cs;
-- int retval;
-+ struct class *class;
-+
-+ class = class_create(owner, name);
-+ if (!class)
-+ return class;
-
-- cs = kmalloc(sizeof(*cs), GFP_KERNEL);
-- if (!cs) {
-- retval = -ENOMEM;
-- goto error;
-- }
-- memset(cs, 0x00, sizeof(*cs));
--
-- cs->class.name = name;
-- cs->class.class_release = drm_sysfs_class_release;
-- cs->class.release = release_simple_dev;
--
-- cs->attr.attr.name = "dev";
-- cs->attr.attr.mode = S_IRUGO;
-- cs->attr.attr.owner = owner;
-- cs->attr.show = show_dev;
-- cs->attr.store = NULL;
--
-- retval = class_register(&cs->class);
-- if (retval)
-- goto error;
-- class_create_file(&cs->class, &class_attr_version);
--
-- return cs;
--
-- error:
-- kfree(cs);
-- return ERR_PTR(retval);
-+ class_create_file(class, &class_attr_version);
-+ return class;
- }
-
- /**
-@@ -110,12 +59,13 @@ struct drm_sysfs_class *drm_sysfs_create
- * Note, the pointer to be destroyed must have been created with a call to
- * drm_sysfs_create().
- */
--void drm_sysfs_destroy(struct drm_sysfs_class *cs)
-+void drm_sysfs_destroy(struct class *class)
- {
-- if ((cs == NULL) || (IS_ERR(cs)))
-+ if ((class == NULL) || (IS_ERR(class)))
- return;
-
-- class_unregister(&cs->class);
-+ class_remove_file(class, &class_attr_version);
-+ class_destroy(class);
- }
-
- static ssize_t show_dri(struct class_device *class_device, char *buf)
-@@ -132,7 +82,7 @@ static struct class_device_attribute cla
-
- /**
- * drm_sysfs_device_add - adds a class device to sysfs for a character driver
-- * @cs: pointer to the struct drm_sysfs_class that this device should be registered to.
-+ * @cs: pointer to the struct class that this device should be registered to.
- * @dev: the dev_t for the device to be added.
- * @device: a pointer to a struct device that is assiociated with this class device.
- * @fmt: string for the class device's name
-@@ -141,46 +91,26 @@ static struct class_device_attribute cla
- * class. A "dev" file will be created, showing the dev_t for the device. The
- * pointer to the struct class_device will be returned from the call. Any further
- * sysfs files that might be required can be created using this pointer.
-- * Note: the struct drm_sysfs_class passed to this function must have previously been
-+ * Note: the struct class passed to this function must have previously been
- * created with a call to drm_sysfs_create().
- */
--struct class_device *drm_sysfs_device_add(struct drm_sysfs_class *cs,
-- drm_head_t *head)
-+struct class_device *drm_sysfs_device_add(struct class *cs, drm_head_t *head)
- {
-- struct simple_dev *s_dev = NULL;
-- int i, retval;
-+ struct class_device *class_dev;
-+ int i;
-
-- if ((cs == NULL) || (IS_ERR(cs))) {
-- retval = -ENODEV;
-- goto error;
-- }
--
-- s_dev = kmalloc(sizeof(*s_dev), GFP_KERNEL);
-- if (!s_dev) {
-- retval = -ENOMEM;
-- goto error;
-- }
-- memset(s_dev, 0x00, sizeof(*s_dev));
--
-- s_dev->dev = MKDEV(DRM_MAJOR, head->minor);
-- s_dev->class_dev.dev = &(head->dev->pdev)->dev;
-- s_dev->class_dev.class = &cs->class;
--
-- snprintf(s_dev->class_dev.class_id, BUS_ID_SIZE, "card%d", head->minor);
-- retval = class_device_register(&s_dev->class_dev);
-- if (retval)
-- goto error;
-+ class_dev = class_device_create(cs, NULL,
-+ MKDEV(DRM_MAJOR, head->minor),
-+ &(head->dev->pdev)->dev,
-+ "card%d", head->minor);
-+ if (!class_dev)
-+ return NULL;
-
-- class_device_create_file(&s_dev->class_dev, &cs->attr);
-- class_set_devdata(&s_dev->class_dev, head);
-+ class_set_devdata(class_dev, head);
-
- for (i = 0; i < ARRAY_SIZE(class_device_attrs); i++)
-- class_device_create_file(&s_dev->class_dev, &class_device_attrs[i]);
-- return &s_dev->class_dev;
--
--error:
-- kfree(s_dev);
-- return ERR_PTR(retval);
-+ class_device_create_file(class_dev, &class_device_attrs[i]);
-+ return class_dev;
- }
-
- /**
-@@ -192,10 +122,9 @@ error:
- */
- void drm_sysfs_device_remove(struct class_device *class_dev)
- {
-- struct simple_dev *s_dev = to_simple_dev(class_dev);
- int i;
-
- for (i = 0; i < ARRAY_SIZE(class_device_attrs); i++)
-- class_device_remove_file(&s_dev->class_dev, &class_device_attrs[i]);
-- class_device_unregister(&s_dev->class_dev);
-+ class_device_remove_file(class_dev, &class_device_attrs[i]);
-+ class_device_unregister(class_dev);
- }
---- gregkh-2.6.orig/drivers/char/drm/drmP.h
-+++ gregkh-2.6/drivers/char/drm/drmP.h
-@@ -980,7 +980,7 @@ extern int drm_put_head(drm_head_t * hea
- extern unsigned int drm_debug;
- extern unsigned int drm_cards_limit;
- extern drm_head_t **drm_heads;
--extern struct drm_sysfs_class *drm_class;
-+extern struct class *drm_class;
- extern struct proc_dir_entry *drm_proc_root;
-
- /* Proc support (drm_proc.h) */
-@@ -1011,11 +1011,9 @@ extern void __drm_pci_free(drm_device_t
- extern void drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah);
-
- /* sysfs support (drm_sysfs.c) */
--struct drm_sysfs_class;
--extern struct drm_sysfs_class *drm_sysfs_create(struct module *owner,
-- char *name);
--extern void drm_sysfs_destroy(struct drm_sysfs_class *cs);
--extern struct class_device *drm_sysfs_device_add(struct drm_sysfs_class *cs,
-+extern struct class *drm_sysfs_create(struct module *owner, char *name);
-+extern void drm_sysfs_destroy(struct class *cs);
-+extern struct class_device *drm_sysfs_device_add(struct class *cs,
- drm_head_t *head);
- extern void drm_sysfs_device_remove(struct class_device *class_dev);
-
---- gregkh-2.6.orig/drivers/char/drm/drm_stub.c
-+++ gregkh-2.6/drivers/char/drm/drm_stub.c
-@@ -50,7 +50,7 @@ module_param_named(cards_limit, drm_card
- module_param_named(debug, drm_debug, int, 0600);
-
- drm_head_t **drm_heads;
--struct drm_sysfs_class *drm_class;
-+struct class *drm_class;
- struct proc_dir_entry *drm_proc_root;
-
- static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,
diff --git a/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch b/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch
deleted file mode 100644
index 25d1eac01ec95..0000000000000
--- a/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From rmk+gregkh=suse.de@arm.linux.org.uk Tue Jan 17 16:39:01 2006
-Date: Sat, 14 Jan 2006 20:01:02 +0000
-From: Russell King <rmk@arm.linux.org.uk>
-To: Greg KH <gregkh@suse.de>
-Subject: Fix compiler warning in driver core for CONFIG_HOTPLUG=N
-Message-ID: <20060114200101.GD24816@flint.arm.linux.org.uk>
-Content-Disposition: inline
-
-FYI, while running a build test, I found:
-
-drivers/base/bus.c:166: warning: `driver_attr_unbind' defined but not used
-drivers/base/bus.c:194: warning: `driver_attr_bind' defined but not used
-
-Looks like these two attributes and supporting functions want to be
-#ifdef HOTPLUG'd
-
-Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/base/bus.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- gregkh-2.6.orig/drivers/base/bus.c
-+++ gregkh-2.6/drivers/base/bus.c
-@@ -133,6 +133,8 @@ static struct kobj_type ktype_bus = {
- decl_subsys(bus, &ktype_bus, NULL);
-
-
-+#ifdef CONFIG_HOTPLUG
-+
- /* Manually detach a device from its associated driver. */
- static int driver_helper(struct device *dev, void *data)
- {
-@@ -193,6 +195,7 @@ static ssize_t driver_bind(struct device
- }
- static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);
-
-+#endif
-
- static struct device * next_device(struct klist_iter * i)
- {
diff --git a/driver/fix-uevent-buffer-overflow-in-input-layer.patch b/driver/fix-uevent-buffer-overflow-in-input-layer.patch
deleted file mode 100644
index 41e0aa1e293f5..0000000000000
--- a/driver/fix-uevent-buffer-overflow-in-input-layer.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From benh@kernel.crashing.org Tue Jan 24 15:21:24 2006
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Subject: Fix uevent buffer overflow in input layer
-To: Kay Sievers <kay.sievers@vrfy.org>
-Cc: Greg KH <greg@kroah.com>, Dmitry Torokhov <dtor_core@ameritech.net>
-Date: Wed, 25 Jan 2006 10:21:32 +1100
-Message-Id: <1138144893.4907.72.camel@localhost.localdomain>
-
-The buffer used for kobject uevent is too small for some of the events generated
-by the input layer. Bump it to 2k.
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- lib/kobject_uevent.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- gregkh-2.6.orig/lib/kobject_uevent.c
-+++ gregkh-2.6/lib/kobject_uevent.c
-@@ -22,7 +22,7 @@
- #include <linux/kobject.h>
- #include <net/sock.h>
-
--#define BUFFER_SIZE 1024 /* buffer for the variables */
-+#define BUFFER_SIZE 2048 /* buffer for the variables */
- #define NUM_ENVP 32 /* number of env pointers */
-
- #if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET)
diff --git a/driver/fix-userspace-interface-breakage-in-power-state.patch b/driver/fix-userspace-interface-breakage-in-power-state.patch
deleted file mode 100644
index 174c2c01dfbb9..0000000000000
--- a/driver/fix-userspace-interface-breakage-in-power-state.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From pavel@ucw.cz Sun Jan 22 13:39:07 2006
-Date: Sun, 22 Jan 2006 22:38:52 +0100
-From: Pavel Machek <pavel@suse.cz>
-To: Andrew Morton <akpm@osdl.org>
-Cc: <greg@kroah.com>, <mochel@digitalimplant.org>, <mjg59@srcf.ucam.org>, <benh@kernel.crashing.org>
-Subject: Fix Userspace interface breakage in power/state
-Message-ID: <20060122213852.GG2043@elf.ucw.cz>
-Content-Disposition: inline
-
-
-Prevent passing invalid values down to the drivers.
-
-Signed-off-by: Pavel Machek <pavel@suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/base/power/sysfs.c | 24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
---- gregkh-2.6.orig/drivers/base/power/sysfs.c
-+++ gregkh-2.6/drivers/base/power/sysfs.c
-@@ -27,22 +27,30 @@
-
- static ssize_t state_show(struct device * dev, struct device_attribute *attr, char * buf)
- {
-- return sprintf(buf, "%u\n", dev->power.power_state.event);
-+ if (dev->power.power_state.event)
-+ return sprintf(buf, "2\n");
-+ else
-+ return sprintf(buf, "0\n");
- }
-
- static ssize_t state_store(struct device * dev, struct device_attribute *attr, const char * buf, size_t n)
- {
- pm_message_t state;
-- char * rest;
-- int error = 0;
-+ int error = -EINVAL;
-
-- state.event = simple_strtoul(buf, &rest, 10);
-- if (*rest)
-- return -EINVAL;
-- if (state.event)
-+ state.event = PM_EVENT_SUSPEND;
-+ /* Older apps expected to write "3" here - confused with PCI D3 */
-+ if ((n == 1) && !strcmp(buf, "3"))
- error = dpm_runtime_suspend(dev, state);
-- else
-+
-+ if ((n == 1) && !strcmp(buf, "2"))
-+ error = dpm_runtime_suspend(dev, state);
-+
-+ if ((n == 1) && !strcmp(buf, "0")) {
- dpm_runtime_resume(dev);
-+ error = 0;
-+ }
-+
- return error ? error : n;
- }
-
diff --git a/driver/ib-sysfs-cleanup.patch b/driver/ib-sysfs-cleanup.patch
deleted file mode 100644
index b55ebe4cd4d83..0000000000000
--- a/driver/ib-sysfs-cleanup.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From foo@baz.org Sun Jun 5 14:33:21 2005
-Date: Fri, 20 Jan 2006 14:08:59 -0800
-To: Greg KH <gregkh@suse.de>
-From: Greg Kroah-Hartman <gregkh@suse.de>
-Subject: IB: fix up major/minor sysfs interface for IB core
-
-Current IB code doesn't work with userspace programs that listen only to
-the kernel event netlink socket as it is trying to create its own dev
-interface. This small patch fixes this problem, and removes some
-unneeded code as the driver core handles this logic for you
-automatically.
-
-Acked-by: Sean Hefty <sean.hefty@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/infiniband/core/ucm.c | 13 +------------
- 1 file changed, 1 insertion(+), 12 deletions(-)
-
---- gregkh-2.6.orig/drivers/infiniband/core/ucm.c
-+++ gregkh-2.6/drivers/infiniband/core/ucm.c
-@@ -1319,15 +1319,6 @@ static struct class ucm_class = {
- .release = ib_ucm_release_class_dev
- };
-
--static ssize_t show_dev(struct class_device *class_dev, char *buf)
--{
-- struct ib_ucm_device *dev;
--
-- dev = container_of(class_dev, struct ib_ucm_device, class_dev);
-- return print_dev_t(buf, dev->dev.dev);
--}
--static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL);
--
- static ssize_t show_ibdev(struct class_device *class_dev, char *buf)
- {
- struct ib_ucm_device *dev;
-@@ -1364,15 +1355,13 @@ static void ib_ucm_add_one(struct ib_dev
-
- ucm_dev->class_dev.class = &ucm_class;
- ucm_dev->class_dev.dev = device->dma_device;
-+ ucm_dev->class_dev.devt = ucm_dev->dev.dev;
- snprintf(ucm_dev->class_dev.class_id, BUS_ID_SIZE, "ucm%d",
- ucm_dev->devnum);
- if (class_device_register(&ucm_dev->class_dev))
- goto err_cdev;
-
- if (class_device_create_file(&ucm_dev->class_dev,
-- &class_device_attr_dev))
-- goto err_class;
-- if (class_device_create_file(&ucm_dev->class_dev,
- &class_device_attr_ibdev))
- goto err_class;
-
diff --git a/driver/kobject-don-t-oops-on-null-kobject.name.patch b/driver/kobject-don-t-oops-on-null-kobject.name.patch
deleted file mode 100644
index 344960df77116..0000000000000
--- a/driver/kobject-don-t-oops-on-null-kobject.name.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 76306.1226@compuserve.com Mon Jan 16 14:06:48 2006
-Date: Thu, 12 Jan 2006 20:02:00 -0500
-From: Chuck Ebbert <76306.1226@compuserve.com>
-Subject: kobject: don't oops on null kobject.name
-To: Greg KH <greg@kroah.com>
-Message-ID: <200601122004_MC3-1-B5C5-4B72@compuserve.com>
-Content-Disposition: inline
-
-kobject_get_path() will oops if one of the component names is
-NULL. Fix that by returning NULL instead of oopsing.
-
-Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
----
- lib/kobject.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- gregkh-2.6.orig/lib/kobject.c
-+++ gregkh-2.6/lib/kobject.c
-@@ -72,6 +72,8 @@ static int get_kobj_path_length(struct k
- * Add 1 to strlen for leading '/' of each level.
- */
- do {
-+ if (kobject_name(parent) == NULL)
-+ return 0;
- length += strlen(kobject_name(parent)) + 1;
- parent = parent->parent;
- } while (parent);
-@@ -107,6 +109,8 @@ char *kobject_get_path(struct kobject *k
- int len;
-
- len = get_kobj_path_length(kobj);
-+ if (len == 0)
-+ return NULL;
- path = kmalloc(len, gfp_mask);
- if (!path)
- return NULL;
diff --git a/driver/kobject_add-must-have-valid-name.patch b/driver/kobject_add-must-have-valid-name.patch
deleted file mode 100644
index 9aff6be36252c..0000000000000
--- a/driver/kobject_add-must-have-valid-name.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Greg Kroah-Hartman <gregkh@suse.de>
-Subject: kobject_add() must have a valid name in order to succeed.
-
-So we might as well check to verify this, and let the user know that
-something is wrong if they didn't do it correctly, instead of oopsing
-later on in kobject_get_name() or somewhere else.
-
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- lib/kobject.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- gregkh-2.6.orig/lib/kobject.c
-+++ gregkh-2.6/lib/kobject.c
-@@ -163,6 +163,11 @@ int kobject_add(struct kobject * kobj)
- return -ENOENT;
- if (!kobj->k_name)
- kobj->k_name = kobj->name;
-+ if (!kobj->k_name) {
-+ pr_debug("kobject attempted to be registered with no name!\n");
-+ WARN_ON(1);
-+ return -EINVAL;
-+ }
- parent = kobject_get(kobj->parent);
-
- pr_debug("kobject %s: registering. parent: %s, set: %s\n",
diff --git a/driver/spi-spi_butterfly-restore-lost-deltas.patch b/driver/spi-spi_butterfly-restore-lost-deltas.patch
deleted file mode 100644
index b3329c73f9fef..0000000000000
--- a/driver/spi-spi_butterfly-restore-lost-deltas.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From david-b@pacbell.net Sat Jan 21 13:21:44 2006
-From: David Brownell <david-b@pacbell.net>
-To: Linus Torvalds <torvalds@osdl.org>
-Subject: SPI: spi_butterfly, restore lost deltas
-Date: Sat, 21 Jan 2006 13:21:43 -0800
-Cc: Greg KH <greg@kroah.com>
-Message-Id: <200601211321.43845.david-b@pacbell.net>
-
-This resolves some minor version skew glitches that accumulated for the AVR
-Butterfly adapter driver, which caused among other things the existence of
-a duplicate Kconfig entry. Most of it boils down to comment updates, but in
-one case it removes some now-superfluous code that would be better if not
-copied into other controller-level drivers.
-
-Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
-
----
- Documentation/spi/butterfly | 23 +++++++++++++++++------
- drivers/spi/Kconfig | 10 ----------
- drivers/spi/spi_butterfly.c | 36 +++++++++++++++++-------------------
- 3 files changed, 34 insertions(+), 35 deletions(-)
-
---- gregkh-2.6.orig/drivers/spi/Kconfig
-+++ gregkh-2.6/drivers/spi/Kconfig
-@@ -75,16 +75,6 @@ config SPI_BUTTERFLY
- inexpensive battery powered microcontroller evaluation board.
- This same cable can be used to flash new firmware.
-
--config SPI_BUTTERFLY
-- tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
-- depends on SPI_MASTER && PARPORT && EXPERIMENTAL
-- select SPI_BITBANG
-- help
-- This uses a custom parallel port cable to connect to an AVR
-- Butterfly <http://www.atmel.com/products/avr/butterfly>, an
-- inexpensive battery powered microcontroller evaluation board.
-- This same cable can be used to flash new firmware.
--
- #
- # Add new SPI master controllers in alphabetical order above this line
- #
---- gregkh-2.6.orig/drivers/spi/spi_butterfly.c
-+++ gregkh-2.6/drivers/spi/spi_butterfly.c
-@@ -163,21 +163,20 @@ static void butterfly_chipselect(struct
- struct butterfly *pp = spidev_to_pp(spi);
-
- /* set default clock polarity */
-- if (value)
-+ if (value != BITBANG_CS_INACTIVE)
- setsck(spi, spi->mode & SPI_CPOL);
-
- /* no chipselect on this USI link config */
- if (is_usidev(spi))
- return;
-
-- /* here, value == "activate or not" */
--
-- /* most PARPORT_CONTROL_* bits are negated */
-+ /* here, value == "activate or not";
-+ * most PARPORT_CONTROL_* bits are negated, so we must
-+ * morph it to value == "bit value to write in control register"
-+ */
- if (spi_cs_bit == PARPORT_CONTROL_INIT)
- value = !value;
-
-- /* here, value == "bit value to write in control register" */
--
- parport_frob_control(pp->port, spi_cs_bit, value ? spi_cs_bit : 0);
- }
-
-@@ -202,7 +201,9 @@ butterfly_txrx_word_mode0(struct spi_dev
-
- /* override default partitioning with cmdlinepart */
- static struct mtd_partition partitions[] = { {
-- /* JFFS2 wants partitions of 4*N blocks for this device ... */
-+ /* JFFS2 wants partitions of 4*N blocks for this device,
-+ * so sectors 0 and 1 can't be partitions by themselves.
-+ */
-
- /* sector 0 = 8 pages * 264 bytes/page (1 block)
- * sector 1 = 248 pages * 264 bytes/page
-@@ -316,8 +317,9 @@ static void butterfly_attach(struct parp
- if (status < 0)
- goto clean2;
-
-- /* Bus 1 lets us talk to at45db041b (firmware disables AVR)
-- * or AVR (firmware resets at45, acts as spi slave)
-+ /* Bus 1 lets us talk to at45db041b (firmware disables AVR SPI), AVR
-+ * (firmware resets at45, acts as spi slave) or neither (we ignore
-+ * both, AVR uses AT45). Here we expect firmware for the first option.
- */
- pp->info[0].max_speed_hz = 15 * 1000 * 1000;
- strcpy(pp->info[0].modalias, "mtd_dataflash");
-@@ -330,7 +332,9 @@ static void butterfly_attach(struct parp
- pp->dataflash->dev.bus_id);
-
- #ifdef HAVE_USI
-- /* even more custom AVR firmware */
-+ /* Bus 2 is only for talking to the AVR, and it can work no
-+ * matter who masters bus 1; needs appropriate AVR firmware.
-+ */
- pp->info[1].max_speed_hz = 10 /* ?? */ * 1000 * 1000;
- strcpy(pp->info[1].modalias, "butterfly");
- // pp->info[1].platform_data = ... TBD ... ;
-@@ -378,13 +382,8 @@ static void butterfly_detach(struct parp
- pp = butterfly;
- butterfly = NULL;
-
--#ifdef HAVE_USI
-- spi_unregister_device(pp->butterfly);
-- pp->butterfly = NULL;
--#endif
-- spi_unregister_device(pp->dataflash);
-- pp->dataflash = NULL;
--
-+ /* stop() unregisters child devices too */
-+ pdev = to_platform_device(pp->bitbang.master->cdev.dev);
- status = spi_bitbang_stop(&pp->bitbang);
-
- /* turn off VCC */
-@@ -394,8 +393,6 @@ static void butterfly_detach(struct parp
- parport_release(pp->pd);
- parport_unregister_device(pp->pd);
-
-- pdev = to_platform_device(pp->bitbang.master->cdev.dev);
--
- (void) spi_master_put(pp->bitbang.master);
-
- platform_device_unregister(pdev);
-@@ -420,4 +417,5 @@ static void __exit butterfly_exit(void)
- }
- module_exit(butterfly_exit);
-
-+MODULE_DESCRIPTION("Parport Adapter driver for AVR Butterfly");
- MODULE_LICENSE("GPL");
---- gregkh-2.6.orig/Documentation/spi/butterfly
-+++ gregkh-2.6/Documentation/spi/butterfly
-@@ -12,13 +12,20 @@ You can make this adapter from an old pr
- directly to the Butterfly. Or (if you have the parts and skills) you
- can come up with something fancier, providing ciruit protection to the
- Butterfly and the printer port, or with a better power supply than two
--signal pins from the printer port.
-+signal pins from the printer port. Or for that matter, you can use
-+similar cables to talk to many AVR boards, even a breadboard.
-+
-+This is more powerful than "ISP programming" cables since it lets kernel
-+SPI protocol drivers interact with the AVR, and could even let the AVR
-+issue interrupts to them. Later, your protocol driver should work
-+easily with a "real SPI controller", instead of this bitbanger.
-
-
- The first cable connections will hook Linux up to one SPI bus, with the
- AVR and a DataFlash chip; and to the AVR reset line. This is all you
- need to reflash the firmware, and the pins are the standard Atmel "ISP"
--connector pins (used also on non-Butterfly AVR boards).
-+connector pins (used also on non-Butterfly AVR boards). On the parport
-+side this is like "sp12" programming cables.
-
- Signal Butterfly Parport (DB-25)
- ------ --------- ---------------
-@@ -40,10 +47,14 @@ by clearing PORTB.[0-3]); (b) configure
- SELECT = J400.PB0/nSS = pin 17/C3,nSELECT
- GND = J400.GND = pin 24/GND
-
--The "USI" controller, using J405, can be used for a second SPI bus. That
--would let you talk to the AVR over SPI, running firmware that makes it act
--as an SPI slave, while letting either Linux or the AVR use the DataFlash.
--There are plenty of spare parport pins to wire this one up, such as:
-+Or you could flash firmware making the AVR into an SPI slave (keeping the
-+DataFlash in reset) and tweak the spi_butterfly driver to make it bind to
-+the driver for your custom SPI-based protocol.
-+
-+The "USI" controller, using J405, can also be used for a second SPI bus.
-+That would let you talk to the AVR using custom SPI-with-USI firmware,
-+while letting either Linux or the AVR use the DataFlash. There are plenty
-+of spare parport pins to wire this one up, such as:
-
- Signal Butterfly Parport (DB-25)
- ------ --------- ---------------