summaryrefslogtreecommitdiffstats
path: root/drivers/usb
Commit message (Collapse)AuthorAgeFilesLines
* usbnet: convert rndis driver to use dev_get_statsStephen Hemminger2009-03-211-5/+2
| | | | | | | | dev_get_stats() handles all issues with net_device_ops Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2009-03-0116-72/+167
|\ | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/wireless/iwlwifi/iwl-tx.c net/8021q/vlan_core.c net/core/dev.c
| * USB: musb: fix srp sysfs entry deletionVikram Pandita2009-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: resume suspended root hub on disconnectAnand Gadiyar2009-02-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: use right poll limit for low speed devicesSergei Shtylyov2009-02-271-8/+10
| | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: be careful with 64K+ transfer lengths, host sideSergei Shtylyov2009-02-271-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: fix data toggle saving with shared FIFOSergei Shtylyov2009-02-271-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: host endpoint_disable() oops fixesSergei Shtylyov2009-02-271-10/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: fix urb_dequeue() methodSergei Shtylyov2009-02-271-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: fix musb_host_tx() for shared endpoint FIFODmitry Krivoschekov2009-02-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: musb: be careful with 64K+ transfer lengths (gadget side)Felipe Balbi2009-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * usb: musb: make Davinci *work* in mainlineDavid Brownell2009-02-272-15/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: usb_get_string should check the descriptor typeAlan Stern2009-02-271-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> ===================================================================
| * USB: gadget: fix build error in omap_apollon_2420_defconfigDavid Brownell2009-02-271-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
| * USB: g_file_storage: automatically disable stalls under AtmelAlan Stern2009-02-271-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: usb-storage: add IGNORE_RESIDUE flag for Genesys Logic adaptersAlan Stern2009-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: Quirk for Hummingbird huc56s / Conexant ACM modemAdam Richter2009-02-271-0/+7
| | | | | | | | | | | | | | 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>
| * USB: serial: add support for second revision of Ericsson F3507G WWAN cardPatrik Kullman2009-02-271-2/+4
| | | | | | | | | | | | | | | | | | 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>
| * USB: cdc-acm: add usb id for motomagx phonesDmitriy Taychenachev2009-02-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: option: add BenQ 3g modem informationJesse Sung2009-02-271-0/+5
| | | | | | | | | | | | | | | | | | | | 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>
| * usb: gadget: obex: select correct ep descriptorsFelipe Balbi2009-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: EHCI: slow down ITD reuseKarsten Wiese2009-02-274-8/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * USB: fsl_usb2_udc: fix potential queue head corruptionLi Yang2009-02-271-0/+3
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge branch 'master' of /home/davem/src/GIT/linux-2.6/David S. Miller2009-02-248-23/+8
|\ \ | |/
| * Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2009-02-191-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 5405/1: ep93xx: remove unused gesbc9312.h header [ARM] 5404/1: Fix condition in arm_elf_read_implies_exec() to set READ_IMPLIES_EXEC [ARM] omap: fix clock reparenting in omap2_clk_set_parent() [ARM] 5403/1: pxa25x_ep_fifo_flush() *ep->reg_udccs always set to 0 [ARM] 5402/1: fix a case of wrap-around in sanity_check_meminfo() [ARM] 5401/1: Orion: fix edge triggered GPIO interrupt support [ARM] 5400/1: Add support for inverted rdy_busy pin for Atmel nand device controller [ARM] 5391/1: AT91: Enable GPIO clocks earlier [ARM] 5390/1: AT91: Watchdog fixes [ARM] 5398/1: Add Wan ZongShun to MAINTAINERS for W90P910 [ARM] omap: fix _omap2_clksel_get_src_field() [ARM] omap: fix omap2_divisor_to_clksel() error return value
| | * [ARM] 5403/1: pxa25x_ep_fifo_flush() *ep->reg_udccs always set to 0Roel Kluin2009-02-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | *ep->reg_udccs is always set to 0. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | USB/PCI: Fix resume breakage of controllers behind cardbus bridgesRafael J. Wysocki2009-02-175-17/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a USB PCI controller is behind a cardbus bridge, we are trying to restore its configuration registers too early, before the cardbus bridge is operational. To fix this, call pci_restore_state() from usb_hcd_pci_resume() and remove usb_hcd_pci_resume_early() which is no longer necessary (the configuration spaces of USB controllers that are not behind cardbus bridges will be restored by the PCI PM core with interrupts disabled anyway). This patch fixes the regression from 2.6.28 tracked as http://bugzilla.kernel.org/show_bug.cgi?id=12659 [ Side note: the proper long-term fix is probably to just force the unplug event at suspend time instead of doing a plug/unplug at resume time, but this patch is fine regardless - Linus ] Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Reported-by: Miles Lane <miles.lane@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * | wusb: whci-hcd: always lock whc->lock with interrupts disabledDavid Vrabel2009-02-162-4/+4
| |/ | | | | | | | | | | Always lock whc->lock with spin_lock_irq() or spin_lock_irqsave(). Signed-off-by: David Vrabel <david.vrabel@csr.com>
* | Merge branch 'master' of /home/davem/src/GIT/linux-2.6/David S. Miller2009-02-1412-105/+117
|\ \ | |/ | | | | | | | | Conflicts: drivers/net/wireless/iwlwifi/iwl-agn.c drivers/net/wireless/iwlwifi/iwl3945-base.c
| * USB: Storage: Update unusual_devs entry for Datafab KECF-USBNick Holloway2009-02-091-1/+1
| | | | | | | | | | | | | | | | | | This device suffers from the off-by-one error when reporting the capacity, so add US_FL_FIX_CAPACITY to the existing entry. Signed-off-by: Nick Holloway <Nick.Holloway@pyrites.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: Correct Makefile to make isp1760 buildableIvan Kuten2009-02-091-0/+1
| | | | | | | | | | | | | | | | Signed-off-by: Ivan Kuten <ivan.kuten@promwad.com> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: option: New mobile broadband modems to be supportedDirk De Schepper2009-02-091-28/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | - New Novatel and Dell mobile broadband modem products added - Dell pid variables used in stead of numerical PIDs for known products Signed-off-by: Dirk De Schepper <ddeschepper@nvtl.com> Cc: stable <stable@kernel.org> Signed-off-by: Matthias Urlichs <matthias@urlichs.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: two more usb ids for ti_usb_3410_5052Oliver Neukum2009-02-092-3/+9
| | | | | | | | | | | | | | | | | | | | | | This patch adds device IDs and balances the counts to make the hot ID additioning mechanism work. Signed-off-by: Oliver Neukum <oneukum@suse.de> Cc: stable <stable@kernel.org> Cc: Chris Adams <cmadams@hiwaay.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: ftdi_sio: unlock_kernel() on error in set_serial_info()Dan Carpenter2009-02-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | There was one error path where unlock_kernel() wasn't called. This was found with a code checker (http://repo.or.cz/w/smatch.git/) Compile tested only, sorry. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: usb-storage: add Pentax to the bad-vendor listAlan Stern2009-02-092-15/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch (as1202) adds Pentax to usb-storage's list of bad vendors whose devices always need the CAPACITY_HEURISTICS flag. This is in addition to the existing entries: Nokia, Nikon, and Motorola. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Virgo Pärna <virgo.parna@mail.ee> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: ftdi_sio: add support for the NDI Polaris systemStephane Clerambault2009-02-092-0/+4
| | | | | | | | | | | | | | | | | | | | Add support for the NDI Polaris system *http://www.ndigital.com/). Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Oliver Neukum <oneukum@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: usb-serial: fix the aircable_init failure pathDave Young2009-02-091-2/+2
| | | | | | | | | | | | | | | | | | The failure path of aircable_init is wrong, fix the order of (goto) labels. Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Acked-by: Naranjo Manuel Francisco <naranjo.manuel@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: usb-storage: remove WARN from last-sector hacksAlan Stern2009-02-091-33/+3
| | | | | | | | | | | | | | | | | | | | | | | | This patch (as1201) removes the WARN() from the last-sector hacks in usb-storage, thereby making the code match the version now in .27-stable and .28-stable. The WARN() isn't needed, since there is no longer any intention of assuming that all storage devices have an even number of sectors, and it annoys users for no good reason. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * Revert USB: option: add Pantech cardsGreg Kroah-Hartman2009-02-091-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert 8b6346ec899713a90890c9e832f7eff91ea73504 as these devices really work just fine with the cdc-acm driver, as they follow the spec properly. Thanks to Chuck Ebbert for pointing out the problem here. Cc: Chuck Ebbert <cebbert@redhat.com> Cc: Dan Williams <dcbw@redhat.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: cdc-acm.c: remove duplicate lines for MTK gps supportJames Treacy2009-02-091-3/+0
| | | | | | | | | | | | | | | | | | The same patch to add support for MTK gps loggers was submitted by two different people and applied twice. Remove the redundant lines. Signed-off-by: James Treacy <treacy@debian.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix stalled TX requests bugAnton Vorontsov2009-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While disabling an endpoint the driver nuking any pending requests, thus completing them with -ESHUTDOWN status. But the driver doesn't clear the tx_req, which means that a next TX request (after ep_enable), might get stalled, since the driver won't queue the new reqests. This patch fixes a bug I'm observing with ethernet gadget while playing with ifconfig usb0 up/down (the up/down sequence disables and enables `in' and `out' endpoints). Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix muram corruption by disabled endpointsAnton Vorontsov2009-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before freeing an endpoint's muram memory, we should stop all activity of the endpoint, otherwise the QE UDC controller might do nasty things with the muram memory that isn't belong to that endpoint anymore. The qe_ep_reset() effectively flushes the hardware fifos, finishes all late transaction and thus prevents the corruption. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix disconnects reporting during bus resetAnton Vorontsov2009-02-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Freescale QE UDC controllers can't report the "port change" states, so the only way to handle disconnects is to process bus reset interrupts. The bus reset can take some time, that is, few irqs. Gadgets may print the disconnection events, and this causes few repetitive messages in the kernel log. This patch fixes the issue by using the usb_state machine, if the usb controller has been already reset, just quit the reset irq early. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix QE USB controller initializationAnton Vorontsov2009-02-091-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | qe_udc_reg_init() leaves the USB controller enabled before muram memory initialized. Sometimes the uninitialized muram memory confuses the controller, and it start sending the busy interrupts. Fix this by disabling the controller, it will be enabled later by the gadget driver, at bind time. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix recursive locking bug in ch9getstatus()Anton Vorontsov2009-02-091-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call chain is this: qe_udc_irq() <- grabs the udc->lock spinlock rx_irq() qe_ep0_rx() ep0_setup_handle() setup_received_handle() ch9getstatus() qe_ep_queue() <- tries to grab the udc->lock again It seems unsafe to temporarily drop the lock in the ch9getstatus(), so to fix that bug the lock-less __qe_ep_queue() function implemented and used by the ch9getstatus(). Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: fsl_qe_udc: Fix oops on QE UDC probe failureAnton Vorontsov2009-02-091-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of probing errors the driver kfrees the udc_controller, but it doesn't set the pointer to NULL. When usb_gadget_register_driver is called, it checks for udc_controller != NULL, the check passes and the driver accesses nonexistent memory. Fix this by setting udc_controller to NULL in case of errors. While at it, also implement irq_of_parse_and_map()'s failure and cleanup cases. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | rndis: remove private wrapper of __constant_cpu_to_le32Harvey Harrison2009-02-141-46/+46
|/ | | | | | | | | Use cpu_to_le32 directly as it handles constant folding now, replace direct uses of __constant_cpu_to_{endian} as well. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David Vrabel2009-02-0245-212/+4106
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream
| * USB: Driver for Freescale QUICC Engine USB Host ControllerAnton Vorontsov2009-01-2711-0/+3862
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the FHCI USB controller, as found in the Freescale MPC836x and MPC832x processors. It can support Full or Low speed modes. Quite a lot the hardware is doing by itself (SOF generation, CRC generation and checking), though scheduling and retransmission is on software's shoulders. This controller does not integrate the root hub, so this driver also fakes one-port hub. External hub is required to support more than one device. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * USB: option: add QUANTA HSDPA Data Card device idsAlex.Cheng@quantatw.com2009-01-271-0/+12
| | | | | | | | | | | | | | | | | | | | This patch adds the support for the QUANTA Q101 series HSDPA Data Card. With the vendor and product IDs are set properly, the data card can be detected and works fine. Signed-off-by: Alex Cheng <alex.cheng@quantatw.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
OpenPOWER on IntegriCloud