diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-15 15:42:02 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-15 15:42:02 -0700 |
| commit | 6eeb80e6fc8b2556be10ed0dd7d9104774aa7613 (patch) | |
| tree | bd0e2e8b7b160dd638381dcfe3fbc4b0c72108fa | |
| parent | 8cd954e9929a6cd5e42f25d91ce1e3e0a6365084 (diff) | |
| download | patches-6eeb80e6fc8b2556be10ed0dd7d9104774aa7613.tar.gz | |
more bugfixes
20 files changed, 1146 insertions, 1 deletions
diff --git a/driver-core.current/driver-core-early-platform-kernel-doc-update.patch b/driver-core.current/driver-core-early-platform-kernel-doc-update.patch new file mode 100644 index 00000000000000..6762ddf693d2d6 --- /dev/null +++ b/driver-core.current/driver-core-early-platform-kernel-doc-update.patch @@ -0,0 +1,107 @@ +From magnus.damm@gmail.com Mon Mar 15 15:05:41 2010 +From: Magnus Damm <magnus.damm@gmail.com> +Date: Wed, 10 Mar 2010 20:50:38 +0900 +Subject: Driver core: Early platform kernel-doc update +Cc: Magnus Damm <magnus.damm@gmail.com>, gregkh@suse.de, rdunlap@xenotime.net +Message-ID: <20100310115038.21785.46115.sendpatchset@t400s> + + +From: Magnus Damm <damm@opensource.se> + +This patch updates the kernel-doc notation for early +platform functions. + +Signed-off-by: Magnus Damm <damm@opensource.se> +Acked-by: Randy Dunlap <rdunlap@xenotime.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/base/platform.c | 27 ++++++++++++++++++++------- + 1 file changed, 20 insertions(+), 7 deletions(-) + +--- a/drivers/base/platform.c ++++ b/drivers/base/platform.c +@@ -1052,9 +1052,11 @@ static __initdata LIST_HEAD(early_platfo + static __initdata LIST_HEAD(early_platform_device_list); + + /** +- * early_platform_driver_register ++ * early_platform_driver_register - register early platform driver + * @epdrv: early_platform driver structure + * @buf: string passed from early_param() ++ * ++ * Helper function for early_platform_init() / early_platform_init_buffer() + */ + int __init early_platform_driver_register(struct early_platform_driver *epdrv, + char *buf) +@@ -1106,9 +1108,12 @@ int __init early_platform_driver_registe + } + + /** +- * early_platform_add_devices - add a numbers of early platform devices ++ * early_platform_add_devices - adds a number of early platform devices + * @devs: array of early platform devices to add + * @num: number of early platform devices in array ++ * ++ * Used by early architecture code to register early platform devices and ++ * their platform data. + */ + void __init early_platform_add_devices(struct platform_device **devs, int num) + { +@@ -1128,8 +1133,12 @@ void __init early_platform_add_devices(s + } + + /** +- * early_platform_driver_register_all ++ * early_platform_driver_register_all - register early platform drivers + * @class_str: string to identify early platform driver class ++ * ++ * Used by architecture code to register all early platform drivers ++ * for a certain class. If omitted then only early platform drivers ++ * with matching kernel command line class parameters will be registered. + */ + void __init early_platform_driver_register_all(char *class_str) + { +@@ -1151,7 +1160,7 @@ void __init early_platform_driver_regist + } + + /** +- * early_platform_match ++ * early_platform_match - find early platform device matching driver + * @epdrv: early platform driver structure + * @id: id to match against + */ +@@ -1169,7 +1178,7 @@ early_platform_match(struct early_platfo + } + + /** +- * early_platform_left ++ * early_platform_left - check if early platform driver has matching devices + * @epdrv: early platform driver structure + * @id: return true if id or above exists + */ +@@ -1187,7 +1196,7 @@ static __init int early_platform_left(s + } + + /** +- * early_platform_driver_probe_id ++ * early_platform_driver_probe_id - probe drivers matching class_str and id + * @class_str: string to identify early platform driver class + * @id: id to match against + * @nr_probe: number of platform devices to successfully probe before exiting +@@ -1257,10 +1266,14 @@ static int __init early_platform_driver_ + } + + /** +- * early_platform_driver_probe ++ * early_platform_driver_probe - probe a class of registered drivers + * @class_str: string to identify early platform driver class + * @nr_probe: number of platform devices to successfully probe before exiting + * @user_only: only probe user specified early platform devices ++ * ++ * Used by architecture code to probe registered early platform drivers ++ * within a certain class. For probe to happen a registered early platform ++ * device matching a registered early platform driver is needed. + */ + int __init early_platform_driver_probe(char *class_str, + int nr_probe, diff --git a/driver-core.current/driver-core-fix-missing-kernel-doc-in-firmware_class.patch b/driver-core.current/driver-core-fix-missing-kernel-doc-in-firmware_class.patch new file mode 100644 index 00000000000000..61d85d727ebe3a --- /dev/null +++ b/driver-core.current/driver-core-fix-missing-kernel-doc-in-firmware_class.patch @@ -0,0 +1,31 @@ +From randy.dunlap@oracle.com Mon Mar 15 15:06:08 2010 +From: Randy Dunlap <randy.dunlap@oracle.com> +Date: Wed, 10 Mar 2010 11:47:58 -0800 +Subject: driver-core: fix missing kernel-doc in firmware_class +Cc: gregkh@suse.de +Message-ID: <20100310114758.622bfff2.randy.dunlap@oracle.com> + + +From: Randy Dunlap <randy.dunlap@oracle.com> + +Fix kernel-doc warning in firmware_class.c: + +Warning(drivers/base/firmware_class.c:94): No description found for parameter 'attr' + +Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/base/firmware_class.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/base/firmware_class.c ++++ b/drivers/base/firmware_class.c +@@ -78,6 +78,7 @@ firmware_timeout_show(struct class *clas + /** + * firmware_timeout_store - set number of seconds to wait for firmware + * @class: device class pointer ++ * @attr: device attribute pointer + * @buf: buffer to scan for timeout value + * @count: number of bytes in @buf + * diff --git a/driver-core.current/kobject-documentation-fix-erroneous-example-in-kobject-doc.patch b/driver-core.current/kobject-documentation-fix-erroneous-example-in-kobject-doc.patch new file mode 100644 index 00000000000000..e98a80e9befbdc --- /dev/null +++ b/driver-core.current/kobject-documentation-fix-erroneous-example-in-kobject-doc.patch @@ -0,0 +1,97 @@ +From rpjday@crashcourse.ca Mon Mar 15 15:23:26 2010 +From: "Robert P. J. Day" <rpjday@crashcourse.ca> +Date: Thu, 11 Mar 2010 07:59:09 -0500 (EST) +Subject: kobject: documentation: Fix erroneous example in kobject doc. +Cc: Greg KH <greg@kroah.com> +Message-ID: <alpine.LFD.2.00.1003110755510.5479@localhost> + + + +Replace uio_mem example for kobjects with uio_map, since the uio_mem +struct no longer contains a kobject. + +Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + Documentation/kobject.txt | 57 ++++++++++++++++++++++++++++++---------------- + 1 file changed, 38 insertions(+), 19 deletions(-) + +--- a/Documentation/kobject.txt ++++ b/Documentation/kobject.txt +@@ -59,37 +59,56 @@ nice to have in other objects. The C la + direct expression of inheritance, so other techniques - such as structure + embedding - must be used. + +-So, for example, the UIO code has a structure that defines the memory +-region associated with a uio device: ++(As an aside, for those familiar with the kernel linked list implementation, ++this is analogous as to how "list_head" structs are rarely useful on ++their own, but are invariably found embedded in the larger objects of ++interest.) + +-struct uio_mem { ++So, for example, the UIO code in drivers/uio/uio.c has a structure that ++defines the memory region associated with a uio device: ++ ++ struct uio_map { + struct kobject kobj; +- unsigned long addr; +- unsigned long size; +- int memtype; +- void __iomem *internal_addr; +-}; ++ struct uio_mem *mem; ++ }; + +-If you have a struct uio_mem structure, finding its embedded kobject is ++If you have a struct uio_map structure, finding its embedded kobject is + just a matter of using the kobj member. Code that works with kobjects will + often have the opposite problem, however: given a struct kobject pointer, + what is the pointer to the containing structure? You must avoid tricks + (such as assuming that the kobject is at the beginning of the structure) + and, instead, use the container_of() macro, found in <linux/kernel.h>: + +- container_of(pointer, type, member) ++ container_of(pointer, type, member) ++ ++where: ++ ++ * "pointer" is the pointer to the embedded kobject, ++ * "type" is the type of the containing structure, and ++ * "member" is the name of the structure field to which "pointer" points. ++ ++The return value from container_of() is a pointer to the corresponding ++container type. So, for example, a pointer "kp" to a struct kobject ++embedded *within* a struct uio_map could be converted to a pointer to the ++*containing* uio_map structure with: ++ ++ struct uio_map *u_map = container_of(kp, struct uio_map, kobj); ++ ++For convenience, programmers often define a simple macro for "back-casting" ++kobject pointers to the containing type. Exactly this happens in the ++earlier drivers/uio/uio.c, as you can see here: ++ ++ struct uio_map { ++ struct kobject kobj; ++ struct uio_mem *mem; ++ }; + +-where pointer is the pointer to the embedded kobject, type is the type of +-the containing structure, and member is the name of the structure field to +-which pointer points. The return value from container_of() is a pointer to +-the given type. So, for example, a pointer "kp" to a struct kobject +-embedded within a struct uio_mem could be converted to a pointer to the +-containing uio_mem structure with: ++ #define to_map(map) container_of(map, struct uio_map, kobj) + +- struct uio_mem *u_mem = container_of(kp, struct uio_mem, kobj); ++where the macro argument "map" is a pointer to the struct kobject in ++question. That macro is subsequently invoked with: + +-Programmers often define a simple macro for "back-casting" kobject pointers +-to the containing type. ++ struct uio_map *map = to_map(kobj); + + + Initialization of kobjects @@ -13,12 +13,18 @@ driver-core.current/sysfs-initialised-pci-bus-legacy_mem-field-before-use.patch driver-core.current/sysfs-fix-sysfs-lockdep-warning-in-ipmi-code.patch driver-core.current/sysfs-fix-sysfs-lockdep-warning-in-infiniband-code.patch driver-core.current/sysfs-fix-sysfs-lockdep-warning-in-mlx4-code.patch +driver-core.current/driver-core-early-platform-kernel-doc-update.patch +driver-core.current/driver-core-fix-missing-kernel-doc-in-firmware_class.patch +driver-core.current/kobject-documentation-fix-erroneous-example-in-kobject-doc.patch ################################# # TTY patches for 2.6.34 ################################# tty.current/tty-take-a-256-byte-padding-into-account-when-buffering-below-sub-page-units.patch tty.current/uartlite-fix-build-on-sparc.patch +tty.current/hvc_console-fix-race-between-hvc_close-and-hvc_remove.patch +tty.current/tty_buffer-fix-distinct-type-warning.patch +tty.current/tty-cpm_uart-use-resource_size.patch ################################# # USB patches for 2.6.34 @@ -32,7 +38,19 @@ usb.current/usb-option-add-support-for-a-variant-of-dlink-dwm-652-u5.patch usb.current/usb-ehci-fix-itd-list-order.patch usb.current/usb-ehci-adjust-ehci_iso_stream-for-changes-in-ehci_qh.patch usb.current/usb-cdc-acm-fix-stupid-null-pointer-in-resume.patch - +usb.current/usb-qcserial-add-new-device-ids.patch +usb.current/usb-musb-fix-build-error-introduced-by-isoc-change.patch +usb.current/usb-xhci-re-initialize-cmd_completion.patch +usb.current/usb-serial-ftdi-add-contec-vendor-and-product-id.patch +usb.current/usb-option-fix-incorrect-manufacturer-name-in-usb-serial-option-maxon-cmotech.patch +usb.current/usb-option-move-hardcoded-pid-to-a-macro-in-usb-serial-option.patch +usb.current/usb-option-add-support-for-a-new-cmotech-device-to-usb-serial-option.patch +usb.current/usb-fix-documentation-for-avoid_reset_quirk.patch +usb.current/usb-gadget-fix-compile-error-on-r8a66597-udc.c.patch +usb.current/usb-musb-fix-compile-error-for-omaps-for-musb_hdrc.patch +usb.current/usb-musb-abstract-out-ulpi_buscontrol-register-reads-writes.patch +usb.current/usb-musb-fix-warnings-in-blackfin-regs.patch +usb.current/usb-musb-core-declare-mbase-only-where-it-s-used.patch ################################# @@ -66,3 +84,5 @@ driver-core/drivers-base-convert-sema.patch ####################################### + + diff --git a/tty.current/hvc_console-fix-race-between-hvc_close-and-hvc_remove.patch b/tty.current/hvc_console-fix-race-between-hvc_close-and-hvc_remove.patch new file mode 100644 index 00000000000000..b8bff19cf74ea1 --- /dev/null +++ b/tty.current/hvc_console-fix-race-between-hvc_close-and-hvc_remove.patch @@ -0,0 +1,169 @@ +From amit.shah@redhat.com Mon Mar 15 15:09:49 2010 +From: Amit Shah <amit.shah@redhat.com> +Date: Fri, 12 Mar 2010 11:53:15 +0530 +Subject: hvc_console: Fix race between hvc_close and hvc_remove +Cc: benh@kernel.crashing.org, greg@kroah.com, torvalds@linux-foundation.org, Amit Shah <amit.shah@redhat.com>, Alan Cox <alan@lxorguk.ukuu.org.uk>, linuxppc-dev@ozlabs.org, Rusty Russell <rusty@rustcorp.com.au> +Message-ID: <1268374995-20722-1-git-send-email-amit.shah@redhat.com> + + +Alan pointed out a race in the code where hvc_remove is invoked. The +recent virtio_console work is the first user of hvc_remove(). + +Alan describes it thus: + +The hvc_console assumes that a close and remove call can't occur at the +same time. + +In addition tty_hangup(tty) is problematic as tty_hangup is asynchronous +itself.... + +So this can happen + + hvc_close hvc_remove + hung up ? - no + lock + tty = hp->tty + unlock + lock + hp->tty = NULL + unlock + notify del + kref_put the hvc struct + close completes + tty is destroyed + tty_hangup dead tty + tty->ops will be NULL + NULL->... + +This patch adds some tty krefs and also converts to using tty_vhangup(). + +Reported-by: Alan Cox <alan@lxorguk.ukuu.org.uk> +Signed-off-by: Amit Shah <amit.shah@redhat.com> +CC: Alan Cox <alan@lxorguk.ukuu.org.uk> +CC: linuxppc-dev@ozlabs.org +CC: Rusty Russell <rusty@rustcorp.com.au> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/char/hvc_console.c | 31 +++++++++++++++++++++---------- + 1 file changed, 21 insertions(+), 10 deletions(-) + +--- a/drivers/char/hvc_console.c ++++ b/drivers/char/hvc_console.c +@@ -312,6 +312,7 @@ static int hvc_open(struct tty_struct *t + spin_lock_irqsave(&hp->lock, flags); + /* Check and then increment for fast path open. */ + if (hp->count++ > 0) { ++ tty_kref_get(tty); + spin_unlock_irqrestore(&hp->lock, flags); + hvc_kick(); + return 0; +@@ -319,7 +320,7 @@ static int hvc_open(struct tty_struct *t + + tty->driver_data = hp; + +- hp->tty = tty; ++ hp->tty = tty_kref_get(tty); + + spin_unlock_irqrestore(&hp->lock, flags); + +@@ -336,6 +337,7 @@ static int hvc_open(struct tty_struct *t + spin_lock_irqsave(&hp->lock, flags); + hp->tty = NULL; + spin_unlock_irqrestore(&hp->lock, flags); ++ tty_kref_put(tty); + tty->driver_data = NULL; + kref_put(&hp->kref, destroy_hvc_struct); + printk(KERN_ERR "hvc_open: request_irq failed with rc %d.\n", rc); +@@ -363,13 +365,18 @@ static void hvc_close(struct tty_struct + return; + + hp = tty->driver_data; ++ + spin_lock_irqsave(&hp->lock, flags); ++ tty_kref_get(tty); + + if (--hp->count == 0) { + /* We are done with the tty pointer now. */ + hp->tty = NULL; + spin_unlock_irqrestore(&hp->lock, flags); + ++ /* Put the ref obtained in hvc_open() */ ++ tty_kref_put(tty); ++ + if (hp->ops->notifier_del) + hp->ops->notifier_del(hp, hp->data); + +@@ -389,6 +396,7 @@ static void hvc_close(struct tty_struct + spin_unlock_irqrestore(&hp->lock, flags); + } + ++ tty_kref_put(tty); + kref_put(&hp->kref, destroy_hvc_struct); + } + +@@ -424,10 +432,11 @@ static void hvc_hangup(struct tty_struct + spin_unlock_irqrestore(&hp->lock, flags); + + if (hp->ops->notifier_hangup) +- hp->ops->notifier_hangup(hp, hp->data); ++ hp->ops->notifier_hangup(hp, hp->data); + + while(temp_open_count) { + --temp_open_count; ++ tty_kref_put(tty); + kref_put(&hp->kref, destroy_hvc_struct); + } + } +@@ -592,7 +601,7 @@ int hvc_poll(struct hvc_struct *hp) + } + + /* No tty attached, just skip */ +- tty = hp->tty; ++ tty = tty_kref_get(hp->tty); + if (tty == NULL) + goto bail; + +@@ -672,6 +681,8 @@ int hvc_poll(struct hvc_struct *hp) + + tty_flip_buffer_push(tty); + } ++ if (tty) ++ tty_kref_put(tty); + + return poll_mask; + } +@@ -807,7 +818,7 @@ int hvc_remove(struct hvc_struct *hp) + struct tty_struct *tty; + + spin_lock_irqsave(&hp->lock, flags); +- tty = hp->tty; ++ tty = tty_kref_get(hp->tty); + + if (hp->index < MAX_NR_HVC_CONSOLES) + vtermnos[hp->index] = -1; +@@ -819,18 +830,18 @@ int hvc_remove(struct hvc_struct *hp) + /* + * We 'put' the instance that was grabbed when the kref instance + * was initialized using kref_init(). Let the last holder of this +- * kref cause it to be removed, which will probably be the tty_hangup ++ * kref cause it to be removed, which will probably be the tty_vhangup + * below. + */ + kref_put(&hp->kref, destroy_hvc_struct); + + /* +- * This function call will auto chain call hvc_hangup. The tty should +- * always be valid at this time unless a simultaneous tty close already +- * cleaned up the hvc_struct. ++ * This function call will auto chain call hvc_hangup. + */ +- if (tty) +- tty_hangup(tty); ++ if (tty) { ++ tty_vhangup(tty); ++ tty_kref_put(tty); ++ } + return 0; + } + EXPORT_SYMBOL_GPL(hvc_remove); diff --git a/tty.current/tty-cpm_uart-use-resource_size.patch b/tty.current/tty-cpm_uart-use-resource_size.patch new file mode 100644 index 00000000000000..abf0d63b3ca398 --- /dev/null +++ b/tty.current/tty-cpm_uart-use-resource_size.patch @@ -0,0 +1,44 @@ +From akpm@linux-foundation.org Mon Mar 15 15:22:12 2010 +From: Tobias Klauser <tklauser@distanz.ch> +Date: Thu, 11 Mar 2010 14:08:18 -0800 +Subject: tty: cpm_uart: use resource_size() +To: greg@kroah.com +Cc: akpm@linux-foundation.org, tklauser@distanz.ch, alan@lxorguk.ukuu.org.uk, galak@gate.crashing.org +Message-ID: <201003112208.o2BM8In9013530@imap1.linux-foundation.org> + + +From: Tobias Klauser <tklauser@distanz.ch> + +Use the resource_size function instead of manually calculating the +resource size. This reduces the chance of introducing off-by-one errors. + +Signed-off-by: Tobias Klauser <tklauser@distanz.ch> +Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> +Cc: Kumar Gala <galak@gate.crashing.org> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/serial/cpm_uart/cpm_uart_cpm2.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c ++++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c +@@ -61,7 +61,7 @@ void __iomem *cpm_uart_map_pram(struct u + void __iomem *pram; + unsigned long offset; + struct resource res; +- unsigned long len; ++ resource_size_t len; + + /* Don't remap parameter RAM if it has already been initialized + * during console setup. +@@ -74,7 +74,7 @@ void __iomem *cpm_uart_map_pram(struct u + if (of_address_to_resource(np, 1, &res)) + return NULL; + +- len = 1 + res.end - res.start; ++ len = resource_size(&res); + pram = ioremap(res.start, len); + if (!pram) + return NULL; diff --git a/tty.current/tty_buffer-fix-distinct-type-warning.patch b/tty.current/tty_buffer-fix-distinct-type-warning.patch new file mode 100644 index 00000000000000..b889db60b027f5 --- /dev/null +++ b/tty.current/tty_buffer-fix-distinct-type-warning.patch @@ -0,0 +1,45 @@ +From anton.fang@gmail.com Mon Mar 15 15:10:40 2010 +From: Fang Wenqi <anton.fang@gmail.com> +Date: Tue, 9 Mar 2010 18:54:28 +0800 +Subject: tty_buffer: Fix distinct type warning +To: gregkh@suse.de, linux-kernel@vger.kernel.org +Cc: anton.fang@gmail.com, antonf@turbolinux.com.cn +Message-ID: <1268132068-5459-1-git-send-email-antonf@turbolinux.com.cn> + + +CC drivers/char/tty_buffer.o +drivers/char/tty_buffer.c: In function ‘tty_insert_flip_string_fixed_flag’: +drivers/char/tty_buffer.c:251: warning: comparison of distinct pointer types lacks a cast +drivers/char/tty_buffer.c: In function ‘tty_insert_flip_string_flags’: +drivers/char/tty_buffer.c:288: warning: comparison of distinct pointer types lacks a cast + +Fix it by replacing min() with min_t() in tty_insert_flip_string_flags and + tty_insert_flip_string_fixed_flag(). + +Signed-off-by: Fang Wenqi <antonf@turbolinux.com.cn> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/char/tty_buffer.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/char/tty_buffer.c ++++ b/drivers/char/tty_buffer.c +@@ -248,7 +248,7 @@ int tty_insert_flip_string_fixed_flag(st + { + int copied = 0; + do { +- int goal = min(size - copied, TTY_BUFFER_PAGE); ++ int goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE); + int space = tty_buffer_request_room(tty, goal); + struct tty_buffer *tb = tty->buf.tail; + /* If there is no space then tb may be NULL */ +@@ -285,7 +285,7 @@ int tty_insert_flip_string_flags(struct + { + int copied = 0; + do { +- int goal = min(size - copied, TTY_BUFFER_PAGE); ++ int goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE); + int space = tty_buffer_request_room(tty, goal); + struct tty_buffer *tb = tty->buf.tail; + /* If there is no space then tb may be NULL */ diff --git a/usb.current/usb-fix-documentation-for-avoid_reset_quirk.patch b/usb.current/usb-fix-documentation-for-avoid_reset_quirk.patch new file mode 100644 index 00000000000000..c952bcdef5b1b9 --- /dev/null +++ b/usb.current/usb-fix-documentation-for-avoid_reset_quirk.patch @@ -0,0 +1,31 @@ +From oliver@neukum.org Mon Mar 15 15:21:04 2010 +From: Oliver Neukum <oliver@neukum.org> +Date: Fri, 12 Mar 2010 11:27:21 +0100 +Subject: USB: Fix documentation for avoid_reset_quirk +To: Greg KH <greg@kroah.com> +Cc: Josua Dietze <digidietze@draisberghof.de> +Message-ID: <201003121127.21352.oliver@neukum.org> + + +From: Oliver Neukum <oliver@neukum.org> + +The name used in the documentation doesn't match reality. + +Signed-off-by: Oliver Neukum <neukum@b1-systems.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + Documentation/ABI/testing/sysfs-bus-usb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Documentation/ABI/testing/sysfs-bus-usb ++++ b/Documentation/ABI/testing/sysfs-bus-usb +@@ -160,7 +160,7 @@ Description: + match the driver to the device. For example: + # echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id + +-What: /sys/bus/usb/device/.../avoid_reset ++What: /sys/bus/usb/device/.../avoid_reset_quirk + Date: December 2009 + Contact: Oliver Neukum <oliver@neukum.org> + Description: diff --git a/usb.current/usb-gadget-fix-compile-error-on-r8a66597-udc.c.patch b/usb.current/usb-gadget-fix-compile-error-on-r8a66597-udc.c.patch new file mode 100644 index 00000000000000..49ba6793b30ada --- /dev/null +++ b/usb.current/usb-gadget-fix-compile-error-on-r8a66597-udc.c.patch @@ -0,0 +1,27 @@ +From grant.likely@secretlab.ca Mon Mar 15 15:22:35 2010 +From: Grant Likely <grant.likely@secretlab.ca> +Date: Thu, 11 Mar 2010 15:06:54 -0700 +Subject: usb/gadget: fix compile error on r8a66597-udc.c +To: gregkh@suse.de, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org +Message-ID: <20100311220631.19163.98586.stgit@angua> + + +C file uses IS_ERR and PTR_ERR, but doesn't include <linux/err.h> + +Signed-off-by: Grant Likely <grant.likely@secretlab.ca> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/gadget/r8a66597-udc.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/gadget/r8a66597-udc.c ++++ b/drivers/usb/gadget/r8a66597-udc.c +@@ -23,6 +23,7 @@ + #include <linux/module.h> + #include <linux/interrupt.h> + #include <linux/delay.h> ++#include <linux/err.h> + #include <linux/io.h> + #include <linux/platform_device.h> + #include <linux/clk.h> diff --git a/usb.current/usb-musb-abstract-out-ulpi_buscontrol-register-reads-writes.patch b/usb.current/usb-musb-abstract-out-ulpi_buscontrol-register-reads-writes.patch new file mode 100644 index 00000000000000..2dc688949356fa --- /dev/null +++ b/usb.current/usb-musb-abstract-out-ulpi_buscontrol-register-reads-writes.patch @@ -0,0 +1,99 @@ +From felipe.balbi@nokia.com Mon Mar 15 15:28:10 2010 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Fri, 12 Mar 2010 10:27:21 +0200 +Subject: usb: musb: abstract out ULPI_BUSCONTROL register reads/writes +To: Greg KH <greg@kroah.com> +Cc: Mike Frysinger <vapier@gentoo.org>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1268382444-7340-3-git-send-email-felipe.balbi@nokia.com> + + +From: Mike Frysinger <vapier@gentoo.org> + +The USB PHY on current Blackfin processors is a UTMI+ level 2 PHY. +However, it has no ULPI support - so there are no registers at all. +That means accesses to ULPI_BUSCONTROL have to be abstracted away +like other MUSB registers. + +This fixes building for Blackfin parts again. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 5 ++--- + drivers/usb/musb/musb_regs.h | 19 +++++++++++++++++++ + 2 files changed, 21 insertions(+), 3 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -2007,7 +2007,6 @@ bad_config: + /* host side needs more setup */ + if (is_host_enabled(musb)) { + struct usb_hcd *hcd = musb_to_hcd(musb); +- u8 busctl; + + otg_set_host(musb->xceiv, &hcd->self); + +@@ -2018,9 +2017,9 @@ bad_config: + + /* program PHY to use external vBus if required */ + if (plat->extvbus) { +- busctl = musb_readb(musb->mregs, MUSB_ULPI_BUSCONTROL); ++ u8 busctl = musb_read_ulpi_buscontrol(musb->mregs); + busctl |= MUSB_ULPI_USE_EXTVBUS; +- musb_writeb(musb->mregs, MUSB_ULPI_BUSCONTROL, busctl); ++ musb_write_ulpi_buscontrol(musb->mregs, busctl); + } + } + +--- a/drivers/usb/musb/musb_regs.h ++++ b/drivers/usb/musb/musb_regs.h +@@ -326,6 +326,11 @@ static inline void musb_write_rxfifoadd + musb_writew(mbase, MUSB_RXFIFOADD, c_off); + } + ++static inline void musb_write_ulpi_buscontrol(void __iomem *mbase, u8 val) ++{ ++ musb_writeb(mbase, MUSB_ULPI_BUSCONTROL, val); ++} ++ + static inline u8 musb_read_txfifosz(void __iomem *mbase) + { + return musb_readb(mbase, MUSB_TXFIFOSZ); +@@ -346,6 +351,11 @@ static inline u16 musb_read_rxfifoadd(v + return musb_readw(mbase, MUSB_RXFIFOADD); + } + ++static inline u8 musb_read_ulpi_buscontrol(void __iomem *mbase) ++{ ++ return musb_readb(mbase, MUSB_ULPI_BUSCONTROL); ++} ++ + static inline u8 musb_read_configdata(void __iomem *mbase) + { + musb_writeb(mbase, MUSB_INDEX, 0); +@@ -510,6 +520,10 @@ static inline void musb_write_rxfifoadd + { + } + ++static inline void musb_write_ulpi_buscontrol(void __iomem *mbase, u8 val) ++{ ++} ++ + static inline u8 musb_read_txfifosz(void __iomem *mbase) + { + } +@@ -526,6 +540,11 @@ static inline u16 musb_read_rxfifoadd(v + { + } + ++static inline u8 musb_read_ulpi_buscontrol(void __iomem *mbase) ++{ ++ return 0; ++} ++ + static inline u8 musb_read_configdata(void __iomem *mbase) + { + return 0; diff --git a/usb.current/usb-musb-core-declare-mbase-only-where-it-s-used.patch b/usb.current/usb-musb-core-declare-mbase-only-where-it-s-used.patch new file mode 100644 index 00000000000000..5c88ff6cb5f3c6 --- /dev/null +++ b/usb.current/usb-musb-core-declare-mbase-only-where-it-s-used.patch @@ -0,0 +1,64 @@ +From felipe.balbi@nokia.com Mon Mar 15 15:29:06 2010 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Fri, 12 Mar 2010 10:27:24 +0200 +Subject: usb: musb: core: declare mbase only where it's used +To: Greg KH <greg@kroah.com> +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1268382444-7340-6-git-send-email-felipe.balbi@nokia.com> + + +... and avoid a compilation if we disable host side +of musb. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -379,7 +379,6 @@ static irqreturn_t musb_stage0_irq(struc + u8 devctl, u8 power) + { + irqreturn_t handled = IRQ_NONE; +- void __iomem *mbase = musb->mregs; + + DBG(3, "<== Power=%02x, DevCtl=%02x, int_usb=0x%x\n", power, devctl, + int_usb); +@@ -394,6 +393,8 @@ static irqreturn_t musb_stage0_irq(struc + + if (devctl & MUSB_DEVCTL_HM) { + #ifdef CONFIG_USB_MUSB_HDRC_HCD ++ void __iomem *mbase = musb->mregs; ++ + switch (musb->xceiv->state) { + case OTG_STATE_A_SUSPEND: + /* remote wakeup? later, GetPortStatus +@@ -471,6 +472,8 @@ static irqreturn_t musb_stage0_irq(struc + #ifdef CONFIG_USB_MUSB_HDRC_HCD + /* see manual for the order of the tests */ + if (int_usb & MUSB_INTR_SESSREQ) { ++ void __iomem *mbase = musb->mregs; ++ + DBG(1, "SESSION_REQUEST (%s)\n", otg_state_string(musb)); + + /* IRQ arrives from ID pin sense or (later, if VBUS power +@@ -519,6 +522,8 @@ static irqreturn_t musb_stage0_irq(struc + case OTG_STATE_A_WAIT_BCON: + case OTG_STATE_A_WAIT_VRISE: + if (musb->vbuserr_retry) { ++ void __iomem *mbase = musb->mregs; ++ + musb->vbuserr_retry--; + ignore = 1; + devctl |= MUSB_DEVCTL_SESSION; +@@ -622,6 +627,7 @@ static irqreturn_t musb_stage0_irq(struc + + if (int_usb & MUSB_INTR_CONNECT) { + struct usb_hcd *hcd = musb_to_hcd(musb); ++ void __iomem *mbase = musb->mregs; + + handled = IRQ_HANDLED; + musb->is_active = 1; diff --git a/usb.current/usb-musb-fix-build-error-introduced-by-isoc-change.patch b/usb.current/usb-musb-fix-build-error-introduced-by-isoc-change.patch new file mode 100644 index 00000000000000..5f9ffec10c2083 --- /dev/null +++ b/usb.current/usb-musb-fix-build-error-introduced-by-isoc-change.patch @@ -0,0 +1,37 @@ +From vapier@gentoo.org Mon Mar 15 15:09:13 2010 +From: Sonic Zhang <sonic.zhang@analog.com> +Date: Mon, 8 Mar 2010 11:26:01 -0500 +Subject: USB: musb: fix build error introduced by isoc change +To: linux-usb@vger.kernel.org, Felipe Balbi <felipe.balbi@nokia.com> +Cc: stable@kernel.org, stable-review@kernel.org, linux-kernel@vger.kernel.org, Sonic Zhang <sonic.zhang@analog.com> +Message-ID: <1268065561-24350-1-git-send-email-vapier@gentoo.org> + + +From: Sonic Zhang <sonic.zhang@analog.com> + +The recent commit "usb: musb: Fix for isochronous IN transfer" (f82a689fa) +seems to have been against an older kernel version. It uses the old style +naming of variables. Unfortunately, this breaks building for most MUSB +users out there since "bDesiredMode" has been renamed to "desired_mode". + +Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Acked-by: Felipe Balbi <felipe.balbi@nokia.com> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_host.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_host.c ++++ b/drivers/usb/musb/musb_host.c +@@ -1689,7 +1689,7 @@ void musb_host_rx(struct musb *musb, u8 + dma->desired_mode = 1; + if (rx_count < hw_ep->max_packet_sz_rx) { + length = rx_count; +- dma->bDesiredMode = 0; ++ dma->desired_mode = 0; + } else { + length = urb->transfer_buffer_length; + } diff --git a/usb.current/usb-musb-fix-compile-error-for-omaps-for-musb_hdrc.patch b/usb.current/usb-musb-fix-compile-error-for-omaps-for-musb_hdrc.patch new file mode 100644 index 00000000000000..d473bcfea0bb3c --- /dev/null +++ b/usb.current/usb-musb-fix-compile-error-for-omaps-for-musb_hdrc.patch @@ -0,0 +1,51 @@ +From felipe.balbi@nokia.com Mon Mar 15 15:26:51 2010 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Fri, 12 Mar 2010 10:35:20 +0200 +Subject: usb: musb: Fix compile error for omaps for musb_hdrc +To: Greg KH <greg@kroah.com> +Cc: Tony Lindgren <tony@atomide.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1268382920-10786-1-git-send-email-felipe.balbi@nokia.com> + + +From: Tony Lindgren <tony@atomide.com> + +CONFIG_ARCH_OMAP34XX is now CONFIG_ARCH_OMAP3. + +But since drivers/usb/musb/omap2430.c use CONFIG_PM for these +registers and functions, do the same for the header. + +Otherwise we get the following for most omap3 defconfigs: + +drivers/usb/musb/omap2430.c:261: error: expected identifier or '(' before 'do' +drivers/usb/musb/omap2430.c:261: error: expected identifier or '(' before 'while' +drivers/usb/musb/omap2430.c:268: error: expected identifier or '(' before 'do' +drivers/usb/musb/omap2430.c:268: error: expected identifier or '(' before 'while' + +Signed-off-by: Tony Lindgren <tony@atomide.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/musb/musb_core.h ++++ b/drivers/usb/musb/musb_core.h +@@ -469,7 +469,7 @@ struct musb_csr_regs { + + struct musb_context_registers { + +-#if defined(CONFIG_ARCH_OMAP34XX) || defined(CONFIG_ARCH_OMAP2430) ++#ifdef CONFIG_PM + u32 otg_sysconfig, otg_forcestandby; + #endif + u8 power; +@@ -483,7 +483,7 @@ struct musb_context_registers { + struct musb_csr_regs index_regs[MUSB_C_NUM_EPS]; + }; + +-#if defined(CONFIG_ARCH_OMAP34XX) || defined(CONFIG_ARCH_OMAP2430) ++#ifdef CONFIG_PM + extern void musb_platform_save_context(struct musb *musb, + struct musb_context_registers *musb_context); + extern void musb_platform_restore_context(struct musb *musb, diff --git a/usb.current/usb-musb-fix-warnings-in-blackfin-regs.patch b/usb.current/usb-musb-fix-warnings-in-blackfin-regs.patch new file mode 100644 index 00000000000000..2f82a94c04a298 --- /dev/null +++ b/usb.current/usb-musb-fix-warnings-in-blackfin-regs.patch @@ -0,0 +1,75 @@ +From felipe.balbi@nokia.com Mon Mar 15 15:28:47 2010 +From: Mike Frysinger <vapier@gentoo.org> +Date: Fri, 12 Mar 2010 10:27:23 +0200 +Subject: USB: musb: fix warnings in Blackfin regs +To: Greg KH <greg@kroah.com> +Cc: Mike Frysinger <vapier@gentoo.org>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1268382444-7340-5-git-send-email-felipe.balbi@nokia.com> + +From: Mike Frysinger <vapier@gentoo.org> + +The recent commit "usb: musb: Add context save and restore support" added +some stubs for the Blackfin code so things would compile, but it also +added a bunch of warnings due to missing return statements. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_regs.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/usb/musb/musb_regs.h ++++ b/drivers/usb/musb/musb_regs.h +@@ -526,18 +526,22 @@ static inline void musb_write_ulpi_busco + + static inline u8 musb_read_txfifosz(void __iomem *mbase) + { ++ return 0; + } + + static inline u16 musb_read_txfifoadd(void __iomem *mbase) + { ++ return 0; + } + + static inline u8 musb_read_rxfifosz(void __iomem *mbase) + { ++ return 0; + } + + static inline u16 musb_read_rxfifoadd(void __iomem *mbase) + { ++ return 0; + } + + static inline u8 musb_read_ulpi_buscontrol(void __iomem *mbase) +@@ -596,22 +600,27 @@ static inline void musb_write_txhubport + + static inline u8 musb_read_rxfunaddr(void __iomem *mbase, u8 epnum) + { ++ return 0; + } + + static inline u8 musb_read_rxhubaddr(void __iomem *mbase, u8 epnum) + { ++ return 0; + } + + static inline u8 musb_read_rxhubport(void __iomem *mbase, u8 epnum) + { ++ return 0; + } + + static inline u8 musb_read_txfunaddr(void __iomem *mbase, u8 epnum) + { ++ return 0; + } + + static inline u8 musb_read_txhubaddr(void __iomem *mbase, u8 epnum) + { ++ return 0; + } + + static inline void musb_read_txhubport(void __iomem *mbase, u8 epnum) diff --git a/usb.current/usb-option-add-support-for-a-new-cmotech-device-to-usb-serial-option.patch b/usb.current/usb-option-add-support-for-a-new-cmotech-device-to-usb-serial-option.patch new file mode 100644 index 00000000000000..858ad9f2d23fe5 --- /dev/null +++ b/usb.current/usb-option-add-support-for-a-new-cmotech-device-to-usb-serial-option.patch @@ -0,0 +1,34 @@ +From nathaniel@natemccallum.com Mon Mar 15 15:20:26 2010 +From: Nathaniel McCallum <nathaniel@natemccallum.com> +Date: Thu, 11 Mar 2010 13:09:26 -0500 +Subject: USB: option: add support for a new CMOTECH device to usb/serial/option +Cc: gregkh@suse.de, smurf@smurf.noris.de, gernot@hillier.de, r0bertz@gentoo.org, stern@rowland.harvard.edu, Nathaniel McCallum <nathaniel@natemccallum.com> +Message-ID: <1268330966-6862-3-git-send-email-nathaniel@natemccallum.com> + + +Signed-off-by: Nathaniel McCallum <nathaniel@natemccallum.com> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -289,6 +289,7 @@ static int option_resume(struct usb_ser + #define QUALCOMM_VENDOR_ID 0x05C6 + + #define CMOTECH_VENDOR_ID 0x16d8 ++#define CMOTECH_PRODUCT_6008 0x6008 + #define CMOTECH_PRODUCT_6280 0x6280 + + #define TELIT_VENDOR_ID 0x1bc7 +@@ -550,6 +551,7 @@ static const struct usb_device_id option + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ ++ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ diff --git a/usb.current/usb-option-fix-incorrect-manufacturer-name-in-usb-serial-option-maxon-cmotech.patch b/usb.current/usb-option-fix-incorrect-manufacturer-name-in-usb-serial-option-maxon-cmotech.patch new file mode 100644 index 00000000000000..24587519ea647f --- /dev/null +++ b/usb.current/usb-option-fix-incorrect-manufacturer-name-in-usb-serial-option-maxon-cmotech.patch @@ -0,0 +1,36 @@ +From nathaniel@natemccallum.com Mon Mar 15 15:19:36 2010 +From: Nathaniel McCallum <nathaniel@natemccallum.com> +Date: Thu, 11 Mar 2010 13:09:24 -0500 +Subject: USB: option: fix incorrect manufacturer name in usb/serial/option: MAXON->CMOTECH +Cc: linux-kernel@vger.kernel.org, gregkh@suse.de, smurf@smurf.noris.de, gernot@hillier.de, r0bertz@gentoo.org, stern@rowland.harvard.edu, Nathaniel McCallum <nathaniel@natemccallum.com> +Message-ID: <1268330966-6862-1-git-send-email-nathaniel@natemccallum.com> + + +Signed-off-by: Nathaniel McCallum <nathaniel@natemccallum.com> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/option.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -288,7 +288,7 @@ static int option_resume(struct usb_ser + + #define QUALCOMM_VENDOR_ID 0x05C6 + +-#define MAXON_VENDOR_ID 0x16d8 ++#define CMOTECH_VENDOR_ID 0x16d8 + + #define TELIT_VENDOR_ID 0x1bc7 + #define TELIT_PRODUCT_UC864E 0x1003 +@@ -548,7 +548,7 @@ static const struct usb_device_id option + { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ +- { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ ++ { USB_DEVICE(CMOTECH_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ diff --git a/usb.current/usb-option-move-hardcoded-pid-to-a-macro-in-usb-serial-option.patch b/usb.current/usb-option-move-hardcoded-pid-to-a-macro-in-usb-serial-option.patch new file mode 100644 index 00000000000000..883f3eac4acda3 --- /dev/null +++ b/usb.current/usb-option-move-hardcoded-pid-to-a-macro-in-usb-serial-option.patch @@ -0,0 +1,35 @@ +From nathaniel@natemccallum.com Mon Mar 15 15:20:03 2010 +From: Nathaniel McCallum <nathaniel@natemccallum.com> +Date: Thu, 11 Mar 2010 13:01:17 -0500 +Subject: USB: option: move hardcoded PID to a macro in usb/serial/option +Cc: gregkh@suse.de, smurf@smurf.noris.de, gernot@hillier.de, r0bertz@gentoo.org, stern@rowland.harvard.edu, Nathaniel McCallum <nathaniel@natemccallum.com> +Message-ID: <1268330478-6689-2-git-send-email-nathaniel@natemccallum.com> + + +Signed-off-by: Nathaniel McCallum <nathaniel@natemccallum.com> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/option.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -289,6 +289,7 @@ static int option_resume(struct usb_ser + #define QUALCOMM_VENDOR_ID 0x05C6 + + #define CMOTECH_VENDOR_ID 0x16d8 ++#define CMOTECH_PRODUCT_6280 0x6280 + + #define TELIT_VENDOR_ID 0x1bc7 + #define TELIT_PRODUCT_UC864E 0x1003 +@@ -548,7 +549,7 @@ static const struct usb_device_id option + { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ +- { USB_DEVICE(CMOTECH_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ ++ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ diff --git a/usb.current/usb-qcserial-add-new-device-ids.patch b/usb.current/usb-qcserial-add-new-device-ids.patch new file mode 100644 index 00000000000000..39e3a39a0f23f5 --- /dev/null +++ b/usb.current/usb-qcserial-add-new-device-ids.patch @@ -0,0 +1,56 @@ +From br@blankpage.ch Mon Mar 15 15:07:59 2010 +From: Bernhard Rosenkraenzer <br@blankpage.ch> +Date: Wed, 10 Mar 2010 12:36:43 +0100 +Subject: USB: qcserial: add new device ids +To: Greg KH <gregkh@suse.de> +Message-ID: <1ad0620b49866cf33763372aca56efdb@blankpage.ch> + +This patch adds various USB device IDs for Gobi 2000 devices, as found in the +drivers available at https://www.codeaurora.org/wiki/GOBI_Releases + +Signed-off-by: Bernhard Rosenkraenzer <bero@arklinux.org> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/qcserial.c | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +--- a/drivers/usb/serial/qcserial.c ++++ b/drivers/usb/serial/qcserial.c +@@ -47,6 +47,35 @@ static const struct usb_device_id id_tab + {USB_DEVICE(0x05c6, 0x9221)}, /* Generic Gobi QDL device */ + {USB_DEVICE(0x05c6, 0x9231)}, /* Generic Gobi QDL device */ + {USB_DEVICE(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */ ++ {USB_DEVICE(0x413c, 0x8185)}, /* Dell Gobi 2000 QDL device (N0218, VU936) */ ++ {USB_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem device (N0218, VU936) */ ++ {USB_DEVICE(0x05c6, 0x9224)}, /* Sony Gobi 2000 QDL device (N0279, VU730) */ ++ {USB_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */ ++ {USB_DEVICE(0x05c6, 0x9244)}, /* Samsung Gobi 2000 QDL device (VL176) */ ++ {USB_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */ ++ {USB_DEVICE(0x03f0, 0x241d)}, /* HP Gobi 2000 QDL device (VP412) */ ++ {USB_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */ ++ {USB_DEVICE(0x05c6, 0x9214)}, /* Acer Gobi 2000 QDL device (VP413) */ ++ {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */ ++ {USB_DEVICE(0x05c6, 0x9264)}, /* Asus Gobi 2000 QDL device (VR305) */ ++ {USB_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */ ++ {USB_DEVICE(0x05c6, 0x9234)}, /* Top Global Gobi 2000 QDL device (VR306) */ ++ {USB_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */ ++ {USB_DEVICE(0x05c6, 0x9274)}, /* iRex Technologies Gobi 2000 QDL device (VR307) */ ++ {USB_DEVICE(0x05c6, 0x9275)}, /* iRex Technologies Gobi 2000 Modem device (VR307) */ ++ {USB_DEVICE(0x1199, 0x9000)}, /* Sierra Wireless Gobi 2000 QDL device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9001)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9002)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9003)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9004)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9005)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9006)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9007)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9008)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x9009)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x1199, 0x900a)}, /* Sierra Wireless Gobi 2000 Modem device (VT773) */ ++ {USB_DEVICE(0x16d8, 0x8001)}, /* CMDTech Gobi 2000 QDL device (VU922) */ ++ {USB_DEVICE(0x16d8, 0x8002)}, /* CMDTech Gobi 2000 Modem device (VU922) */ + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, id_table); diff --git a/usb.current/usb-serial-ftdi-add-contec-vendor-and-product-id.patch b/usb.current/usb-serial-ftdi-add-contec-vendor-and-product-id.patch new file mode 100644 index 00000000000000..71102966dcff5c --- /dev/null +++ b/usb.current/usb-serial-ftdi-add-contec-vendor-and-product-id.patch @@ -0,0 +1,53 @@ +From akpm@linux-foundation.org Mon Mar 15 15:14:50 2010 +From: Daniel Sangorrin <daniel.sangorrin@gmail.com> +Date: Thu, 11 Mar 2010 14:10:58 -0800 +Subject: USB: serial: ftdi: add CONTEC vendor and product id +To: greg@kroah.com +Cc: linux-usb@vger.kernel.org, akpm@linux-foundation.org, daniel.sangorrin@gmail.com, andi@lisas.de, gregkh@suse.de, liboska@uochb.cas.cz +Message-ID: <201003112210.o2BMAw1a013719@imap1.linux-foundation.org> + + +From: Daniel Sangorrin <daniel.sangorrin@gmail.com> + +This is a patch to ftdi_sio_ids.h and ftdi_sio.c that adds identifiers for +CONTEC USB serial converter. I tested it with the device COM-1(USB)H + +[akpm@linux-foundation.org: keep the VIDs sorted a bit] +Signed-off-by: Daniel Sangorrin <daniel.sangorrin@gmail.com> +Cc: Andreas Mohr <andi@lisas.de> +Cc: Radek Liboska <liboska@uochb.cas.cz> +Cc: stable <stable@kernel.org> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/ftdi_sio.c | 1 + + drivers/usb/serial/ftdi_sio_ids.h | 7 +++++++ + 2 files changed, 8 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -658,6 +658,7 @@ static struct usb_device_id id_table_com + { USB_DEVICE(EVOLUTION_VID, EVOLUTION_ER1_PID) }, + { USB_DEVICE(EVOLUTION_VID, EVO_HYBRID_PID) }, + { USB_DEVICE(EVOLUTION_VID, EVO_RCM4_PID) }, ++ { USB_DEVICE(CONTEC_VID, CONTEC_COM1USBH_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_ARTEMIS_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16C_PID) }, +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -501,6 +501,13 @@ + #define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ + + /* ++ * Contec products (http://www.contec.com) ++ * Submitted by Daniel Sangorrin ++ */ ++#define CONTEC_VID 0x06CE /* Vendor ID */ ++#define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ ++ ++/* + * Definitions for B&B Electronics products. + */ + #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ diff --git a/usb.current/usb-xhci-re-initialize-cmd_completion.patch b/usb.current/usb-xhci-re-initialize-cmd_completion.patch new file mode 100644 index 00000000000000..37e7417053b797 --- /dev/null +++ b/usb.current/usb-xhci-re-initialize-cmd_completion.patch @@ -0,0 +1,34 @@ +From andiry.xu@amd.com Mon Mar 15 15:13:38 2010 +From: Andiry Xu <andiry.xu@amd.com> +Date: Fri, 12 Mar 2010 17:10:04 +0800 +Subject: USB: xHCI: re-initialize cmd_completion +To: Sarah Sharp <sarah.a.sharp@linux.intel.com> +Cc: Greg KH <gregkh@suse.de>, linux-usb@vger.kernel.org, "Yang, Libin" <Libin.Yang@amd.com> +Message-ID: <1268385004.2633.4.camel@brienza-desktop> + +From: Andiry Xu <andiry.xu@amd.com> + +When a signal interrupts a Configure Endpoint command, the cmd_completion used +in xhci_configure_endpoint() is not re-initialized and the +wait_for_completion_interruptible_timeout() will return failure. Initialize +cmd_completion in xhci_configure_endpoint(). + +Signed-off-by: Andiry Xu <andiry.xu@amd.com> +Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/host/xhci-hcd.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/host/xhci-hcd.c ++++ b/drivers/usb/host/xhci-hcd.c +@@ -1173,6 +1173,7 @@ static int xhci_configure_endpoint(struc + cmd_completion = &virt_dev->cmd_completion; + cmd_status = &virt_dev->cmd_status; + } ++ init_completion(cmd_completion); + + if (!ctx_change) + ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, |
