aboutsummaryrefslogtreecommitdiffstats
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2008-01-28 10:00:54 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2008-01-28 10:00:54 -0800
commitdf694001f044ff84344322c47cc2b0df87b76c12 (patch)
tree36f6d3e2568c3aca595c575c87fee3e138743ac1
parente8432b7bab8032bda2b4551435deb2847e2ad802 (diff)
downloadpatches-df694001f044ff84344322c47cc2b0df87b76c12.tar.gz
druver and usb patches
-rw-r--r--driver/driver-core-convert-to-use-class_find_device-api.patch79
-rw-r--r--driver/kobject-kerneldoc-comment-fix.patch30
-rw-r--r--driver/nozomi-driver-update.patch247
-rw-r--r--driver/pm-export-device_pm_schedule_removal.patch67
-rw-r--r--pci/pci-remove-users-of-pci_enable_device_bars.patch6
-rw-r--r--series9
-rw-r--r--usb/usb-handle-idvendor-of-0x0000.patch31
-rw-r--r--usb/usb-use-a-real-vendor-and-product-id-for-root-hubs.patch36
-rw-r--r--version2
9 files changed, 502 insertions, 5 deletions
diff --git a/driver/driver-core-convert-to-use-class_find_device-api.patch b/driver/driver-core-convert-to-use-class_find_device-api.patch
new file mode 100644
index 00000000000000..3a77b61a5a2edd
--- /dev/null
+++ b/driver/driver-core-convert-to-use-class_find_device-api.patch
@@ -0,0 +1,79 @@
+From hidave.darkstar@gmail.com Mon Jan 28 08:57:59 2008
+From: Dave Young <hidave.darkstar@gmail.com>
+Date: Mon, 28 Jan 2008 16:56:11 +0800
+Subject: driver core: convert to use class_find_device api
+To: gregkh@suse.de
+Cc: linux-kernel@vger.kernel.org
+Message-ID: <20080128085611.GA27570@darkstar.te-china.tietoenator.com>
+Content-Disposition: inline
+
+
+Convert to use class_find_device api in drivers/base/core.c
+
+Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/base/core.c | 32 +++++++++++---------------------
+ 1 file changed, 11 insertions(+), 21 deletions(-)
+
+--- a/drivers/base/core.c
++++ b/drivers/base/core.c
+@@ -1144,25 +1144,11 @@ error:
+ }
+ EXPORT_SYMBOL_GPL(device_create);
+
+-/**
+- * find_device - finds a device that was created with device_create()
+- * @class: pointer to the struct class that this device was registered with
+- * @devt: the dev_t of the device that was previously registered
+- */
+-static struct device *find_device(struct class *class, dev_t devt)
++static int __match_devt(struct device *dev, void *data)
+ {
+- struct device *dev = NULL;
+- struct device *dev_tmp;
++ dev_t *devt = data;
+
+- down(&class->sem);
+- list_for_each_entry(dev_tmp, &class->devices, node) {
+- if (dev_tmp->devt == devt) {
+- dev = dev_tmp;
+- break;
+- }
+- }
+- up(&class->sem);
+- return dev;
++ return dev->devt == *devt;
+ }
+
+ /**
+@@ -1177,9 +1163,11 @@ void device_destroy(struct class *class,
+ {
+ struct device *dev;
+
+- dev = find_device(class, devt);
+- if (dev)
++ dev = class_find_device(class, &devt, __match_devt);
++ if (dev) {
++ put_device(dev);
+ device_unregister(dev);
++ }
+ }
+ EXPORT_SYMBOL_GPL(device_destroy);
+
+@@ -1203,9 +1191,11 @@ void destroy_suspended_device(struct cla
+ {
+ struct device *dev;
+
+- dev = find_device(class, devt);
+- if (dev)
++ dev = class_find_device(class, &devt, __match_devt);
++ if (dev) {
+ device_pm_schedule_removal(dev);
++ put_device(dev);
++ }
+ }
+ EXPORT_SYMBOL_GPL(destroy_suspended_device);
+ #endif /* CONFIG_PM_SLEEP */
diff --git a/driver/kobject-kerneldoc-comment-fix.patch b/driver/kobject-kerneldoc-comment-fix.patch
new file mode 100644
index 00000000000000..527adabf41bd24
--- /dev/null
+++ b/driver/kobject-kerneldoc-comment-fix.patch
@@ -0,0 +1,30 @@
+From hidave.darkstar@gmail.com Mon Jan 28 08:58:35 2008
+From: Dave Young <hidave.darkstar@gmail.com>
+Date: Mon, 28 Jan 2008 16:58:00 +0800
+Subject: kobject: kerneldoc comment fix
+To: gregkh@suse.de
+Cc: linux-kernel@vger.kernel.org
+Message-ID: <20080128085800.GB27570@darkstar.te-china.tietoenator.com>
+Content-Disposition: inline
+
+
+Fix kerneldoc comment of kobject_create.
+
+Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ lib/kobject.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/lib/kobject.c
++++ b/lib/kobject.c
+@@ -637,7 +637,7 @@ struct kobject *kobject_create(void)
+ * @name: the name for the kset
+ * @parent: the parent kobject of this kobject, if any.
+ *
+- * This function creates a kset structure dynamically and registers it
++ * This function creates a kobject structure dynamically and registers it
+ * with sysfs. When you are finished with this structure, call
+ * kobject_put() and the structure will be dynamically freed when
+ * it is no longer being used.
diff --git a/driver/nozomi-driver-update.patch b/driver/nozomi-driver-update.patch
new file mode 100644
index 00000000000000..14d060ba806324
--- /dev/null
+++ b/driver/nozomi-driver-update.patch
@@ -0,0 +1,247 @@
+From fseidel@suse.de Mon Jan 28 08:55:56 2008
+From: Frank Seidel <fseidel@suse.de>
+Date: Fri, 25 Jan 2008 21:13:24 +0100
+Subject: nozomi driver update
+To: Greg KH <gregkh@suse.de>
+Cc: Jan Engelhardt <jengelh@computergmbh.de>, linux-kernel@vger.kernel.org, Jiri Slaby <jirislaby@gmail.com>
+Message-ID: <200801252113.25108.fseidel@suse.de>
+Content-Disposition: inline
+
+
+From: Frank Seidel <fseidel@suse.de>
+
+Minor cleanups and removal of in-file changelog:
+
+- Correction of misspellings and wrong encoded Name
+- changed 'unsigned' to 'unsigned int' for better readability
+- use of generic devicefile access macro
+- fixed/added explanatory comment to ntty_put_char
+
+Signed-off-by: Frank Seidel <fseidel@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/nozomi.c | 122 ++++++++++++++------------------------------------
+ 1 file changed, 36 insertions(+), 86 deletions(-)
+
+--- a/drivers/char/nozomi.c
++++ b/drivers/char/nozomi.c
+@@ -2,7 +2,7 @@
+ * nozomi.c -- HSDPA driver Broadband Wireless Data Card - Globe Trotter
+ *
+ * Written by: Ulf Jakobsson,
+- * Jan �erfeldt,
++ * Jan Ã…kerfeldt,
+ * Stefan Thomasson,
+ *
+ * Maintained by: Paul Hardwick (p.hardwick@option.com)
+@@ -38,60 +38,6 @@
+ * --------------------------------------------------------------------------
+ */
+
+-/*
+- * CHANGELOG
+- * Version 2.1d
+- * 11-November-2007 Jiri Slaby, Frank Seidel
+- * - Big rework of multicard support by Jiri
+- * - Major cleanups (semaphore to mutex, endianess, no major reservation)
+- * - Optimizations
+- *
+- * Version 2.1c
+- * 30-October-2007 Frank Seidel
+- * - Completed multicard support
+- * - Minor cleanups
+- *
+- * Version 2.1b
+- * 07-August-2007 Frank Seidel
+- * - Minor cleanups
+- * - theoretical multicard support
+- *
+- * Version 2.1
+- * 03-July-2006 Paul Hardwick
+- *
+- * - Stability Improvements. Incorporated spinlock wraps patch.
+- * - Updated for newer 2.6.14+ kernels (tty_buffer_request_room)
+- * - using __devexit macro for tty
+- *
+- *
+- * Version 2.0
+- * 08-feb-2006 15:34:10:Ulf
+- *
+- * -Fixed issue when not waking up line disipine layer, could probably result
+- * in better uplink performance for 2.4.
+- *
+- * -Fixed issue with big endian during initalization, now proper toggle flags
+- * are handled between preloader and maincode.
+- *
+- * -Fixed flow control issue.
+- *
+- * -Added support for setting DTR.
+- *
+- * -For 2.4 kernels, removing temporary buffer that's not needed.
+- *
+- * -Reading CTS only for modem port (only port that supports it).
+- *
+- * -Return 0 in write_room instead of netative value, it's not handled in
+- * upper layer.
+- *
+- * --------------------------------------------------------------------------
+- * Version 1.0
+- *
+- * First version of driver, only tested with card of type F32_2.
+- * Works fine with 2.4 and 2.6 kernels.
+- * Driver also support big endian architecture.
+- */
+-
+ /* Enable this to have a lot of debug printouts */
+ #define DEBUG
+
+@@ -143,8 +89,9 @@ do { \
+ /* Do we need this settable at runtime? */
+ static int debug = NOZOMI_DEBUG_LEVEL;
+
+-#define D(lvl, args...) do {if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
+- while (0)
++#define D(lvl, args...) do \
++ {if (lvl & debug) NFO(KERN_DEBUG, ##args); } \
++ while (0)
+ #define D_(lvl, args...) D(lvl, ##args)
+
+ /* These printouts are always printed */
+@@ -273,13 +220,13 @@ enum port_type {
+ /* Big endian */
+
+ struct toggles {
+- unsigned enabled:5; /*
++ unsigned int enabled:5; /*
+ * Toggle fields are valid if enabled is 0,
+ * else A-channels must always be used.
+ */
+- unsigned diag_dl:1;
+- unsigned mdm_dl:1;
+- unsigned mdm_ul:1;
++ unsigned int diag_dl:1;
++ unsigned int mdm_dl:1;
++ unsigned int mdm_ul:1;
+ } __attribute__ ((packed));
+
+ /* Configuration table to read at startup of card */
+@@ -320,19 +267,19 @@ struct config_table {
+ /* This stores all control downlink flags */
+ struct ctrl_dl {
+ u8 port;
+- unsigned reserved:4;
+- unsigned CTS:1;
+- unsigned RI:1;
+- unsigned DCD:1;
+- unsigned DSR:1;
++ unsigned int reserved:4;
++ unsigned int CTS:1;
++ unsigned int RI:1;
++ unsigned int DCD:1;
++ unsigned int DSR:1;
+ } __attribute__ ((packed));
+
+ /* This stores all control uplink flags */
+ struct ctrl_ul {
+ u8 port;
+- unsigned reserved:6;
+- unsigned RTS:1;
+- unsigned DTR:1;
++ unsigned int reserved:6;
++ unsigned int RTS:1;
++ unsigned int DTR:1;
+ } __attribute__ ((packed));
+
+ #else
+@@ -340,10 +287,10 @@ struct ctrl_ul {
+
+ /* This represents the toggle information */
+ struct toggles {
+- unsigned mdm_ul:1;
+- unsigned mdm_dl:1;
+- unsigned diag_dl:1;
+- unsigned enabled:5; /*
++ unsigned int mdm_ul:1;
++ unsigned int mdm_dl:1;
++ unsigned int diag_dl:1;
++ unsigned int enabled:5; /*
+ * Toggle fields are valid if enabled is 0,
+ * else A-channels must always be used.
+ */
+@@ -379,19 +326,19 @@ struct config_table {
+
+ /* This stores all control downlink flags */
+ struct ctrl_dl {
+- unsigned DSR:1;
+- unsigned DCD:1;
+- unsigned RI:1;
+- unsigned CTS:1;
+- unsigned reserverd:4;
++ unsigned int DSR:1;
++ unsigned int DCD:1;
++ unsigned int RI:1;
++ unsigned int CTS:1;
++ unsigned int reserverd:4;
+ u8 port;
+ } __attribute__ ((packed));
+
+ /* This stores all control uplink flags */
+ struct ctrl_ul {
+- unsigned DTR:1;
+- unsigned RTS:1;
+- unsigned reserved:6;
++ unsigned int DTR:1;
++ unsigned int RTS:1;
++ unsigned int reserved:6;
+ u8 port;
+ } __attribute__ ((packed));
+ #endif
+@@ -694,7 +641,7 @@ static void dump_table(const struct nozo
+ dc->config_table.ul_ctrl_len);
+ }
+ #else
+-static __inline__ void dump_table(const struct nozomi *dc) { }
++static inline void dump_table(const struct nozomi *dc) { }
+ #endif
+
+ /*
+@@ -1102,7 +1049,7 @@ static int send_flow_control(struct nozo
+ }
+
+ /*
+- * Handle donlink data, ports that are handled are modem and diagnostics
++ * Handle downlink data, ports that are handled are modem and diagnostics
+ * Return 1 - ok
+ * Return 0 - toggle fields are out of sync
+ */
+@@ -1363,7 +1310,7 @@ static ssize_t card_type_show(struct dev
+
+ return sprintf(buf, "%d\n", dc->card_type);
+ }
+-static DEVICE_ATTR(card_type, 0444, card_type_show, NULL);
++static DEVICE_ATTR(card_type, S_IRUGO, card_type_show, NULL);
+
+ static ssize_t open_ttys_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+@@ -1372,7 +1319,7 @@ static ssize_t open_ttys_show(struct dev
+
+ return sprintf(buf, "%u\n", dc->open_ttys);
+ }
+-static DEVICE_ATTR(open_ttys, 0444, open_ttys_show, NULL);
++static DEVICE_ATTR(open_ttys, S_IRUGO, open_ttys_show, NULL);
+
+ static void make_sysfs_files(struct nozomi *dc)
+ {
+@@ -1882,7 +1829,10 @@ static void ntty_throttle(struct tty_str
+ /* just to discard single character writes */
+ static void ntty_put_char(struct tty_struct *tty, unsigned char c)
+ {
+- /* FIXME !!! */
++ /*
++ * card does not react correct when we write single chars
++ * to the card, so we discard them
++ */
+ DBG2("PUT CHAR Function: %c", c);
+ }
+
diff --git a/driver/pm-export-device_pm_schedule_removal.patch b/driver/pm-export-device_pm_schedule_removal.patch
new file mode 100644
index 00000000000000..0e02e5150b17ae
--- /dev/null
+++ b/driver/pm-export-device_pm_schedule_removal.patch
@@ -0,0 +1,67 @@
+From rjw@sisk.pl Mon Jan 28 08:57:01 2008
+From: "Rafael J. Wysocki" <rjw@sisk.pl>
+Date: Fri, 25 Jan 2008 01:30:25 +0100
+Subject: PM: Export device_pm_schedule_removal
+To: Andrew Morton <akpm@linux-foundation.org>
+Cc: Michael Buesch <mb@bu3sch.de>, pm list <linux-pm@lists.linux-foundation.org>, Alan Stern <stern@rowland.harvard.edu>, Len Brown <lenb@kernel.org>, LKML <linux-kernel@vger.kernel.org>, Pavel Machek <pavel@ucw.cz>, bcm43xx-dev@lists.berlios.de, Alessandro Rubini <rubini@ipvvis.unipv.it>, Richard Purdie <rpurdie@rpsys.net>, Greg KH <greg@kroah.com>
+Message-ID: <200801250130.26591.rjw@sisk.pl>
+Content-Disposition: inline
+
+
+From: Rafael J. Wysocki <rjw@sisk.pl>
+
+Move the declaration of device_pm_schedule_removal() to device.h
+and make it exported, as it will be used directly by some drivers
+for unregistering device objects during suspend/resume cycles in a
+safe way.
+
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Acked-by: Pavel Machek <pavel@ucw.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/base/power/main.c | 1 +
+ drivers/base/power/power.h | 1 -
+ include/linux/device.h | 6 ++++++
+ 3 files changed, 7 insertions(+), 1 deletion(-)
+
+--- a/drivers/base/power/main.c
++++ b/drivers/base/power/main.c
+@@ -129,6 +129,7 @@ void device_pm_schedule_removal(struct d
+ list_move_tail(&dev->power.entry, &dpm_destroy);
+ mutex_unlock(&dpm_list_mtx);
+ }
++EXPORT_SYMBOL_GPL(device_pm_schedule_removal);
+
+ /**
+ * pm_sleep_lock - mutual exclusion for registration and suspend
+--- a/drivers/base/power/power.h
++++ b/drivers/base/power/power.h
+@@ -13,7 +13,6 @@ static inline struct device *to_device(s
+
+ extern void device_pm_add(struct device *);
+ extern void device_pm_remove(struct device *);
+-extern void device_pm_schedule_removal(struct device *);
+ extern int pm_sleep_lock(void);
+ extern void pm_sleep_unlock(void);
+
+--- a/include/linux/device.h
++++ b/include/linux/device.h
+@@ -534,11 +534,17 @@ extern struct device *device_create(stru
+ extern void device_destroy(struct class *cls, dev_t devt);
+ #ifdef CONFIG_PM_SLEEP
+ extern void destroy_suspended_device(struct class *cls, dev_t devt);
++extern void device_pm_schedule_removal(struct device *);
+ #else /* !CONFIG_PM_SLEEP */
+ static inline void destroy_suspended_device(struct class *cls, dev_t devt)
+ {
+ device_destroy(cls, devt);
+ }
++
++static inline void device_pm_schedule_removal(struct device *dev)
++{
++ device_unregister(dev);
++}
+ #endif /* !CONFIG_PM_SLEEP */
+
+ /*
diff --git a/pci/pci-remove-users-of-pci_enable_device_bars.patch b/pci/pci-remove-users-of-pci_enable_device_bars.patch
index bd4a58942b4d8a..a020b90fdb4744 100644
--- a/pci/pci-remove-users-of-pci_enable_device_bars.patch
+++ b/pci/pci-remove-users-of-pci_enable_device_bars.patch
@@ -53,7 +53,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/ide/pci/cs5520.c
+++ b/drivers/ide/pci/cs5520.c
-@@ -161,8 +161,14 @@ static int __devinit cs5520_init_one(str
+@@ -156,8 +156,14 @@ static int __devinit cs5520_init_one(str
ide_setup_pci_noise(dev, d);
/* We must not grab the entire device, it has 'ISA' space in its
@@ -72,7 +72,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
-@@ -236,7 +236,9 @@ EXPORT_SYMBOL_GPL(ide_setup_pci_noise);
+@@ -240,7 +240,9 @@ EXPORT_SYMBOL_GPL(ide_setup_pci_noise);
* @d: IDE port info
*
* Enable the IDE PCI device. We attempt to enable the device in full
@@ -83,7 +83,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
*
* Returns zero on success or an error code
*/
-@@ -246,7 +248,7 @@ static int ide_pci_enable(struct pci_dev
+@@ -250,7 +252,7 @@ static int ide_pci_enable(struct pci_dev
int ret;
if (pci_enable_device(dev)) {
diff --git a/series b/series
index bf8ad4fbace7f7..1c7af995606481 100644
--- a/series
+++ b/series
@@ -14,6 +14,11 @@ driver/driver-core-add-bus_find_device_by_name-function.patch
driver/net-convert-the-phy_device-file-to-use-bus_find_device_by_name.patch
driver/ppc-fix-powerpc-vio_find_name-to-not-use-devices_subsys.patch
+driver/nozomi-driver-update.patch
+driver/pm-export-device_pm_schedule_removal.patch
+driver/driver-core-convert-to-use-class_find_device-api.patch
+driver/kobject-kerneldoc-comment-fix.patch
+
# driver patches for after 2.6.24 is out
#driver/atm-convert-struct-class_device-to-struct-device.patch
@@ -217,7 +222,8 @@ usb/usb-ehci-remove-false-clear-reset-path.patch
usb/usb-ehci-should-use-u16-for-isochronous-intervals.patch
usb/usb-fix-usb_serial_driver-structure-for-kobil-cardreader-driver.patch
usb/usbfs_opts.patch
-
+usb/usb-handle-idvendor-of-0x0000.patch
+usb/usb-use-a-real-vendor-and-product-id-for-root-hubs.patch
usb/usb-mark-usb-drivers-as-being-gpl-only.patch
# my ols tutorial driver, never in mainline
@@ -231,3 +237,4 @@ usb/usb-gotemp.patch
#pending/block-make-genhd-use-the-new-class-iterator-functions.patch
#pending/class-move-driver-core-specific-parts-to-a-private-structure.patch
+
diff --git a/usb/usb-handle-idvendor-of-0x0000.patch b/usb/usb-handle-idvendor-of-0x0000.patch
new file mode 100644
index 00000000000000..7e99303712abe0
--- /dev/null
+++ b/usb/usb-handle-idvendor-of-0x0000.patch
@@ -0,0 +1,31 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Mon, 28 Jan 2008 09:50:12 -0800
+To: Greg KH <greg@kroah.com>
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: USB: handle idVendor of 0x0000
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+Some crazy devices in the wild have a vendor id of 0x0000. If we try to
+add a module alias with this id, we just can't do it due to a check in
+the file2alias.c file. Change the test to verify that both the vendor
+and product ids are 0x0000 to show a real "blank" module alias.
+
+Cc: Janusz <janumix@poczta.fm>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ scripts/mod/file2alias.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -155,7 +155,7 @@ static void do_usb_entry_multi(struct us
+ * Some modules (visor) have empty slots as placeholder for
+ * run-time specification that results in catch-all alias
+ */
+- if (!(id->idVendor | id->bDeviceClass | id->bInterfaceClass))
++ if (!(id->idVendor | id->idProduct | id->bDeviceClass | id->bInterfaceClass))
+ return;
+
+ /* Convert numeric bcdDevice range into fnmatch-able pattern(s) */
diff --git a/usb/usb-use-a-real-vendor-and-product-id-for-root-hubs.patch b/usb/usb-use-a-real-vendor-and-product-id-for-root-hubs.patch
new file mode 100644
index 00000000000000..f81d3dc77be2e3
--- /dev/null
+++ b/usb/usb-use-a-real-vendor-and-product-id-for-root-hubs.patch
@@ -0,0 +1,36 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Mon, 28 Jan 2008 09:50:12 -0800
+To: Greg KH <greg@kroah.com>
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: USB: use a real vendor and product id for root hubs
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+Turns out that a company is out there using the vendor id of 0x0000 in
+the wild, so use a real vendor/product id for the root hubs.
+
+Now that the Linux Foundation has a real vendor id, we use that, and the
+first product id:
+ 0x1d6b is the vendor id of the Linux Foundation
+ 0x0001 is the product id for Linux root hubs
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/core/hcd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -132,8 +132,8 @@ static const u8 usb2_rh_dev_descriptor [
+ 0x01, /* __u8 bDeviceProtocol; [ usb 2.0 single TT ]*/
+ 0x40, /* __u8 bMaxPacketSize0; 64 Bytes */
+
+- 0x00, 0x00, /* __le16 idVendor; */
+- 0x00, 0x00, /* __le16 idProduct; */
++ 0x6b, 0x1d, /* __le16 idVendor; Linux Foundation */
++ 0x01, 0x00, /* __le16 idProduct; device 0x0001 */
+ KERNEL_VER, KERNEL_REL, /* __le16 bcdDevice */
+
+ 0x03, /* __u8 iManufacturer; */
diff --git a/version b/version
index b889e008857813..122831c7367d31 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-2.6.24-git2
+2.6.24-git4