summaryrefslogtreecommitdiff
path: root/drivers/usb
AgeCommit message (Collapse)AuthorFilesLines
2010-12-11USB: Add MSM OTG Controller driverPavankumar Kondeti3-0/+861
This driver implements PHY initialization, clock management, ULPI IO ops and simple OTG state machine to kick host/peripheral based on Id/VBUS line status. VBUS/Id lines are tied to a reference voltage on some boards. Hence provide debugfs interface to select host/peripheral mode. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11USB: EHCI: ASPM quirk of ISOC on AMD SB800Alex He4-0/+120
When ASPM PM Feature is enabled on UMI link, devices that use ISOC stream of data transfer may be exposed to longer latency causing less than optimal per- formance of the device. The longer latencies are normal and are due to link wake time coming out of low power state which happens frequently to save power when the link is not active. The following code will make exception for certain features of ASPM to be by passed and keep the logic normal state only when the ISOC device is connected and active. This change will allow the device to run at optimal performance yet minimize the impact on overall power savings. Signed-off-by: Alex He <alex.he@amd.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11USB: serial: usb_wwan: Add missing uaccess.h / fix build failurePeter Huewe1-0/+1
This patch fixes a build failure[1] by adding the missing uaccess.h needed for copy_from_user and copy_to_user References: http://kisskb.ellerman.id.au/kisskb/buildresult/3607218/ Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11usb: gadget: f_fs: Remove redundant unlikely()Tobias Klauser1-2/+2
IS_ERR() already implies unlikely(), so it can be omitted here. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11USB: host: uhci-q: Fixed minor coding style issuesTobias Ollmann1-5/+7
Fixed coding style issues (delete trailing whitespaces, break long line) Signed-off-by: Tobias Ollmann <tobias.ollmann@gmx.at> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11usb: gadget/imx-udc: fix interrupt name againUwe Kleine-König1-2/+6
Commit 06c3859 (usb: gadget/imx-udc: remove usage of deprecated symbol USBD_INT0) was a bit precipitant because the name used instead didn't match the usual naming scheme for irqs on arm/imx. I renamed the irq to the right name in e083000 (ARM: imx: dynamically allocate imx_udc device) when 06c3859 didn't hit Linus' tree, so I missed to add a compat #define. This patch allows compiling imx_udc.c with and without e083000. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11USB: whci-hcd: fix compiler warningNamhyung Kim1-1/+1
Annotate whci_hcd_id_table as '__used' to fix following warning: CC drivers/usb/host/whci/hcd.o drivers/usb/host/whci/hcd.c:359: warning: ‘whci_hcd_id_table’ defined but not used Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-11USB: ftdi_sio: Add D.O.Tec PIDFlorian Faber2-0/+6
Add FTDI PID to identify D.O.Tec devices correctly. Signed-off-by: Florian Faber <faberman@linuxproaudio.org> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-10usb: musb: Adding musb support for OMAP4430Hema HK2-11/+99
OMAP4430 supports UTMI and ULPI types of transceiver interface. In UTMI mode: The PHY is embedded within OMAP4430. The transceiver functionality is split between the twl6030 PMIC chip and OMAP4430. The VBUS, ID pin sensing and OTG SRP generation part is integrated in TWL6030 and UTMI PHY functionality is embedded within the OMAP4430. There is no direct interactions between the MUSB controller and TWL6030 chip to communicate the session-valid, session-end and ID-GND events. It has to be done through a software by setting/resetting bits in one of the control module register of OMAP4430 which in turn toggles the appropriate signals to MUSB controller. musb driver is register for blocking notifications from the transceiver driver to get the event notifications for connect/disconnect and ID-GND. Based on these events call the transceiver init/shutdown function to configure the transceiver to toggle the VBUS valid, session end and ID_GND signals to musb and power on/off the internal PHY. For ID_GND event notifications, toggle the ID_GND signal and then wait for musb to be configured as "A" device, and then call the transceiver function to set the VBUS. In OTG mode and musb as a host, When the Micro A connector used, VBUS is turned on and session bit set. When the device is connected, enumeration goes through. When the device disconnected from the other end of the connector(ID is still grounded), link will detect the disconnect and end the session. When the device is connected back, there are no events generated in the TWL6030-usb, and link is already down. So the device is not detected. Removed the session bit disable code which will recognize the connect of the device. Limitation: In OTG host mode, if device is connected during boot, it does not get detected. If disconnect and connect it back or connect after boot only it works. Fix for this, I will submit seperate patch later. Signed-off-by: Hema HK <hemahk@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: otg: TWL6030: Add twl6030_usb file for compilationHema HK1-0/+1
Add the twl6030_usb transceiver file for compilation. Signed-off-by: Hema HK <hemahk@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: TWL6030: Selecting TWL6030_USB transceiverHema HK1-0/+1
Selecting the twl6030-usb for OMAP4430SDP and OMAP4PANDA boards and adding OMAP4 internal phy code for compilation Signed-off-by: Hema HK <hemahk@ti.com> Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: otg: Kconfig: Add Kconfig option for TWL6030 transceiver.Hema HK1-0/+12
Added the TWL6030-usb transceiver option in the Kconfig Signed-off-by: Hema HK <hemahk@ti.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: otg: Adding twl6030-usb transceiver driver for OMAP4430Hema HK1-0/+493
Adding the twl6030-usb transceiver support for OMAP4 musb driver. OMAP4 supports 2 types of transceiver interface. 1. UTMI: The PHY is embedded within OMAP4. The transceiver functionality is split between the twl6030 PMIC chip and OMAP4430. The VBUS, ID pin sensing and OTG SRP generation part is integrated in TWL6030 and UTMI PHY functionality is embedded within the OMAP4430. There is no direct interactions between the MUSB controller and TWL6030 chip to communicate the session-valid, session-end and ID-GND events. It has to be done through a software by setting/resetting bits in one of the control module register of OMAP4430 which in turn toggles the appropriate signals to MUSB controller. The internal transceiver has functional clocks and powerdown bits to powerdown the PHY for power saving. Since there is no option available for having 2 transceiver drivers for one USB controller, internal PHY specific APIs are passed through plaform_data function pointers to use in the twl6030-usb transceiver driver. 2. ULPI interface is provided for off-chip transceivers. Signed-off-by: Hema HK <hemahk@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: add support for ux500 platformMian Yousaf Kaukab4-1/+225
Initial support for u8500 and u5500 platform. Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Acked-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10musb: am35x: fix compile error due to control apisAjay Kumar Gupta1-85/+45
commit 4814ced5116e3b73dc4f63eec84999739fc8ed11 (OMAP: control: move plat-omap/control.h to mach-omap2/control.h) moved <plat/control.h> to another location, preventing drivers from accessing it, so we need to pass function pointers from arch code to be able to talk to internal PHY on AM35x. Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: drop board_set_vbusFelipe Balbi7-15/+0
that's not used anymore. So let's drop it. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: drop musb_platform_suspend/resumeFelipe Balbi2-25/+0
all glue layers are now fully moved to the new setup. We are now using dev_pm_ops to implement suspend/resume functionality and thus, musb_platform_suspend/resume has become deprecated and useless. This patch drops those function pointers and its uses. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: blackfin: usb dev_pm_ops structureFelipe Balbi1-24/+40
instead of using musb_platform_suspend_resume, we can use dev_pm_ops and let platform_device core handle when to call musb_core's suspend and glue layer's suspend. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: am35x: usb dev_pm_ops structureFelipe Balbi1-17/+45
instead of using musb_platform_suspend_resume, we can use dev_pm_ops and let platform_device core handle when to call musb_core's suspend and glue layer's suspend. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: omap2430: use dev_pm_ops structureFelipe Balbi1-59/+87
instead of using musb_platform_suspend/resume, we can use dev_pm_ops and let the platform_device core handle when to call musb_core's suspend and glue layer's suspend. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: omap2430: drop the nopsFelipe Balbi1-11/+0
we don't need those nops, so drop them. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: mark musb_save/restore_context staticFelipe Balbi1-2/+2
those aren't used outside musb_core.c, so mark them as static. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: drop musb_platform_save/restore_contextFelipe Balbi5-38/+30
... that can be easily folded into the musb_platform_suspend/resume calls. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: drop the set_clock magicFelipe Balbi1-2/+0
now that platform glue layer handles clock completely, that function is completely useless for us. Drop it. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: move clock handling to glue layerFelipe Balbi7-125/+140
musb core doesn't need to know about platform specific details. So start moving clock handling to platform glue layer and make musb core agnostic about that. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: pass platform_ops via platform_dataFelipe Balbi8-9/+19
... then we don't need to export any symbols from glue layer to musb_core. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: blackfin: give it a context structureFelipe Balbi1-9/+28
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: da8xx: give it a context structureFelipe Balbi1-9/+28
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: davinci: give it a context structureFelipe Balbi1-9/+28
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: tusb6010: give it a context structureFelipe Balbi1-8/+27
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: am35x: give it a context structureFelipe Balbi1-9/+28
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: omap2430: give it a context structureFelipe Balbi1-9/+28
that structure currently only holds a device pointer to our own platform_device and musb's platform_device, but soon it will hold pointers to our clock structures and glue-specific bits and pieces. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split blackfin to its own platform_driverFelipe Balbi2-3/+85
Just adding its own platform_driver, not really using it yet. Later patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split da8xx to its own platform_driverFelipe Balbi2-1/+85
Just adding its own platform_driver, not really using it yet. When all HW glue layers are converted, more patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split davinci to its own platform_driverFelipe Balbi2-1/+85
Just adding its own platform_driver, not really using it yet. When all HW glue layers are converted, more patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split tusb6010 to its own platform_driverFelipe Balbi2-1/+84
Just adding its own platform_driver, not really using it yet. When all HW glue layers are converted, more patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split am35x to its own platform_driverFelipe Balbi2-1/+85
Just adding its own platform_driver, not really using it yet. When all HW glue layers are converted, more patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: split omap2430 to its own platform_driverFelipe Balbi2-1/+86
Just adding its own platform_driver, not really using it yet. When all HW glue layers are converted, more patches will come to split power management code from musb_core and move it completely to HW glue layer. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: trivial search and replace patchFelipe Balbi3-3/+3
change all ocurrences of musb_hdrc to musb-hdrc. We will call glue layer drivers musb-<glue layer>, so in order to keep things somewhat standard, let's change the underscore into a dash. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: add Kconfig options for each glue layerFelipe Balbi6-70/+46
This will make things simpler when choosing which glue layer to compile. It avoids a lot of magic around the "default" Kconfig option and lets the user choose what exactly s/he wants to compile. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-10usb: musb: hold context on musb structureFelipe Balbi2-84/+83
when we start splitting HW glue layer, it's gonna make it easier to re-use that structure. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-09xhci: Fix issue with port array setup and buggy hosts.Sarah Sharp1-10/+15
Fix two bugs with the port array setup. The first bug will only show up with broken xHCI hosts with Extended Capabilities registers that have duplicate port speed entries for the same port. The idea with the original code was to set the port_array entry to -1 if the duplicate port speed entry said the port was a different speed than the original port speed entry. That would mean that later, the port would not be exposed to the USB core. Unfortunately, I forgot a continue statement, and the port_array entry would just be overwritten in the next line. The second bug would happen if there are conflicting port speed registers (so that some entry in port_array is -1), or one of the hardware port registers was not described in the port speed registers (so that some entry in port_array is 0). The code that sets up the usb2_ports array would accidentally claim those ports. That wouldn't really cause any user-visible issues, but it is a bug. This patch should go into the stable trees that have the port array and USB 3.0 port disabling prevention patches. Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Cc: stable@kernel.org
2010-12-07Staging: Merge 2.6.37-rc5 into staging-nextGreg Kroah-Hartman39-101/+489
This was done to handle a number of conflicts in the batman-adv and winbond drivers properly. It also now allows us to fix up the sysfs attributes properly that were not in the .37 release due to them being only in this tree at the time. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-07usb: musb: make all glue layer export struct musb_platform_opsFelipe Balbi9-177/+335
preparing to a big refactor on musb code. We need to be able to compile in all glue layers (or at least all ARM-based ones) together and have a working binary. While preparing for that, we move every glue layer to export only one symbol, which is a struct musb_platform_ops, and make all other functions static. Later patches will come to allow for compiling all glue layers together and have a working binary. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-07usb: musb: introduce struct musb_platform_opsFelipe Balbi1-0/+28
This will be passed to musb_core by platform glue layer in order to make it easier to compile support for several HW glue layers. Later patches will come using this structure and also moving HW glue layers to its own platform driver; the idea is to be able to handle platform peculiarities in a manner which doesn't affect one another. Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-12-06Merge commit 'v2.6.37-rc4' into imx-for-2.6.38Sascha Hauer19-48/+151
Done to resolve merge conflict: Conflicts: arch/arm/mach-mx25/devices-imx25.h Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-03Merge branch 'sh/ehci' of ↵Greg Kroah-Hartman4-6/+249
master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 into work * 'sh/ehci' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Convert to USB_ARCH_HAS_OHCI/EHCI selects. usb: ehci-sh: Add missing ehci helpers. usb: ehci-sh: Fix up fault in shutdown path. sh: Add EHCI support for SH7786. usb: ehci-hcd: Add support for SuperH EHCI. usb: ohci-sh: Set IRQ as shared.
2010-12-03Merge branch 'for-next' of git://gitorious.org/usb/usb into usb-nextGreg Kroah-Hartman9-15/+20
* 'for-next' of git://gitorious.org/usb/usb: usb: musb: gadget: prevent a NULL pointer dereference usb: musb: add names for IRQs in structure resource usb: musb: remove board_data parameter from musb_platform_init()
2010-12-03usb: g_audio: Fix crash at driver removalRichard Röjfors1-5/+5
If g_audio fails to open the sound control device, it crashes at removal: Insertion: [ 4143.836536] g_audio gadget: unable to open sound control device file: /dev/snd/controlC0 [ 4143.836543] g_audio gadget: we need at least one control device [ 4143.836551] g_audio gadget: Linux USB Audio Gadget, version: Dec 18, 2008 [ 4143.836558] g_audio gadget: g_audio ready Removal: [ 4146.802643] BUG: unable to handle kernel paging request at 00023018 [ 4146.802655] IP: [<c10af9f5>] filp_close+0xa/0x5b [ 4146.802674] *pdpt = 0000000015426001 *pde = 0000000000000000 [ 4146.802684] Oops: 0000 [#1] PREEMPT SMP [ 4146.802692] last sysfs file: /sys/power/state [ 4146.802701] Modules linked in: g_audio(-) ioh_udc fuse asix usbnet [last unloaded: g_audio] [ 4146.802719] [ 4146.802728] Pid: 1394, comm: rmmod Not tainted 2.6.33.5-26.1-ivi #1 To be filled by O.E.M./To be filled by O.E.M. [ 4146.802738] EIP: 0060:[<c10af9f5>] EFLAGS: 00010206 CPU: 0 [ 4146.802746] EIP is at filp_close+0xa/0x5b [ 4146.802753] EAX: 00023000 EBX: 00023000 ECX: 00000046 EDX: df842680 [ 4146.802760] ESI: e071cd4c EDI: df842680 EBP: ddbbbef0 ESP: ddbbbee4 [ 4146.802768] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 4146.802776] Process rmmod (pid: 1394, ti=ddbba000 task=dd95a4f0 task.ti=ddbba000) [ 4146.802782] Stack: [ 4146.802787] d540c280 e071cd4c df2bc000 ddbbbefc e071b82c df11e440 ddbbbf04 e071c622 [ 4146.802804] <0> ddbbbf28 e071c47f 00000008 e071cd74 df11e464 df2bc01c df2bc000 e071ce68 [ 4146.802822] <0> 00000880 ddbbbf38 e07fd1b8 e071cef0 00000000 ddbbbf40 e071b9f4 ddbbbf48 [ 4146.802842] Call Trace: [ 4146.802857] [<e071b82c>] ? gaudio_cleanup+0x87/0xe0 [g_audio] [ 4146.802869] [<e071c622>] ? audio_unbind+0x8/0xc [g_audio] [ 4146.802881] [<e071c47f>] ? composite_unbind+0x8d/0xcb [g_audio] [ 4146.802895] [<e07fd1b8>] ? usb_gadget_unregister_driver+0x7b/0xc0 [ioh_udc] [ 4146.802908] [<e071b9f4>] ? usb_composite_unregister+0x15/0x17 [g_audio] [ 4146.802920] [<e071c633>] ? cleanup+0xd/0xf [g_audio] [ 4146.802932] [<c105a938>] ? sys_delete_module+0x185/0x1dd [ 4146.802944] [<c101c3ea>] ? do_page_fault+0x248/0x276 [ 4146.802956] [<c10027d0>] ? sysenter_do_call+0x12/0x26 [ 4146.802962] Code: 12 5f 3a 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 44 73 03 89 73 44 89 f8 e8 f1 61 3a 00 5b 5e 5f 5d c3 55 89 e5 57 89 d7 56 53 89 c3 <8b> 40 18 85 c0 75 0f 68 32 15 5e c1 31 f6 e8 52 39 3a 00 5a eb [ 4146.803058] EIP: [<c10af9f5>] filp_close+0xa/0x5b SS:ESP 0068:ddbbbee4 [ 4146.803071] CR2: 0000000000023018 [ 4146.803112] ---[ end trace 0989a7e023da0434 ]--- This patch makes sure not to assign the_card if gaudio_open_snd_dev fails, since the parent function will deallocate the card. Also make sure all filp's in gaudio_open_snd_dev is assigned NULL upon error and gaudio_close_snd_dev only cleanups when the filp's are non-NULL. Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-03plat-mxc/ehci.c: fix compile breakageEric Bénard1-2/+2
commits 2eb42d5c287f5e883a4b3ebe668ba880caa351e5 and 9e1dde33876ba83ad586c336647fff133d0f5472 renamed some defines but didn't fix all the places where these defines are used leading to a compile failure for USB on i.MX31, 35 and 27. Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>