diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-02 09:09:43 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-02 09:09:43 -0800 |
| commit | f672753bff1b050ea6f2128160e4fc3a0c1651a8 (patch) | |
| tree | dd518117a5cfbe0902955372f855da06b28d5f64 | |
| parent | 95e7dbb8dc75413f18975d3837790766af4c214f (diff) | |
| download | patches-f672753bff1b050ea6f2128160e4fc3a0c1651a8.tar.gz | |
2.6.29-rc6-git5 resync
32 files changed, 8 insertions, 1534 deletions
diff --git a/driver-core/bus_id-net2.patch b/driver-core/bus_id-net2.patch index 3ca7fe81aba664..6198c21a0d4d5a 100644 --- a/driver-core/bus_id-net2.patch +++ b/driver-core/bus_id-net2.patch @@ -286,7 +286,7 @@ Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c -@@ -2589,7 +2589,7 @@ static void phy_init(struct mv643xx_eth_ +@@ -2588,7 +2588,7 @@ static void phy_init(struct mv643xx_eth_ phy_reset(mp); @@ -396,7 +396,7 @@ Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> --- a/drivers/net/smsc9420.c +++ b/drivers/net/smsc9420.c -@@ -1156,7 +1156,7 @@ static int smsc9420_mii_probe(struct net +@@ -1160,7 +1160,7 @@ static int smsc9420_mii_probe(struct net smsc_info(PROBE, "PHY addr %d, phy_id 0x%08X", phydev->addr, phydev->phy_id); @@ -405,7 +405,7 @@ Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> &smsc9420_phy_adjust_link, 0, PHY_INTERFACE_MODE_MII); if (IS_ERR(phydev)) { -@@ -1165,7 +1165,7 @@ static int smsc9420_mii_probe(struct net +@@ -1169,7 +1169,7 @@ static int smsc9420_mii_probe(struct net } pr_info("%s: attached PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n", diff --git a/driver-core/dynamic-debug-combine-dprintk-and-dynamic-printk.patch b/driver-core/dynamic-debug-combine-dprintk-and-dynamic-printk.patch index cac50bb215b536..557eaa1f9ec176 100644 --- a/driver-core/dynamic-debug-combine-dprintk-and-dynamic-printk.patch +++ b/driver-core/dynamic-debug-combine-dprintk-and-dynamic-printk.patch @@ -49,7 +49,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt -@@ -1814,11 +1814,6 @@ and is between 256 and 4096 characters. +@@ -1816,11 +1816,6 @@ and is between 256 and 4096 characters. autoconfiguration. Ranges are in pairs (memory base and size). @@ -1541,7 +1541,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> -early_param("dynamic_printk", dynamic_printk_setup); --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug -@@ -847,7 +847,7 @@ menuconfig BUILD_DOCSRC +@@ -847,7 +847,7 @@ config BUILD_DOCSRC Say N if you are unsure. @@ -15,27 +15,6 @@ gregkh.pre/detect-atomic-counter-underflows.patch ################################# # USB patches for 2.6.29 ################################# -usb.current/usb-fsl_usb2_udc-fix-potential-queue-head-corruption.patch -usb.current/usb-ehci-slow-down-itd-reuse.patch -usb.current/usb-gadget-obex-select-correct-ep-descriptors.patch -usb.current/usb-option-add-benq-3g-modem-information.patch -usb.current/usb-cdc-acm-add-usb-id-for-motomagx-phones.patch -usb.current/usb-serial-add-support-for-second-revision-of-ericsson-f3507g-wwan-card.patch -usb.current/usb-quirk-for-hummingbird-huc56s-conexant-acm-modem.patch -usb.current/usb-usb-storage-add-ignore_residue-flag-for-genesys-logic-adapters.patch -usb.current/usb-g_file_storage-automatically-disable-stalls-under-atmel.patch -usb.current/usb-gadget-fix-build-error-in-omap_apollon_2420_defconfig.patch -usb.current/usb-usb_get_string-should-check-the-descriptor-type.patch -usb.current/usb-musb-make-davinci-work-in-mainline.patch -usb.current/usb-musb-be-careful-with-64k-transfer-lengths.patch -usb.current/usb-musb-fix-musb_host_tx-for-shared-endpoint-fifo.patch -usb.current/usb-musb-fix-urb_dequeue-method.patch -usb.current/usb-musb-host-endpoint_disable-oops-fixes.patch -usb.current/usb-musb-fix-data-toggle-saving-with-shared-fifo.patch -usb.current/usb-musb-be-careful-with-64k-transfer-lengths-host-side.patch -usb.current/usb-musb-use-right-poll-limit-for-low-speed-devices.patch -usb.current/usb-musb-resume-suspended-root-hub-on-disconnect.patch -usb.current/usb-musb-fix-srp-sysfs-entry-deletion.patch ##################################################################### # Stuff to be merged after 2.6.29 is out @@ -195,9 +174,6 @@ gregkh.post/usb-gotemp.patch ################################# # for before .29 is done: -staging/staging-rtl8187se-fix-kconfig-dependencies.patch -staging/staging-rtl8187se-fix-oops-and-memory-poison-caused-by-builtin-ieee80211.patch -staging/staging-panel-fix-oops-on-panel_cleanup_module.patch # for after .29: @@ -248,8 +224,6 @@ staging/staging-w35und-kill-wbdebug-and-remove-common.h-header-file.patch staging/staging-w35und-typedef-removal.patch staging/staging-w35und-remove-hw_data_t-typedef.patch staging/staging-w35und-remove-mto_func_input-macro-obfuscation.patch -staging/staging-w35und-fix-registration-with-wlan-stack.patch -staging/staging-w35und-fix-usb_control_msg-error-handling-in-wb35_probe.patch staging/staging-wlan-ng-remove-use-of-__wlan_attrib_pack__.patch staging/staging-wlan-ng-remove-use-of-wlan_addr_len.patch diff --git a/staging/staging-panel-fix-oops-on-panel_cleanup_module.patch b/staging/staging-panel-fix-oops-on-panel_cleanup_module.patch deleted file mode 100644 index b4fefb88767192..00000000000000 --- a/staging/staging-panel-fix-oops-on-panel_cleanup_module.patch +++ /dev/null @@ -1,57 +0,0 @@ -From lcostantino@gmail.com Tue Feb 17 17:29:35 2009 -From: Costantino Leandro <lcostantino@gmail.com> -From: leandro Costantino <lcostantino@gmail.com> -Date: Tue, 17 Feb 2009 11:10:48 -0500 -Subject: Staging: panel: fix oops on panel_cleanup_module -To: Greg Kroah-Hartman <greg@kroah.com>, Willy Tarreau <willy@meta-x.org> -Message-ID: <c2fe070d0902170810y3394bf96q2f08982e68302687@mail.gmail.com> - -From: Costantino Leandro <lcostantino@gmail.com> - -Check for null pardevice (not registered, ej: panel never attached, -inexistent parport, etc. ) before calling parport_release, -parport_unregister_device, and related funcs on module release. - -Signed-off-by: Costantino Leandro <lcostantino@gmail.com> -Acked-by: Willy Tarreau <w@1wt.eu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/panel/panel.c | 25 +++++++++++++------------ - 1 file changed, 13 insertions(+), 12 deletions(-) - ---- a/drivers/staging/panel/panel.c -+++ b/drivers/staging/panel/panel.c -@@ -2164,19 +2164,20 @@ static void __exit panel_cleanup_module( - if (scan_timer.function != NULL) - del_timer(&scan_timer); - -- if (keypad_enabled) -- misc_deregister(&keypad_dev); -- -- if (lcd_enabled) { -- panel_lcd_print("\x0cLCD driver " PANEL_VERSION -- "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); -- misc_deregister(&lcd_dev); -+ if (pprt != NULL) { -+ if (keypad_enabled) -+ misc_deregister(&keypad_dev); -+ -+ if (lcd_enabled) { -+ panel_lcd_print("\x0cLCD driver " PANEL_VERSION -+ "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); -+ misc_deregister(&lcd_dev); -+ } -+ -+ /* TODO: free all input signals */ -+ parport_release(pprt); -+ parport_unregister_device(pprt); - } -- -- /* TODO: free all input signals */ -- -- parport_release(pprt); -- parport_unregister_device(pprt); - parport_unregister_driver(&panel_driver); - } - diff --git a/staging/staging-rtl8187se-fix-kconfig-dependencies.patch b/staging/staging-rtl8187se-fix-kconfig-dependencies.patch deleted file mode 100644 index c5a2b6877ec421..00000000000000 --- a/staging/staging-rtl8187se-fix-kconfig-dependencies.patch +++ /dev/null @@ -1,45 +0,0 @@ -From randy.dunlap@oracle.com Thu Feb 12 11:46:16 2009 -From: Randy Dunlap <randy.dunlap@oracle.com> -Date: Wed, 11 Feb 2009 13:20:44 -0800 -Subject: Staging: rtl8187se: fix Kconfig dependencies -Cc: gregkh@suse.de -Message-ID: <20090211132044.9e6e04d9.randy.dunlap@oracle.com> - - -From: Randy Dunlap <randy.dunlap@oracle.com> - -rtl8187se uses wireless extensions so it needs to depend on -WIRELESS_EXT (or select it). - -rtl8187se uses fields in struct net_device that are only present -if CONFIG_COMPAT_NET_DEV_OPS=y, so it needs to depend on -that symbol also. - -drivers/staging/rtl8187se/r8180_core.c:5973: error: 'struct net_device' has no member named 'wireless_handlers' -drivers/staging/rtl8187se/r8180_core.c:5982: error: 'struct net_device' has no member named 'wireless_handlers' - -drivers/staging/rtl8187se/r8180_core.c:201: error: 'struct net_device' has no member named 'stop' -drivers/staging/rtl8187se/r8180_core.c:4584: error: 'struct net_device' has no member named 'get_stats' -drivers/staging/rtl8187se/r8180_core.c:5969: error: 'struct net_device' has no member named 'open' -drivers/staging/rtl8187se/r8180_core.c:5970: error: 'struct net_device' has no member named 'stop' -drivers/staging/rtl8187se/r8180_core.c:5972: error: 'struct net_device' has no member named 'tx_timeout' -drivers/staging/rtl8187se/r8180_core.c:5974: error: 'struct net_device' has no member named 'do_ioctl' -drivers/staging/rtl8187se/r8180_core.c:5975: error: 'struct net_device' has no member named 'set_multicast_list' -drivers/staging/rtl8187se/r8180_core.c:5976: error: 'struct net_device' has no member named 'set_mac_address' - -Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/rtl8187se/Kconfig | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/rtl8187se/Kconfig -+++ b/drivers/staging/rtl8187se/Kconfig -@@ -1,5 +1,6 @@ - config RTL8187SE - tristate "RealTek RTL8187SE Wireless LAN NIC driver" - depends on PCI -+ depends on WIRELESS_EXT && COMPAT_NET_DEV_OPS - default N - ---help--- diff --git a/staging/staging-rtl8187se-fix-oops-and-memory-poison-caused-by-builtin-ieee80211.patch b/staging/staging-rtl8187se-fix-oops-and-memory-poison-caused-by-builtin-ieee80211.patch deleted file mode 100644 index 02840b74552382..00000000000000 --- a/staging/staging-rtl8187se-fix-oops-and-memory-poison-caused-by-builtin-ieee80211.patch +++ /dev/null @@ -1,74 +0,0 @@ -From lcostantino@gmail.com Tue Feb 17 18:07:38 2009 -From: leandro Costantino <lcostantino@gmail.com> -Date: Tue, 17 Feb 2009 11:16:26 -0500 -Subject: Staging: rtl8187se: Fix oops and memory poison caused by builtin ieee80211. -To: gregkh@suse.de -Message-ID: <c2fe070d0902170816p1f192dd5p9ef9586352c5d8d1@mail.gmail.com> - - -when modprobe and removing rtl8187se ( just for testing, i do not have -that card , and oops and a memory poison error happens on the builtin -ieee80211 of that driver. I dont know if they will port it to the -current ieeee80221 instead of the builtin ones, but just in case i -attach a proposed fix for that problem. - -- Change for loop on ieee80211_crypto_deinit for list_for_each_safe to - remove items. Is there an spinlock needed here? -- Call ieee80211_crypto_deinit after exiting all registerd crypto protocols. - - -Signed-off-by: Costantino Leandro <lcostantino@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c | 19 +++++++++--------- - drivers/staging/rtl8187se/r8180_core.c | 2 - - 2 files changed, 11 insertions(+), 10 deletions(-) - ---- a/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c -+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c -@@ -234,20 +234,21 @@ out: - void ieee80211_crypto_deinit(void) - { - struct list_head *ptr, *n; -+ struct ieee80211_crypto_alg *alg = NULL; - - if (hcrypt == NULL) - return; - -- for (ptr = hcrypt->algs.next, n = ptr->next; ptr != &hcrypt->algs; -- ptr = n, n = ptr->next) { -- struct ieee80211_crypto_alg *alg = -- (struct ieee80211_crypto_alg *) ptr; -- list_del(ptr); -- printk(KERN_DEBUG "ieee80211_crypt: unregistered algorithm " -- "'%s' (deinit)\n", alg->ops->name); -- kfree(alg); -+ list_for_each_safe(ptr, n, &hcrypt->algs) { -+ alg = list_entry(ptr, struct ieee80211_crypto_alg, list); -+ if (alg) { -+ list_del(ptr); -+ printk(KERN_DEBUG -+ "ieee80211_crypt: unregistered algorithm '%s' (deinit)\n", -+ alg->ops->name); -+ kfree(alg); -+ } - } -- - kfree(hcrypt); - } - ---- a/drivers/staging/rtl8187se/r8180_core.c -+++ b/drivers/staging/rtl8187se/r8180_core.c -@@ -6161,10 +6161,10 @@ static void __exit rtl8180_pci_module_ex - { - pci_unregister_driver (&rtl8180_pci_driver); - rtl8180_proc_module_remove(); -- ieee80211_crypto_deinit(); - ieee80211_crypto_tkip_exit(); - ieee80211_crypto_ccmp_exit(); - ieee80211_crypto_wep_exit(); -+ ieee80211_crypto_deinit(); - DMESG("Exiting"); - } - diff --git a/staging/staging-w35und-fix-registration-with-wlan-stack.patch b/staging/staging-w35und-fix-registration-with-wlan-stack.patch deleted file mode 100644 index 06ce8b0e57914f..00000000000000 --- a/staging/staging-w35und-fix-registration-with-wlan-stack.patch +++ /dev/null @@ -1,37 +0,0 @@ -From pavel@suse.cz Tue Feb 3 17:05:31 2009 -From: Pavel Machek <pavel@suse.cz> -Date: Fri, 30 Jan 2009 10:05:25 +0100 -Subject: Staging: w35und: fix registration with wlan stack -To: Sandro Bonazzola <sandro.bonazzola@gmail.com>, Greg KH <greg@kroah.com> -Cc: Pekka Enberg <penberg@cs.helsinki.fi> -Message-ID: <20090130090525.GA1997@elf.ucw.cz> -Content-Disposition: inline - - -Initialize few more fields in wireless device structure so that -wireless core actually accepts our registration. - -Signed-off-by: Pavel Machek <pavel@suse.cz> -Acked-by: Pekka Enberg <penberg@cs.helsinki.fi> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/staging/winbond/wbusb.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/staging/winbond/wbusb.c -+++ b/drivers/staging/winbond/wbusb.c -@@ -369,9 +369,11 @@ static int wb35_probe(struct usb_interfa - } - - dev->extra_tx_headroom = 12; /* FIXME */ -- dev->flags = 0; -+ dev->flags = IEEE80211_HW_SIGNAL_UNSPEC; -+ dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); - - dev->channel_change_time = 1000; -+ dev->max_signal = 100; - dev->queues = 1; - - dev->wiphy->bands[IEEE80211_BAND_2GHZ] = &wbsoft_band_2GHz; diff --git a/staging/staging-w35und-fix-usb_control_msg-error-handling-in-wb35_probe.patch b/staging/staging-w35und-fix-usb_control_msg-error-handling-in-wb35_probe.patch deleted file mode 100644 index f3abef77624d5f..00000000000000 --- a/staging/staging-w35und-fix-usb_control_msg-error-handling-in-wb35_probe.patch +++ /dev/null @@ -1,61 +0,0 @@ -From penberg@cs.helsinki.fi Tue Feb 3 17:05:55 2009 -From: Pekka Enberg <penberg@cs.helsinki.fi> -Date: Fri, 30 Jan 2009 11:32:47 +0200 -Subject: Staging: w35und: fix usb_control_msg() error handling in wb35_probe() -To: Greg KH <greg@kroah.com> -Cc: Pavel Machek <pavel@suse.cz>, Sandro Bonazzola <sandro.bonazzola@gmail.com>, linux-kernel@vger.kernel.org -Message-ID: <1233307967.13655.30.camel@penberg-laptop> - - -If successful, the usb_control_msg() function returns the number of -bytes transferred. Fix up wb35_probe() to only bail out if the function returns -a negative number. Also, fix up ieee80211_alloc_hw() error code to ENOMEM; -otherwise GCC complains that err might be undefined (and is right about that). - -Acked-by: Pavel Machek <pavel@suse.cz> -Reported-and-tested-by: Sandro Bonazzola <sandro.bonazzola@gmail.com> -Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/winbond/wbusb.c | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) - ---- a/drivers/staging/winbond/wbusb.c -+++ b/drivers/staging/winbond/wbusb.c -@@ -319,16 +319,18 @@ static int wb35_probe(struct usb_interfa - struct usb_device *udev = interface_to_usbdev(intf); - struct wbsoft_priv *priv; - struct ieee80211_hw *dev; -- int err; -+ int nr, err; - - usb_get_dev(udev); - - // 20060630.2 Check the device if it already be opened -- err = usb_control_msg(udev, usb_rcvctrlpipe( udev, 0 ), -- 0x01, USB_TYPE_VENDOR|USB_RECIP_DEVICE|USB_DIR_IN, -- 0x0, 0x400, <mp, 4, HZ*100 ); -- if (err) -+ nr = usb_control_msg(udev, usb_rcvctrlpipe( udev, 0 ), -+ 0x01, USB_TYPE_VENDOR|USB_RECIP_DEVICE|USB_DIR_IN, -+ 0x0, 0x400, <mp, 4, HZ*100 ); -+ if (nr < 0) { -+ err = nr; - goto error; -+ } - - ltmp = cpu_to_le32(ltmp); - if (ltmp) { // Is already initialized? -@@ -337,8 +339,10 @@ static int wb35_probe(struct usb_interfa - } - - dev = ieee80211_alloc_hw(sizeof(*priv), &wbsoft_ops); -- if (!dev) -+ if (!dev) { -+ err = -ENOMEM; - goto error; -+ } - - priv = dev->priv; - diff --git a/staging/staging-w35und-kill-wbdebug-and-remove-common.h-header-file.patch b/staging/staging-w35und-kill-wbdebug-and-remove-common.h-header-file.patch index c52e85fc48571d..d7cace1070d870 100644 --- a/staging/staging-w35und-kill-wbdebug-and-remove-common.h-header-file.patch +++ b/staging/staging-w35und-kill-wbdebug-and-remove-common.h-header-file.patch @@ -354,7 +354,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> #endif hal_get_hw_radio_off( pHwData ); -@@ -398,7 +398,7 @@ static void wb35_hw_halt(struct wbsoft_p +@@ -404,7 +404,7 @@ static void wb35_hw_halt(struct wbsoft_p // Turn off Rx and Tx hardware ability hal_stop( &adapter->sHwData ); #ifdef _PE_USB_INI_DUMP_ diff --git a/staging/staging-w35und-remove-hw_data_t-typedef.patch b/staging/staging-w35und-remove-hw_data_t-typedef.patch index 69dc8f362ecb8b..1e3678fde1a8d0 100644 --- a/staging/staging-w35und-remove-hw_data_t-typedef.patch +++ b/staging/staging-w35und-remove-hw_data_t-typedef.patch @@ -1234,7 +1234,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> u8 *pMacAddr; u8 *pMacAddr2; u32 InitStep = 0; -@@ -362,7 +362,7 @@ static int wb35_probe(struct usb_interfa +@@ -366,7 +366,7 @@ static int wb35_probe(struct usb_interfa SET_IEEE80211_DEV(dev, &udev->dev); { diff --git a/usb.current/usb-cdc-acm-add-usb-id-for-motomagx-phones.patch b/usb.current/usb-cdc-acm-add-usb-id-for-motomagx-phones.patch deleted file mode 100644 index a1c2f14a569b28..00000000000000 --- a/usb.current/usb-cdc-acm-add-usb-id-for-motomagx-phones.patch +++ /dev/null @@ -1,33 +0,0 @@ -From dimichxp@gmail.com Tue Feb 24 21:12:08 2009 -From: Dmitriy Taychenachev <dimichxp@gmail.com> -Date: Wed, 25 Feb 2009 12:36:51 +0800 -Subject: USB: cdc-acm: add usb id for motomagx phones -To: linux-usb@vger.kernel.org -Message-ID: <2651740bf64c1d981c26.1235536611@wifi.master> - - -The Motorola MOTOMAGX phones (Z6, E8, Zn5 so far) are providing -combined ACM/BLAN USB configuration. Since it has Vendor Specific -class, the corresponding drivers (cdc-acm, zaurus) can't find it just -by interface info. This patch adds usb id so the cdc-acm driver can -properly handle this combined device. - -Signed-off-by: Dmitriy Taychenachev <dimichxp@gmail.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/class/cdc-acm.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/class/cdc-acm.c -+++ b/drivers/usb/class/cdc-acm.c -@@ -1376,6 +1376,8 @@ static struct usb_device_id acm_ids[] = - { USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */ - .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ - }, -+ { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ -+ }, - - /* control interfaces with various AT-command sets */ - { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, diff --git a/usb.current/usb-ehci-slow-down-itd-reuse.patch b/usb.current/usb-ehci-slow-down-itd-reuse.patch deleted file mode 100644 index c1d9e54de97aa6..00000000000000 --- a/usb.current/usb-ehci-slow-down-itd-reuse.patch +++ /dev/null @@ -1,189 +0,0 @@ -From david-b@pacbell.net Wed Feb 18 16:08:08 2009 -From: Karsten Wiese <fzu@wemgehoertderstaat.de> -Date: Sun, 8 Feb 2009 16:07:58 -0800 -Subject: USB: EHCI: slow down ITD reuse -To: Greg KH <greg@kroah.com> -Cc: Karsten Wiese <fzu@wemgehoertderstaat.de>, linux-usb@vger.kernel.org -Message-ID: <200902081607.58203.david-b@pacbell.net> -Content-Disposition: inline - - -From: Karsten Wiese <fzu@wemgehoertderstaat.de> - -Currently ITDs are immediately recycled whenever their URB completes. -However, EHCI hardware can sometimes remember some ITD state. This -means that when the ITD is reused before end-of-frame it may sometimes -cause the hardware to reference bogus state. - -This patch defers reusing such ITDs by moving them into a new ehci member -cached_itd_list. ITDs resting in cached_itd_list are moved back into their -stream's free_list once scan_periodic() detects that the active frame has -elapsed. - -This makes the snd_usb_us122l driver (in kernel since .28) work right -when it's hooked up through EHCI. - -[ dbrownell@users.sourceforge.net: comment fixups ] - -Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de> -Tested-by: Philippe Carriere <philippe-f.carriere@wanadoo.fr> -Tested-by: Federico Briata <federicobriata@gmail.com> -Cc: stable <stable@kernel.org> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ehci-hcd.c | 2 + - drivers/usb/host/ehci-mem.c | 1 - drivers/usb/host/ehci-sched.c | 56 ++++++++++++++++++++++++++++++++++++------ - drivers/usb/host/ehci.h | 6 ++++ - 4 files changed, 57 insertions(+), 8 deletions(-) - ---- a/drivers/usb/host/ehci.h -+++ b/drivers/usb/host/ehci.h -@@ -87,6 +87,10 @@ struct ehci_hcd { /* one per controlle - int next_uframe; /* scan periodic, start here */ - unsigned periodic_sched; /* periodic activity count */ - -+ /* list of itds completed while clock_frame was still active */ -+ struct list_head cached_itd_list; -+ unsigned clock_frame; -+ - /* per root hub port */ - unsigned long reset_done [EHCI_MAX_ROOT_PORTS]; - -@@ -220,6 +224,8 @@ timer_action (struct ehci_hcd *ehci, enu - } - } - -+static void free_cached_itd_list(struct ehci_hcd *ehci); -+ - /*-------------------------------------------------------------------------*/ - - #include <linux/usb/ehci_def.h> ---- a/drivers/usb/host/ehci-hcd.c -+++ b/drivers/usb/host/ehci-hcd.c -@@ -485,6 +485,7 @@ static int ehci_init(struct usb_hcd *hcd - * periodic_size can shrink by USBCMD update if hcc_params allows. - */ - ehci->periodic_size = DEFAULT_I_TDPS; -+ INIT_LIST_HEAD(&ehci->cached_itd_list); - if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0) - return retval; - -@@ -497,6 +498,7 @@ static int ehci_init(struct usb_hcd *hcd - - ehci->reclaim = NULL; - ehci->next_uframe = -1; -+ ehci->clock_frame = -1; - - /* - * dedicate a qh for the async ring head, since we couldn't unlink ---- a/drivers/usb/host/ehci-mem.c -+++ b/drivers/usb/host/ehci-mem.c -@@ -128,6 +128,7 @@ static inline void qh_put (struct ehci_q - - static void ehci_mem_cleanup (struct ehci_hcd *ehci) - { -+ free_cached_itd_list(ehci); - if (ehci->async) - qh_put (ehci->async); - ehci->async = NULL; ---- a/drivers/usb/host/ehci-sched.c -+++ b/drivers/usb/host/ehci-sched.c -@@ -1004,7 +1004,8 @@ iso_stream_put(struct ehci_hcd *ehci, st - - is_in = (stream->bEndpointAddress & USB_DIR_IN) ? 0x10 : 0; - stream->bEndpointAddress &= 0x0f; -- stream->ep->hcpriv = NULL; -+ if (stream->ep) -+ stream->ep->hcpriv = NULL; - - if (stream->rescheduled) { - ehci_info (ehci, "ep%d%s-iso rescheduled " -@@ -1653,14 +1654,28 @@ itd_complete ( - (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); - } - iso_stream_put (ehci, stream); -- /* OK to recycle this ITD now that its completion callback ran. */ -+ - done: - usb_put_urb(urb); - itd->urb = NULL; -- itd->stream = NULL; -- list_move(&itd->itd_list, &stream->free_list); -- iso_stream_put(ehci, stream); -- -+ if (ehci->clock_frame != itd->frame || itd->index[7] != -1) { -+ /* OK to recycle this ITD now. */ -+ itd->stream = NULL; -+ list_move(&itd->itd_list, &stream->free_list); -+ iso_stream_put(ehci, stream); -+ } else { -+ /* HW might remember this ITD, so we can't recycle it yet. -+ * Move it to a safe place until a new frame starts. -+ */ -+ list_move(&itd->itd_list, &ehci->cached_itd_list); -+ if (stream->refcount == 2) { -+ /* If iso_stream_put() were called here, stream -+ * would be freed. Instead, just prevent reuse. -+ */ -+ stream->ep->hcpriv = NULL; -+ stream->ep = NULL; -+ } -+ } - return retval; - } - -@@ -2101,6 +2116,20 @@ done: - - /*-------------------------------------------------------------------------*/ - -+static void free_cached_itd_list(struct ehci_hcd *ehci) -+{ -+ struct ehci_itd *itd, *n; -+ -+ list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) { -+ struct ehci_iso_stream *stream = itd->stream; -+ itd->stream = NULL; -+ list_move(&itd->itd_list, &stream->free_list); -+ iso_stream_put(ehci, stream); -+ } -+} -+ -+/*-------------------------------------------------------------------------*/ -+ - static void - scan_periodic (struct ehci_hcd *ehci) - { -@@ -2115,10 +2144,17 @@ scan_periodic (struct ehci_hcd *ehci) - * Touches as few pages as possible: cache-friendly. - */ - now_uframe = ehci->next_uframe; -- if (HC_IS_RUNNING (ehci_to_hcd(ehci)->state)) -+ if (HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) { - clock = ehci_readl(ehci, &ehci->regs->frame_index); -- else -+ clock_frame = (clock >> 3) % ehci->periodic_size; -+ } else { - clock = now_uframe + mod - 1; -+ clock_frame = -1; -+ } -+ if (ehci->clock_frame != clock_frame) { -+ free_cached_itd_list(ehci); -+ ehci->clock_frame = clock_frame; -+ } - clock %= mod; - clock_frame = clock >> 3; - -@@ -2277,6 +2313,10 @@ restart: - /* rescan the rest of this frame, then ... */ - clock = now; - clock_frame = clock >> 3; -+ if (ehci->clock_frame != clock_frame) { -+ free_cached_itd_list(ehci); -+ ehci->clock_frame = clock_frame; -+ } - } else { - now_uframe++; - now_uframe %= mod; diff --git a/usb.current/usb-fsl_usb2_udc-fix-potential-queue-head-corruption.patch b/usb.current/usb-fsl_usb2_udc-fix-potential-queue-head-corruption.patch deleted file mode 100644 index d0c0319c9563c4..00000000000000 --- a/usb.current/usb-fsl_usb2_udc-fix-potential-queue-head-corruption.patch +++ /dev/null @@ -1,33 +0,0 @@ -From leoli@freescale.com Tue Feb 17 17:36:15 2009 -From: Li Yang <leoli@freescale.com> -Date: Fri, 13 Feb 2009 16:14:39 +0800 -Subject: USB: fsl_usb2_udc: fix potential queue head corruption -To: greg@kroah.com -Cc: dbrownell@users.sourceforge.net, Li Yang <leoli@freescale.com> -Message-ID: <1234512879-31672-1-git-send-email-leoli@freescale.com> - - -Clear next TD field and status field in queue head initialization code -to prevent unpredictable result caused by residue of usb reset. - -Signed-off-by: Li Yang <leoli@freescale.com> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/fsl_usb2_udc.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/usb/gadget/fsl_usb2_udc.c -+++ b/drivers/usb/gadget/fsl_usb2_udc.c -@@ -404,7 +404,10 @@ static void struct_ep_qh_setup(struct fs - } - if (zlt) - tmp |= EP_QUEUE_HEAD_ZLT_SEL; -+ - p_QH->max_pkt_length = cpu_to_le32(tmp); -+ p_QH->next_dtd_ptr = 1; -+ p_QH->size_ioc_int_sts = 0; - - return; - } diff --git a/usb.current/usb-g_file_storage-automatically-disable-stalls-under-atmel.patch b/usb.current/usb-g_file_storage-automatically-disable-stalls-under-atmel.patch deleted file mode 100644 index 1cec57625272b9..00000000000000 --- a/usb.current/usb-g_file_storage-automatically-disable-stalls-under-atmel.patch +++ /dev/null @@ -1,38 +0,0 @@ -From stern@rowland.harvard.edu Tue Feb 24 21:48:00 2009 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 24 Feb 2009 16:19:47 -0500 (EST) -Subject: USB: g_file_storage: automatically disable stalls under Atmel -To: Greg KH <greg@kroah.com> -Cc: Stanislaw Gruszka <stf_xl@wp.pl>, USB list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0902241617220.10601-100000@iolanthe.rowland.org> - - -This patch (as1220) automatically disables stalls when g_file_storage -finds itself running with an Atmel device controller, because the -Atmel hardware/driver isn't capable of halting bulk endpoints -correctly. - -Reported-by: Stanislaw Gruszka <stf_xl@wp.pl> -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/file_storage.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/usb/gadget/file_storage.c -+++ b/drivers/usb/gadget/file_storage.c -@@ -3879,7 +3879,11 @@ static int __init check_parameters(struc - mod_data.protocol_type = USB_SC_SCSI; - mod_data.protocol_name = "Transparent SCSI"; - -- if (gadget_is_sh(fsg->gadget)) -+ /* Some peripheral controllers are known not to be able to -+ * halt bulk endpoints correctly. If one of them is present, -+ * disable stalls. -+ */ -+ if (gadget_is_sh(fsg->gadget) || gadget_is_at91(fsg->gadget)) - mod_data.can_stall = 0; - - if (mod_data.release == 0xffff) { // Parameter wasn't set diff --git a/usb.current/usb-gadget-fix-build-error-in-omap_apollon_2420_defconfig.patch b/usb.current/usb-gadget-fix-build-error-in-omap_apollon_2420_defconfig.patch deleted file mode 100644 index 7d6fa5a027fa8e..00000000000000 --- a/usb.current/usb-gadget-fix-build-error-in-omap_apollon_2420_defconfig.patch +++ /dev/null @@ -1,31 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:56:50 2009 -From: David Brownell <david-b@pacbell.net> -Date: Wed, 11 Feb 2009 22:31:12 -0800 -Subject: USB: gadget: fix build error in omap_apollon_2420_defconfig -To: Kyungmin Park <kmpark@infradead.org>, Greg KH <greg@kroah.com> -Cc: Tony Lindgren <tony@atomide.com>, "Russell King - ARM Linux" <linux@arm.linux.org.uk> -Message-ID: <200902112231.12887.david-b@pacbell.net> -Content-Disposition: inline - - -In apollon case, it only used udc, so udc configuration should select -USB_OTG_UTILS also. - -Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/Kconfig | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/usb/gadget/Kconfig -+++ b/drivers/usb/gadget/Kconfig -@@ -191,6 +191,7 @@ config USB_GADGET_OMAP - boolean "OMAP USB Device Controller" - depends on ARCH_OMAP - select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG -+ select USB_OTG_UTILS if ARCH_OMAP - help - Many Texas Instruments OMAP processors have flexible full - speed USB device controllers, with support for up to 30 diff --git a/usb.current/usb-gadget-obex-select-correct-ep-descriptors.patch b/usb.current/usb-gadget-obex-select-correct-ep-descriptors.patch deleted file mode 100644 index 3ad016c2cdf2d8..00000000000000 --- a/usb.current/usb-gadget-obex-select-correct-ep-descriptors.patch +++ /dev/null @@ -1,36 +0,0 @@ -From felipe.balbi@nokia.com Wed Feb 18 16:10:20 2009 -From: Felipe Balbi <felipe.balbi@nokia.com> -Date: Tue, 10 Feb 2009 19:01:52 +0200 -Subject: usb: gadget: obex: select correct ep descriptors -Cc: Felipe Balbi <felipe.balbi@nokia.com>, David Brownell <dbrownell@users.sourceforge.net> -Message-ID: <1234285312-31756-1-git-send-email-felipe.balbi@nokia.com> - - -We where selecting wrong ep descriptors causing -some troubles while sending files over obex interface. - -The problem was a typo while usb_find_endpoint() was being -called for HS endpoints. - -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/f_obex.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/gadget/f_obex.c -+++ b/drivers/usb/gadget/f_obex.c -@@ -366,9 +366,9 @@ obex_bind(struct usb_configuration *c, s - f->hs_descriptors = usb_copy_descriptors(hs_function); - - obex->hs.obex_in = usb_find_endpoint(hs_function, -- f->descriptors, &obex_hs_ep_in_desc); -+ f->hs_descriptors, &obex_hs_ep_in_desc); - obex->hs.obex_out = usb_find_endpoint(hs_function, -- f->descriptors, &obex_hs_ep_out_desc); -+ f->hs_descriptors, &obex_hs_ep_out_desc); - } - - /* Avoid letting this gadget enumerate until the userspace diff --git a/usb.current/usb-musb-be-careful-with-64k-transfer-lengths-host-side.patch b/usb.current/usb-musb-be-careful-with-64k-transfer-lengths-host-side.patch deleted file mode 100644 index e8dbe1f2503446..00000000000000 --- a/usb.current/usb-musb-be-careful-with-64k-transfer-lengths-host-side.patch +++ /dev/null @@ -1,66 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:08:27 2009 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:31:23 -0800 -Subject: USB: musb: be careful with 64K+ transfer lengths, host side -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Sergei Shtylyov <sshtylyov@ru.mvista.com> -Message-ID: <200902211531.23169.david-b@pacbell.net> -Content-Disposition: inline - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Feeding 32-bit length cast down to 'u16' to min() to calculate the FIFO -count in musb_host_tx() risks sending a short packet prematurely for -transfer sizes over 64 KB. - -Similarly, although data transfer size shouldn't exceed 65535 bytes for -the control endpoint, making musb_h_ep0_continue() more robust WRT URBs -with possibly oversized buffer will not hurt either... - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Cc: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -937,8 +937,8 @@ static bool musb_h_ep0_continue(struct m - switch (musb->ep0_stage) { - case MUSB_EP0_IN: - fifo_dest = urb->transfer_buffer + urb->actual_length; -- fifo_count = min(len, ((u16) (urb->transfer_buffer_length -- - urb->actual_length))); -+ fifo_count = min_t(size_t, len, urb->transfer_buffer_length - -+ urb->actual_length); - if (fifo_count < len) - urb->status = -EOVERFLOW; - -@@ -971,10 +971,9 @@ static bool musb_h_ep0_continue(struct m - } - /* FALLTHROUGH */ - case MUSB_EP0_OUT: -- fifo_count = min(qh->maxpacket, ((u16) -- (urb->transfer_buffer_length -- - urb->actual_length))); -- -+ fifo_count = min_t(size_t, qh->maxpacket, -+ urb->transfer_buffer_length - -+ urb->actual_length); - if (fifo_count) { - fifo_dest = (u8 *) (urb->transfer_buffer - + urb->actual_length); -@@ -1304,7 +1303,8 @@ void musb_host_tx(struct musb *musb, u8 - * packets before updating TXCSR ... other docs disagree ... - */ - /* PIO: start next packet in this URB */ -- wLength = min(qh->maxpacket, (u16) wLength); -+ if (wLength > qh->maxpacket) -+ wLength = qh->maxpacket; - musb_write_fifo(hw_ep, wLength, buf); - qh->segsize = wLength; - diff --git a/usb.current/usb-musb-be-careful-with-64k-transfer-lengths.patch b/usb.current/usb-musb-be-careful-with-64k-transfer-lengths.patch deleted file mode 100644 index d1fab57b512f6d..00000000000000 --- a/usb.current/usb-musb-be-careful-with-64k-transfer-lengths.patch +++ /dev/null @@ -1,46 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:06:10 2009 -From: Felipe Balbi <felipe.balbi@nokia.com> -Date: Sat, 21 Feb 2009 15:29:42 -0800 -Subject: USB: musb: be careful with 64K+ transfer lengths (gadget side) -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Felipe Balbi <felipe.balbi@nokia.com> -Message-ID: <200902211529.42439.david-b@pacbell.net> -Content-Disposition: inline - - -From: Felipe Balbi <felipe.balbi@nokia.com> - -request->actual is an unsigned and we should use the same -variable type for fifo_count otherwise we might lose some -data if request->length >= 64kbytes. - -[ dbrownell@users.sourceforge.net: fix compiler warning ] - -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_gadget.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/musb/musb_gadget.c -+++ b/drivers/usb/musb/musb_gadget.c -@@ -575,7 +575,7 @@ static void rxstate(struct musb *musb, s - struct usb_request *request = &req->request; - struct musb_ep *musb_ep = &musb->endpoints[epnum].ep_out; - void __iomem *epio = musb->endpoints[epnum].regs; -- u16 fifo_count = 0; -+ unsigned fifo_count = 0; - u16 len = musb_ep->packet_sz; - - csr = musb_readw(epio, MUSB_RXCSR); -@@ -687,7 +687,7 @@ static void rxstate(struct musb *musb, s - len, fifo_count, - musb_ep->packet_sz); - -- fifo_count = min(len, fifo_count); -+ fifo_count = min_t(unsigned, len, fifo_count); - - #ifdef CONFIG_USB_TUSB_OMAP_DMA - if (tusb_dma_omap() && musb_ep->dma) { diff --git a/usb.current/usb-musb-fix-data-toggle-saving-with-shared-fifo.patch b/usb.current/usb-musb-fix-data-toggle-saving-with-shared-fifo.patch deleted file mode 100644 index bb75c3306baa5f..00000000000000 --- a/usb.current/usb-musb-fix-data-toggle-saving-with-shared-fifo.patch +++ /dev/null @@ -1,46 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:07:45 2009 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:31:13 -0800 -Subject: USB: musb: fix data toggle saving with shared FIFO -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Sergei Shtylyov <sshtylyov@ru.mvista.com> -Message-ID: <200902211531.13134.david-b@pacbell.net> -Content-Disposition: inline - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -For some strange reason the host side musb_giveback() decides -that it's always got an IN transfer when the hardware endpoint -is using a shared FIFO. This causes musb_save_toggle() to read -the toggle state from the RXCSR register instead of TXCSR, and -may also cause unneeded reloading of RX endpoint registers. - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -335,16 +335,11 @@ musb_save_toggle(struct musb_hw_ep *ep, - static struct musb_qh * - musb_giveback(struct musb_qh *qh, struct urb *urb, int status) - { -- int is_in; - struct musb_hw_ep *ep = qh->hw_ep; - struct musb *musb = ep->musb; -+ int is_in = usb_pipein(urb->pipe); - int ready = qh->is_ready; - -- if (ep->is_shared_fifo) -- is_in = 1; -- else -- is_in = usb_pipein(urb->pipe); -- - /* save toggle eagerly, for paranoia */ - switch (qh->type) { - case USB_ENDPOINT_XFER_BULK: diff --git a/usb.current/usb-musb-fix-musb_host_tx-for-shared-endpoint-fifo.patch b/usb.current/usb-musb-fix-musb_host_tx-for-shared-endpoint-fifo.patch deleted file mode 100644 index 1c876093b06582..00000000000000 --- a/usb.current/usb-musb-fix-musb_host_tx-for-shared-endpoint-fifo.patch +++ /dev/null @@ -1,43 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:06:30 2009 -From: Dmitry Krivoschekov <dkrivoschekov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:30:15 -0800 -Subject: USB: musb: fix musb_host_tx() for shared endpoint FIFO -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Dmitry Krivoschekov <dkrivoschekov@ru.mvista.com> -Message-ID: <200902211530.15372.david-b@pacbell.net> -Content-Disposition: inline - - -From: Dmitry Krivoschekov <dkrivoschekov@ru.mvista.com> - -The input queue should be used for TX on endpoints which -share FIFO hardware. The host TX path wasn't doing that. - -Shared FIFOs are most often configured for periodic endpoints, -which are mostly used for RX/IN transfers ... that's probably -how this bug managed to linger for a long time. - -[ dbrownell@users.sourceforge.net: update patch description ] - -Signed-off-by: Dmitry Krivoschekov <dkrivoschekov@ru.mvista.com> -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Cc: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -1161,7 +1161,8 @@ void musb_host_tx(struct musb *musb, u8 - struct urb *urb; - struct musb_hw_ep *hw_ep = musb->endpoints + epnum; - void __iomem *epio = hw_ep->regs; -- struct musb_qh *qh = hw_ep->out_qh; -+ struct musb_qh *qh = hw_ep->is_shared_fifo ? hw_ep->in_qh -+ : hw_ep->out_qh; - u32 status = 0; - void __iomem *mbase = musb->mregs; - struct dma_channel *dma; diff --git a/usb.current/usb-musb-fix-srp-sysfs-entry-deletion.patch b/usb.current/usb-musb-fix-srp-sysfs-entry-deletion.patch deleted file mode 100644 index 05f7d06439f410..00000000000000 --- a/usb.current/usb-musb-fix-srp-sysfs-entry-deletion.patch +++ /dev/null @@ -1,44 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:09:27 2009 -From: Vikram Pandita <vikram.pandita@ti.com> -Date: Sat, 21 Feb 2009 15:31:44 -0800 -Subject: USB: musb: fix srp sysfs entry deletion -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, "Pandita, Vikram" <vikram.pandita@ti.com> -Message-ID: <200902211531.44907.david-b@pacbell.net> - - -From: Vikram Pandita <vikram.pandita@ti.com> - -The SRP sysfs attribute is dependent on gadget mode; any -gadget may support SRP. But "rmmod musb_hdrc" didn't -remove that attribute; fix. - -Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> -Acked-by: Felipe Balbi <me@felipebalbi.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -1816,7 +1816,7 @@ static void musb_free(struct musb *musb) - #ifdef CONFIG_SYSFS - device_remove_file(musb->controller, &dev_attr_mode); - device_remove_file(musb->controller, &dev_attr_vbus); --#ifdef CONFIG_USB_MUSB_OTG -+#ifdef CONFIG_USB_GADGET_MUSB_HDRC - device_remove_file(musb->controller, &dev_attr_srp); - #endif - #endif -@@ -2064,7 +2064,7 @@ fail2: - #ifdef CONFIG_SYSFS - device_remove_file(musb->controller, &dev_attr_mode); - device_remove_file(musb->controller, &dev_attr_vbus); --#ifdef CONFIG_USB_MUSB_OTG -+#ifdef CONFIG_USB_GADGET_MUSB_HDRC - device_remove_file(musb->controller, &dev_attr_srp); - #endif - #endif diff --git a/usb.current/usb-musb-fix-urb_dequeue-method.patch b/usb.current/usb-musb-fix-urb_dequeue-method.patch deleted file mode 100644 index ddd7419e3be7ad..00000000000000 --- a/usb.current/usb-musb-fix-urb_dequeue-method.patch +++ /dev/null @@ -1,75 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:06:55 2009 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:30:45 -0800 -Subject: USB: musb: fix urb_dequeue() method -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Sergei Shtylyov <sshtylyov@ru.mvista.com> -Message-ID: <200902211530.45704.david-b@pacbell.net> -Content-Disposition: inline - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -The urb_dequeue() method forgets to unlink 'struct musb_qh' from the -control or bulk schedules when the URB being cancelled is the only -one queued to its endpoint. That will cause musb_advance_schedule() -to block once it reaches 'struct musb_qh' with now empty URB list, so -URBs queued for other endpoints after the one being dequeued will not -be served. - -Fix by unlinking the QH from the list except when it's already being -handled (typically by musb_giveback). Since a QH with an empty URB -list is now supposed to be freed, do that. And remove a now-useless -check from musb_advance_schedule(). - -[ dbrownell@users.sourceforge.net: update patch description, - and fold in a dequeue() comment patch ] - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Cc: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -432,7 +432,7 @@ musb_advance_schedule(struct musb *musb, - else - qh = musb_giveback(qh, urb, urb->status); - -- if (qh && qh->is_ready && !list_empty(&qh->hep->urb_list)) { -+ if (qh != NULL && qh->is_ready) { - DBG(4, "... next ep%d %cX urb %p\n", - hw_ep->epnum, is_in ? 'R' : 'T', - next_urb(qh)); -@@ -2038,9 +2038,9 @@ static int musb_urb_dequeue(struct usb_h - goto done; - - /* Any URB not actively programmed into endpoint hardware can be -- * immediately given back. Such an URB must be at the head of its -+ * immediately given back; that's any URB not at the head of an - * endpoint queue, unless someday we get real DMA queues. And even -- * then, it might not be known to the hardware... -+ * if it's at the head, it might not be known to the hardware... - * - * Otherwise abort current transfer, pending dma, etc.; urb->status - * has already been updated. This is a synchronous abort; it'd be -@@ -2079,6 +2079,15 @@ static int musb_urb_dequeue(struct usb_h - qh->is_ready = 0; - __musb_giveback(musb, urb, 0); - qh->is_ready = ready; -+ -+ /* If nothing else (usually musb_giveback) is using it -+ * and its URB list has emptied, recycle this qh. -+ */ -+ if (ready && list_empty(&qh->hep->urb_list)) { -+ qh->hep->hcpriv = NULL; -+ list_del(&qh->ring); -+ kfree(qh); -+ } - } else - ret = musb_cleanup_urb(urb, qh, urb->pipe & USB_DIR_IN); - done: diff --git a/usb.current/usb-musb-host-endpoint_disable-oops-fixes.patch b/usb.current/usb-musb-host-endpoint_disable-oops-fixes.patch deleted file mode 100644 index 0eb20519bb362e..00000000000000 --- a/usb.current/usb-musb-host-endpoint_disable-oops-fixes.patch +++ /dev/null @@ -1,93 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:07:26 2009 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:31:01 -0800 -Subject: USB: musb: host endpoint_disable() oops fixes -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Sergei Shtylyov <sshtylyov@ru.mvista.com> -Message-ID: <200902211531.01389.david-b@pacbell.net> -Content-Disposition: inline - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -The musb_h_disable() routine can oops in some cases: - - - It's not safe to read hep->hcpriv outside musb->lock, - since it gets changed on completion IRQ paths. - - - The list iterators aren't safe to use in that way; - just remove the first element while !list_empty(), - so deletions on other code paths can't make trouble. - -We need two "scrub the list" loops because only one branch -should touch hardware and advance the schedule. - -[ dbrownell@users.sourceforge.net: massively simplify - patch description; add key points as code comments ] - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 36 ++++++++++++++++++++++++++---------- - 1 file changed, 26 insertions(+), 10 deletions(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -2103,15 +2103,16 @@ musb_h_disable(struct usb_hcd *hcd, stru - unsigned long flags; - struct musb *musb = hcd_to_musb(hcd); - u8 is_in = epnum & USB_DIR_IN; -- struct musb_qh *qh = hep->hcpriv; -- struct urb *urb, *tmp; -+ struct musb_qh *qh; -+ struct urb *urb; - struct list_head *sched; - -- if (!qh) -- return; -- - spin_lock_irqsave(&musb->lock, flags); - -+ qh = hep->hcpriv; -+ if (qh == NULL) -+ goto exit; -+ - switch (qh->type) { - case USB_ENDPOINT_XFER_CONTROL: - sched = &musb->control; -@@ -2145,13 +2146,28 @@ musb_h_disable(struct usb_hcd *hcd, stru - - /* cleanup */ - musb_cleanup_urb(urb, qh, urb->pipe & USB_DIR_IN); -- } else -- urb = NULL; - -- /* then just nuke all the others */ -- list_for_each_entry_safe_from(urb, tmp, &hep->urb_list, urb_list) -- musb_giveback(qh, urb, -ESHUTDOWN); -+ /* Then nuke all the others ... and advance the -+ * queue on hw_ep (e.g. bulk ring) when we're done. -+ */ -+ while (!list_empty(&hep->urb_list)) { -+ urb = next_urb(qh); -+ urb->status = -ESHUTDOWN; -+ musb_advance_schedule(musb, urb, qh->hw_ep, is_in); -+ } -+ } else { -+ /* Just empty the queue; the hardware is busy with -+ * other transfers, and since !qh->is_ready nothing -+ * will activate any of these as it advances. -+ */ -+ while (!list_empty(&hep->urb_list)) -+ __musb_giveback(musb, next_urb(qh), -ESHUTDOWN); - -+ hep->hcpriv = NULL; -+ list_del(&qh->ring); -+ kfree(qh); -+ } -+exit: - spin_unlock_irqrestore(&musb->lock, flags); - } - diff --git a/usb.current/usb-musb-make-davinci-work-in-mainline.patch b/usb.current/usb-musb-make-davinci-work-in-mainline.patch deleted file mode 100644 index f5025e57bdf2ed..00000000000000 --- a/usb.current/usb-musb-make-davinci-work-in-mainline.patch +++ /dev/null @@ -1,144 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:03:58 2009 -From: David Brownell <david-b@pacbell.net> -Date: Fri, 20 Feb 2009 13:45:17 -0800 -Subject: usb: musb: make Davinci *work* in mainline -To: Greg KH <greg@kroah.com>, linux-usb@vger.kernel.org -Cc: DaVinci <davinci-linux-open-source@linux.davincidsp.com> -Message-ID: <200902201345.17183.david-b@pacbell.net> -Content-Disposition: inline - - -From: David Brownell <dbrownell@users.sourceforge.net> - -Now that the musb build fixes for DaVinci got merged (RC3?), kick in -the other bits needed to get it finally *working* in mainline: - - - Use clk_enable()/clk_disable() ... the "always enable USB clocks" - code this originally relied on has since been removed. - - - Initialize the USB device only after the relevant I2C GPIOs are - available, so the host side can properly enable VBUS. - - - Tweak init sequencing to cope with mainline's relatively late init - of the I2C system bus for power switches, transceivers, and so on. - -Sanity tested on DM6664 EVM for host and peripheral modes; that system -won't boot with CONFIG_PM enabled, so OTG can't yet be tested. Also -verified on OMAP3. - -(Unrelated: correct the MODULE_PARM_DESC spelling of musb_debug.) - -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Cc: Felipe Balbi <me@felipebalbi.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - arch/arm/mach-davinci/board-evm.c | 6 +++--- - arch/arm/mach-davinci/clock.c | 5 +++++ - arch/arm/mach-davinci/usb.c | 1 + - drivers/usb/musb/davinci.c | 15 ++++----------- - drivers/usb/musb/musb_core.c | 8 ++++---- - 5 files changed, 17 insertions(+), 18 deletions(-) - ---- a/arch/arm/mach-davinci/board-evm.c -+++ b/arch/arm/mach-davinci/board-evm.c -@@ -311,6 +311,9 @@ evm_u35_setup(struct i2c_client *client, - gpio_request(gpio + 7, "nCF_SEL"); - gpio_direction_output(gpio + 7, 1); - -+ /* irlml6401 sustains over 3A, switches 5V in under 8 msec */ -+ setup_usb(500, 8); -+ - return 0; - } - -@@ -417,9 +420,6 @@ static __init void davinci_evm_init(void - platform_add_devices(davinci_evm_devices, - ARRAY_SIZE(davinci_evm_devices)); - evm_init_i2c(); -- -- /* irlml6401 sustains over 3A, switches 5V in under 8 msec */ -- setup_usb(500, 8); - } - - static __init void davinci_evm_irq_init(void) ---- a/arch/arm/mach-davinci/clock.c -+++ b/arch/arm/mach-davinci/clock.c -@@ -231,6 +231,11 @@ static struct clk davinci_clks[] = { - .lpsc = DAVINCI_LPSC_GPIO, - }, - { -+ .name = "usb", -+ .rate = &commonrate, -+ .lpsc = DAVINCI_LPSC_USB, -+ }, -+ { - .name = "AEMIFCLK", - .rate = &commonrate, - .lpsc = DAVINCI_LPSC_AEMIF, ---- a/arch/arm/mach-davinci/usb.c -+++ b/arch/arm/mach-davinci/usb.c -@@ -47,6 +47,7 @@ static struct musb_hdrc_platform_data us - #elif defined(CONFIG_USB_MUSB_HOST) - .mode = MUSB_HOST, - #endif -+ .clock = "usb", - .config = &musb_config, - }; - ---- a/drivers/usb/musb/davinci.c -+++ b/drivers/usb/musb/davinci.c -@@ -377,18 +377,8 @@ int __init musb_platform_init(struct mus - u32 revision; - - musb->mregs += DAVINCI_BASE_OFFSET; --#if 0 -- /* REVISIT there's something odd about clocking, this -- * didn't appear do the job ... -- */ -- musb->clock = clk_get(pDevice, "usb"); -- if (IS_ERR(musb->clock)) -- return PTR_ERR(musb->clock); - -- status = clk_enable(musb->clock); -- if (status < 0) -- return -ENODEV; --#endif -+ clk_enable(musb->clock); - - /* returns zero if e.g. not clocked */ - revision = musb_readl(tibase, DAVINCI_USB_VERSION_REG); -@@ -453,5 +443,8 @@ int musb_platform_exit(struct musb *musb - } - - phy_off(); -+ -+ clk_disable(musb->clock); -+ - return 0; - } ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -115,7 +115,7 @@ - - - unsigned musb_debug; --module_param(musb_debug, uint, S_IRUGO | S_IWUSR); -+module_param_named(debug, musb_debug, uint, S_IRUGO | S_IWUSR); - MODULE_PARM_DESC(debug, "Debug message level. Default = 0"); - - #define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia" -@@ -2243,10 +2243,10 @@ static int __init musb_init(void) - return platform_driver_probe(&musb_driver, musb_probe); - } - --/* make us init after usbcore and before usb -- * gadget and host-side drivers start to register -+/* make us init after usbcore and i2c (transceivers, regulators, etc) -+ * and before usb gadget and host-side drivers start to register - */ --subsys_initcall(musb_init); -+fs_initcall(musb_init); - - static void __exit musb_cleanup(void) - { diff --git a/usb.current/usb-musb-resume-suspended-root-hub-on-disconnect.patch b/usb.current/usb-musb-resume-suspended-root-hub-on-disconnect.patch deleted file mode 100644 index 47a734aa362e40..00000000000000 --- a/usb.current/usb-musb-resume-suspended-root-hub-on-disconnect.patch +++ /dev/null @@ -1,38 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:09:07 2009 -From: Anand Gadiyar <gadiyar@ti.com> -Date: Sat, 21 Feb 2009 15:31:40 -0800 -Subject: USB: musb: resume suspended root hub on disconnect -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Anand Gadiyar <gadiyar@ti.com> -Message-ID: <200902211531.40766.david-b@pacbell.net> -Content-Disposition: inline - - -From: Anand Gadiyar <gadiyar@ti.com> - -If this is not done, khubd will not be informed of the disconnect -and will assume the device is still there. - -Easily seen when a hub is connected with no device attached to it; -it will autosuspend. When the hub is disconnected, it still shows -up in /proc/bus/usb/devices - -Signed-off-by: Anand Gadiyar <gadiyar@ti.com> -Acked-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -767,6 +767,7 @@ static irqreturn_t musb_stage2_irq(struc - #ifdef CONFIG_USB_MUSB_HDRC_HCD - case OTG_STATE_A_HOST: - case OTG_STATE_A_SUSPEND: -+ usb_hcd_resume_root_hub(musb_to_hcd(musb)); - musb_root_disconnect(musb); - if (musb->a_wait_bcon != 0) - musb_platform_try_idle(musb, jiffies diff --git a/usb.current/usb-musb-use-right-poll-limit-for-low-speed-devices.patch b/usb.current/usb-musb-use-right-poll-limit-for-low-speed-devices.patch deleted file mode 100644 index c12bd48a5c55fa..00000000000000 --- a/usb.current/usb-musb-use-right-poll-limit-for-low-speed-devices.patch +++ /dev/null @@ -1,56 +0,0 @@ -From david-b@pacbell.net Tue Feb 24 21:08:49 2009 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Sat, 21 Feb 2009 15:31:35 -0800 -Subject: USB: musb: use right poll limit for low speed devices -To: Greg KH <greg@kroah.com> -Cc: linux-usb@vger.kernel.org, Sergei Shtylyov <sshtylyov@ru.mvista.com> -Message-ID: <200902211531.35324.david-b@pacbell.net> -Content-Disposition: inline - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Remove wrongly applied upper limit on the interrupt transfer -interval for low speed devices (not much of an error per se, -according to USB specs). - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 18 ++++++++++-------- - 1 file changed, 10 insertions(+), 8 deletions(-) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -1863,19 +1863,21 @@ static int musb_urb_enqueue( - } - qh->type_reg = type_reg; - -- /* precompute rxinterval/txinterval register */ -- interval = min((u8)16, epd->bInterval); /* log encoding */ -+ /* Precompute RXINTERVAL/TXINTERVAL register */ - switch (qh->type) { - case USB_ENDPOINT_XFER_INT: -- /* fullspeed uses linear encoding */ -- if (USB_SPEED_FULL == urb->dev->speed) { -- interval = epd->bInterval; -- if (!interval) -- interval = 1; -+ /* -+ * Full/low speeds use the linear encoding, -+ * high speed uses the logarithmic encoding. -+ */ -+ if (urb->dev->speed <= USB_SPEED_FULL) { -+ interval = max_t(u8, epd->bInterval, 1); -+ break; - } - /* FALLTHROUGH */ - case USB_ENDPOINT_XFER_ISOC: -- /* iso always uses log encoding */ -+ /* ISO always uses logarithmic encoding */ -+ interval = min_t(u8, epd->bInterval, 16); - break; - default: - /* REVISIT we actually want to use NAK limits, hinting to the diff --git a/usb.current/usb-option-add-benq-3g-modem-information.patch b/usb.current/usb-option-add-benq-3g-modem-information.patch deleted file mode 100644 index 81907360fbd8b2..00000000000000 --- a/usb.current/usb-option-add-benq-3g-modem-information.patch +++ /dev/null @@ -1,39 +0,0 @@ -From foo@baz Fri Feb 20 21:13:45 PST 2009 -Date: Fri, 20 Feb 2009 21:13:45 -0800 -To: Greg KH <greg@kroah.com> -From: Jesse Sung <jsung@novell.com> -Subject: USB: option: add BenQ 3g modem information -References: bnc#473918 - -This patch addes the BenQ 3g modem support to the option driver. - - -From: Jesse Sung <jsung@novell.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -296,6 +296,9 @@ static int option_send_setup(struct tty - #define ERICSSON_VENDOR_ID 0x0bdb - #define ERICSSON_PRODUCT_F3507G 0x1900 - -+#define BENQ_VENDOR_ID 0x04a5 -+#define BENQ_PRODUCT_H10 0x4068 -+ - static struct usb_device_id option_ids[] = { - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, -@@ -510,6 +513,8 @@ static struct usb_device_id option_ids[] - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, - { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, -+ { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, -+ { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ - { } /* Terminating entry */ - }; - MODULE_DEVICE_TABLE(usb, option_ids); diff --git a/usb.current/usb-quirk-for-hummingbird-huc56s-conexant-acm-modem.patch b/usb.current/usb-quirk-for-hummingbird-huc56s-conexant-acm-modem.patch deleted file mode 100644 index 41a1a430b2527b..00000000000000 --- a/usb.current/usb-quirk-for-hummingbird-huc56s-conexant-acm-modem.patch +++ /dev/null @@ -1,34 +0,0 @@ -From adam_richter2004@yahoo.com Tue Feb 24 21:54:24 2009 -From: Adam Richter <adam_richter2004@yahoo.com> -Date: Wed, 18 Feb 2009 16:17:15 -0800 (PST) -Subject: USB: Quirk for Hummingbird huc56s / Conexant ACM modem -To: Oliver Neukum <oliver@neukum.org> -Cc: gregkh@suse.de, linux-usb@vger.kernel.org -Message-ID: <703834.95945.qm@web57701.mail.re3.yahoo.com> - - - -Signed-off-by: Adam J. Richter <adam_richter2004@yahoo.com> -Cc: Oliver Neukum <oliver@neukum.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/class/cdc-acm.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/drivers/usb/class/cdc-acm.c -+++ b/drivers/usb/class/cdc-acm.c -@@ -1378,6 +1378,13 @@ static struct usb_device_id acm_ids[] = - }, - { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ - }, -+ { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */ -+ .driver_info = NO_UNION_NORMAL, /* union descriptor misplaced on -+ data interface instead of -+ communications interface. -+ Maybe we should define a new -+ quirk for this. */ -+ }, - - /* control interfaces with various AT-command sets */ - { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, diff --git a/usb.current/usb-serial-add-support-for-second-revision-of-ericsson-f3507g-wwan-card.patch b/usb.current/usb-serial-add-support-for-second-revision-of-ericsson-f3507g-wwan-card.patch deleted file mode 100644 index 1acacebeb015ca..00000000000000 --- a/usb.current/usb-serial-add-support-for-second-revision-of-ericsson-f3507g-wwan-card.patch +++ /dev/null @@ -1,42 +0,0 @@ -From akpm@linux-foundation.org Tue Feb 24 21:13:38 2009 -From: Patrik Kullman <patrik@yes.nu> -Date: Tue, 24 Feb 2009 13:38:53 -0800 -Subject: USB: serial: add support for second revision of Ericsson F3507G WWAN card -To: mm-commits@vger.kernel.org -Cc: patrik@yes.nu, greg@kroah.com -Message-ID: <200902242138.n1OLcr0l013079@imap1.linux-foundation.org> - -From: Patrik Kullman <patrik@yes.nu> - -I noticed that my revision of the F3507G WWAN card isn't listed in -drivers/usb/serial/option.c - -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -294,7 +294,8 @@ static int option_send_setup(struct tty - - /* Ericsson products */ - #define ERICSSON_VENDOR_ID 0x0bdb --#define ERICSSON_PRODUCT_F3507G 0x1900 -+#define ERICSSON_PRODUCT_F3507G_1 0x1900 -+#define ERICSSON_PRODUCT_F3507G_2 0x1902 - - #define BENQ_VENDOR_ID 0x04a5 - #define BENQ_PRODUCT_H10 0x4068 -@@ -512,7 +513,8 @@ static struct usb_device_id option_ids[] - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, -- { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, -+ { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G_1) }, -+ { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G_2) }, - { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, - { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ - { } /* Terminating entry */ diff --git a/usb.current/usb-usb-storage-add-ignore_residue-flag-for-genesys-logic-adapters.patch b/usb.current/usb-usb-storage-add-ignore_residue-flag-for-genesys-logic-adapters.patch deleted file mode 100644 index ec74863768e6b4..00000000000000 --- a/usb.current/usb-usb-storage-add-ignore_residue-flag-for-genesys-logic-adapters.patch +++ /dev/null @@ -1,41 +0,0 @@ -From stern@rowland.harvard.edu Tue Feb 24 21:49:23 2009 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Mon, 23 Feb 2009 12:02:05 -0500 (EST) -Subject: USB: usb-storage: add IGNORE_RESIDUE flag for Genesys Logic adapters -To: Greg KH <greg@kroah.com>, <stable@kernel.org> -Cc: Mike Lampard <mike@mtgambier.net>, Phil Dibowitz <phil@ipom.com>, USB Storage list <usb-storage@lists.one-eyed-alien.net> -Message-ID: <Pine.LNX.4.44L0.0902231200350.5754-100000@iolanthe.rowland.org> - - -This patch (as1219) adds the IGNORE_RESIDUE flag to the unusual_devs -entries for Genesys Logic's USB-IDE adapter. Although this device -usually gets the residue correct, there is one command crucial to the -operation of CD and DVD drives which it messes up. - -Tested-by: Mike Lampard <mike@mtgambier.net> -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -907,13 +907,13 @@ UNUSUAL_DEV( 0x05e3, 0x0701, 0x0000, 0x - "Genesys Logic", - "USB to IDE Optical", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), -+ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), - - UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff, - "Genesys Logic", - "USB to IDE Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), -+ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), - - /* Reported by Ben Efros <ben@pc-doctor.com> */ - UNUSUAL_DEV( 0x05e3, 0x0723, 0x9451, 0x9451, diff --git a/usb.current/usb-usb_get_string-should-check-the-descriptor-type.patch b/usb.current/usb-usb_get_string-should-check-the-descriptor-type.patch deleted file mode 100644 index c0c3d8e2306a98..00000000000000 --- a/usb.current/usb-usb_get_string-should-check-the-descriptor-type.patch +++ /dev/null @@ -1,59 +0,0 @@ -From stern@rowland.harvard.edu Tue Feb 24 22:00:27 2009 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Fri, 20 Feb 2009 16:33:08 -0500 (EST) -Subject: USB: usb_get_string should check the descriptor type -To: Greg KH <greg@kroah.com> -Cc: USB list <linux-usb@vger.kernel.org>, stable@kernel.org, Guillermo Jarabo <williamjap@gmail.com> -Message-ID: <Pine.LNX.4.44L0.0902201630470.4145-100000@iolanthe.rowland.org> - -From: Alan Stern <stern@rowland.harvard.edu> - -This patch (as1218) fixes a problem with a radio-control joystick used -in the "walkera 4#3" helicopter. This device responds to the initial -Get-String-Descriptor request for string 0 (which is really the list -of supported languages) by sending its config descriptor! The -usb_get_string() routine needs to check whether it got the right -type of descriptor. - -Oddly enough, this sort of check is already present in -usb_get_descriptor(). The patch changes the error code from -EPROTO -to -ENODATA, because -EPROTO shows up in so many other contexts to -indicate a hardware failure rather than a firmware error. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Tested-by: Guillermo Jarabo <williamjap@gmail.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -=================================================================== ---- - drivers/usb/core/message.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - ---- a/drivers/usb/core/message.c -+++ b/drivers/usb/core/message.c -@@ -653,7 +653,7 @@ int usb_get_descriptor(struct usb_device - if (result <= 0 && result != -ETIMEDOUT) - continue; - if (result > 1 && ((u8 *)buf)[1] != type) { -- result = -EPROTO; -+ result = -ENODATA; - continue; - } - break; -@@ -696,8 +696,13 @@ static int usb_get_string(struct usb_dev - USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, - (USB_DT_STRING << 8) + index, langid, buf, size, - USB_CTRL_GET_TIMEOUT); -- if (!(result == 0 || result == -EPIPE)) -- break; -+ if (result == 0 || result == -EPIPE) -+ continue; -+ if (result > 1 && ((u8 *) buf)[1] != USB_DT_STRING) { -+ result = -ENODATA; -+ continue; -+ } -+ break; - } - return result; - } @@ -1 +1 @@ -2.6.29-rc6 +2.6.29-rc6-git5 |
