aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb
AgeCommit message (Collapse)AuthorFilesLines
2011-01-03Merge branch 'master' of git://git.infradead.org/users/cbou/linux-cns3xxx ↵Russell King6-0/+363
into devel-stable
2011-01-03mx51: fix usb clock supportArnaud Patard (Rtp)1-12/+32
Current code doesn't really enable the usb clocks so if they're disabled when booting linux, the kernel/machine will hang as soon as someone is trying to read a usb register Signed-off-by: Arnaud Patard <[email protected]> Signed-off-by: Sascha Hauer <[email protected]>
2011-01-03Merge branch 'sgu/mxs-core-v8' of git://git.pengutronix.de/git/ukl/linux-2.6 ↵Sascha Hauer12-38/+328
into imx-for-2.6.38-new
2010-12-28ueagle-atm: fix PHY signal initialization raceDan Williams1-3/+19
A race exists when initializing ueagle-atm devices where the generic atm device may not yet be created before the driver attempts to initialize it's PHY signal state, which checks whether the atm device has been created or not. This often causes the sysfs 'carrier' attribute to be '1' even though no signal has actually been found. uea_probe usbatm_usb_probe driver->bind (uea_bind) uea_boot kthread_run(uea_kthread) uea_kthread usbatm_atm_init uea_start_reset atm_dev_register UPDATE_ATM_SIGNAL UPDATE_ATM_SIGNAL checks whether the ATM device has been created and if not, will not update the PHY signal state. Because of the race that does not always happen in time, and the PHY signal state remains ATM_PHY_SIG_FOUND even though no signal exists. To fix the race, just create the kthread during initialization, and only after initialization is complete, start the thread that reboots the device and initializes PHY state. [ 3030.490931] uea_probe: calling usbatm_usb_probe [ 3030.490946] ueagle-atm 8-2:1.0: usbatm_usb_probe: trying driver ueagle-atm with vendor=1110, product=9031, ifnum 0 [ 3030.493691] uea_bind: setting usbatm [ 3030.496932] usb 8-2: [ueagle-atm] using iso mode [ 3030.497283] ueagle-atm 8-2:1.0: usbatm_usb_probe: using 3021 byte buffer for rx channel 0xffff880125953508 <kthread already started before usbatm_usb_probe() has returned> [ 3030.497292] usb 8-2: [ueagle-atm] (re)booting started <UPDATE_ATM_SIGNAL checks whether ATM device has been created yet before setting PHY state> [ 3030.497298] uea_start_reset: atm dev (null) <and since it hasn't been created yet PHY state is not set> [ 3030.497306] ueagle-atm 8-2:1.0: usbatm_usb_probe: using 3392 byte buffer for tx channel 0xffff8801259535b8 [ 3030.497374] usbatm_usb_probe: about to init [ 3030.497379] usbatm_usb_probe: calling usbatm_atm_init <atm device finally gets created> [ 3030.497384] usbatm_atm_init: creating atm device! Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-12-24usb: don't use flush_scheduled_work()Tejun Heo5-9/+7
flush_scheduled_work() is being deprecated. Directly flush or cancel work items instead. * u_ether, isp1301_omap, speedtch conversions are straight-forward. * ochi-hcd should only flush when quirk_nec() is true as otherwise the work wouldn't have been initialized. * In oti6858, cancel_delayed_work() + flush_scheduled_work() -> cancel_delayed_work_sync(). Signed-off-by: Tejun Heo <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Cc: David Brownell <[email protected]> Cc: Duncan Sands <[email protected]> Cc: [email protected]
2010-12-24speedtch: don't abuse struct delayed_workTejun Heo1-12/+14
speedtch directly uses the internal timer and work members of a struct delayed_work. Use a separate work item and timer instead. * Nicolas Kaiser discovered that timer init was missing. Fixed. Signed-off-by: Tejun Heo <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Tested-by: Nicolas Kaiser <[email protected]> Cc: Duncan Sands <[email protected]> Cc: [email protected]
2010-12-24PM: Replace the device power.status field with a bit fieldRafael J. Wysocki1-4/+3
The device power.status field is too complicated for its purpose (storing the information about whether or not the device is in the "active" state from the PM core's point of view), so replace it with a bit field and modify all of its users accordingly. Signed-off-by: Rafael J. Wysocki <[email protected]>
2010-12-22USB: Merge 2.6.37-rc5 into usb-nextGreg Kroah-Hartman7-22/+50
This is to resolve the conflict in the file, drivers/usb/gadget/composite.c that was due to a revert in Linus's tree needed for the 2.6.37 release. Reported-by: Stephen Rothwell <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-22Merge branch 'master' into for-nextJiri Kosina58-226/+715
Conflicts: MAINTAINERS arch/arm/mach-omap2/pm24xx.c drivers/scsi/bfa/bfa_fcpim.c Needed to update to apply fixes for which the old branch was too outdated.
2010-12-21USB: add support for Dream Cheeky DL100B Webmail Notifier (1d34:0004)Melchior FRANZ1-28/+90
So far the USBLED driver only supports Delcom's "USB Visual Signal Indicator" (http://www.delcomproducts.com/products_USBLMP.asp). The driver generates virtual files "red", "green", and "blue" under the device's /sys/ directory, where color values can be read from and written to. This patch adds support for Dream Cheeky's "DL100B Webmail Notifier" (http://www.dreamcheeky.com/webmail-notifier -- available from several shops, such as http://www.conrad.at/ce/de/product/777048/USB-WEBMAIL). This device isn't as pretty as Delcom's, but it's *far* cheaper, and its 3 LEDs can be set in 32 brightness steps each. The grey envelope contour can easily be removed, leaving a rather neutral white box (with a few small holes), which is useful for generic signalling purposes. Of course, the small circuit board can easily be put into a prettier case. The DL100B device pretends to be a HID, but the HID descriptor shows that it's not overly useful as such (see below). The patch therefore removes the "HID-ness" (hid-core.c, hid-ids.h), and adds the necessary commands to usbled.c. The protocol info comes from the developer's manual that Dream Cheeky kindly provided (815DeveloperManual.pdf). HID descriptor: 0: 05 01 Usage Page 'Generic Desktop Controls' 2: 09 10 Usage 'Reserved' 4: a1 01 Collection 'Application (mouse, keyboard)' 6: 05 00 Usage Page 'Undefined' 8: 19 10 Usage Minimum = 16 10: 29 11 Usage Maximum = 17 12: 15 00 Logical Minimum = 0 14: 25 0f Logical Maximum = 15 16: 75 08 Report Size = 8 18: 95 08 Report Count = 8 20: 91 02 Output data *var abs lin pref-state null-pos non-vol bit-field 22: 19 10 Usage Minimum = 16 24: 29 11 Usage Maximum = 17 26: 15 00 Logical Minimum = 0 28: 25 0f Logical Maximum = 15 30: 75 08 Report Size = 8 32: 95 08 Report Count = 8 34: 81 00 Input data array abs lin pref-state null-pos non-vol bit-field 36: c0 End Collection Signed-off-by: Melchior FRANZ <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-20Merge branch 'usb-linus' of ↵Linus Torvalds7-22/+50
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: Revert "USB: gadget: Allow function access to device ID data during bind()" USB: misc: uss720.c: add another vendor/product ID USB: usb-storage: unusual_devs entry for the Samsung YP-CP3 USB: gadget: Remove suspended sysfs file before freeing cdev USB: core: Add input prompt and help text for USB_OTG config USB: ftdi_sio: Add D.O.Tec PID xhci: Fix issue with port array setup and buggy hosts.
2010-12-16Revert "USB: gadget: Allow function access to device ID data during bind()"Greg Kroah-Hartman1-8/+8
This reverts commit 1ab83238740ff1e1773d5c13ecac43c60cf4aec4. Turns out this doesn't allow for the device ids to be overridden properly, so we need to revert the thing. Reported-by: Jef Driesen <[email protected]> Cc: Robert Lukassen <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: misc: uss720.c: add another vendor/product IDThomas Sailer1-1/+3
Fabio Battaglia report that he has another cable that works with this driver, so this patch adds its vendor/product ID. Signed-off-by: Thomas Sailer <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: usb-storage: unusual_devs entry for the Samsung YP-CP3Vitaly Kuznetsov1-0/+7
Add an unusual_devs entry for the Samsung YP-CP3 MP4 player. User was getting the following errors in dmesg: usb 2-6: reset high speed USB device using ehci_hcd and address 2 usb 2-6: reset high speed USB device using ehci_hcd and address 2 usb 2-6: reset high speed USB device using ehci_hcd and address 2 usb 2-6: USB disconnect, address 2 sd 3:0:0:0: [sdb] Assuming drive cache: write through sdb:<2>ldm_validate_partition_table(): Disk read failed. Dev sdb: unable to read RDB block 0 unable to read partition table Signed-off-by: Vitaly Kuznetsov <[email protected]> Acked-by: Alan Stern <[email protected]> CC: Matthew Dharm <[email protected]> CC: [email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: gadget: Remove suspended sysfs file before freeing cdevPavankumar Kondeti1-1/+1
cdev struct is accessed in suspended sysfs show function. So remove sysfs file before freeing the cdev in composite_unbind. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: core: Add input prompt and help text for USB_OTG configPavankumar Kondeti1-2/+10
bd6882 commit (usb: gadget: fix Kconfig warning) removes the duplicate USB_OTG config from gadget/Kconfig. But does not copy the input prompt and help text to the original config defined in core/Kconfig. Add them now. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: serial: ftdi_sio: add support for TIOCSERGETLSRGreg Kroah-Hartman1-0/+27
Willem-Jan noticed that the ftdi_sio driver did not support the TIOCSERGETLSR ioctl, and some userspace programs rely on it. This patch adds the support. Reported-by: Willem-Jan de Hoog <[email protected]> Tested-by: Willem-Jan de Hoog <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: ehci-mxc: Setup portsc register prior to accessing OTG viewportFabio Estevam1-12/+14
In order to read/write to the i.MX OTG viewport register it is necessary to setup the PORTSCx register first. By default i.MX OTG port is configured for USB serial PHY. In order to use a ULPI PHY the PORTSCx register needs to be configured properly. commit 724c852 (USB: ehci/mxc: compile fix) placed the PORTSC setup after the OTG viewport is accessed and this causes ULPI read/write to fail. Revert the PORTSC setup order. Tested on a MX31PDK board with a ISP1504 transceiver: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver mxc-ehci mxc-ehci.0: initializing i.MX USB Controller ULPI transceiver vendor/product ID 0x04cc/0x1504 Found NXP ISP1504 ULPI transceiver. ULPI integrity check: passed. Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: atmel_usba_udc: fix freeing irq in usba_udc_remove()Rob Emanuele1-1/+3
Add a free_irq() call on vbus gpio when we remove udc so that the vbus irq is properly released. Signed-off-by: Rob Emanuele <[email protected]> Signed-off-by: Nicolas Ferre <[email protected]> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16usb: ehci-omap: fix tll channel enable maskAnand Gadiyar1-3/+3
The TLL channel enable code searches for the wrong mask, and could end up enabling the wrong port. Fix this. Signed-off-by: Anand Gadiyar <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16usb: ohci-omap3: fix trivial typoKeshava Munegowda1-1/+1
This is the ohci-omap3 driver, not ehci-omap. Correct this obvious typo. Signed-off-by: Keshava Munegowda <[email protected]> Signed-off-by: Anand Gadiyar <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: gadget: ci13xxx: don't assume that PAGE_SIZE is 4096Artem Leonenko2-5/+6
Page size for transaction descriptors for CI13XXX has nothing common with page size from MM. Using platform and configuration specific PAGE_SIZE is wrong. Signed-off-by: Artem Leonenko <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: gadget: ci13xxx: fix complete() callback for no_interrupt rq'sArtem Leonenko1-3/+3
CI13xxx UDC driver doesn't call complete() callback for requests with flag no_interrupt set. Thus gadget drivers (like g_ether) are never notifed about successfully (or not) transmitted requests. As a result in case of g_ether and queued request with no_interrupt=1 fields g_ether is never notifed about sent packets and TX stalls. Solution: treat no_interrupt flag like all other UDC drivers do and call complete() callback for all requests. Signed-off-by: Artem Leonenko <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: gadget: update ci13xxx to work with g_etherArtem Leonenko1-8/+12
There is one nasty scenario when CI13xxx driver fails: a) two or more rx requests are queued (g_ether does that) b) rx request completed, interrupt fires and ci13xxx dequeues rq c) request complete() callback gets called and in turn it calls ep_queue() c1) in ep_queue() request gets added to the TAIL of the rx queue list d) ep gets primed with rq from (b) e) interrupt fires f) request gets popped from queue head for hw dequeue G) requets from queue head wasn't enqueued g1) isr_tr_complete_low() doesn't enqueue more requests and it doesn't prime EP, rx traffic stalls Solution: a) enque queued requests ASAP, i.e. before calling complete() callback. b) don't HW enqueue and prime endpoint with recently added request and use the oldest request in the queue. Fixed issues: a) ep_queue() may return an error code despite request was successfully added to the queue (if _hardware_enqueue() fails) b) Added requests are always processed in LIFO order, even if they are added in complete() callback c) Finally more than two and more queued requests are processed consistently, even if they were added in complete() callback The fix was successfully tested on MIPS based SoC with 4KEc CPU core and CI13612 USB core. Board successfully boots with NFS root using g_ether on ci13xxx udc. Signed-off-by: Artem Leonenko <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16USB: gadgets: ci13xxx: fix probing of compiled-in gadget driversArtem Leonenko1-1/+0
Built-in gadget drivers have NULL-ifed unbind() function. Checking whether unbind() is NULL will never let any compiled into kernel driver attach. Signed-off-by: Artem Leonenko <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16Merge branch 'usb-next' into musb-mergeGreg Kroah-Hartman87-1824/+14381
* usb-next: (132 commits) USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path USB: uas: Ensure we only bind to a UAS interface USB: uas: Rename sense pipe and sense urb to status pipe and status urb USB: uas: Use kzalloc instead of kmalloc USB: uas: Fix up the Sense IU usb: musb: core: kill unneeded #include's DA8xx: assign name to MUSB IRQ resource usb: gadget: g_ncm added usb: gadget: f_ncm.c added usb: gadget: u_ether: prepare for NCM usb: pch_udc: Fix setup transfers with data out usb: pch_udc: Fix compile error, warnings and checkpatch warnings usb: add ab8500 usb transceiver driver USB: gadget: Implement runtime PM for MSM bus glue driver USB: gadget: Implement runtime PM for ci13xxx gadget USB: gadget: Add USB controller driver for MSM SoC USB: gadget: Introduce ci13xxx_udc_driver struct USB: gadget: Initialize ci13xxx gadget device's coherent DMA mask USB: gadget: Fix "scheduling while atomic" bugs in ci13xxx_udc USB: gadget: Separate out PCI bus code from ci13xxx_udc ...
2010-12-16Revert "USB: musb: pm: don't rely fully on clock support"Greg Kroah-Hartman1-12/+14
This reverts commit 32d5dc9520f0c6f60f691dd478741c774e292406. Needed to properly merge the musb changes that are in the usb-next branch into Linus's tree. Acked-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-16Revert "USB: musb: blackfin: pm: make it work"Greg Kroah-Hartman2-50/+24
This reverts commit 1e393c6eece048052d4131ec4dad3b98e35a98e2. Needed to properly merge the musb changes that are in the usb-next branch into Linus's tree. Acked-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission pathMatthew Wilcox1-1/+1
If swap is on a UAS device, we could recurse into the driver by using GFP_KERNEL. Using GFP_NOIO ensures we won't. Reported-by: James Bottomley <[email protected]> Signed-off-by: Matthew Wilcox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15USB: uas: Ensure we only bind to a UAS interfaceMatthew Wilcox1-7/+30
While all existing UAS devices use alternate interface 1, this is not guaranteed, and it has caused confusion with people trying to bind the uas driver to non-uas devices. Signed-off-by: Matthew Wilcox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15USB: uas: Rename sense pipe and sense urb to status pipe and status urbMatthew Wilcox1-16/+16
The spec calls this the status pipe. While it is used to receive sense IUs, it is also used to receive other IUs, so this can be confusing. Reported-by: Luben Tuikov <[email protected]> Signed-off-by: Matthew Wilcox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15USB: uas: Use kzalloc instead of kmallocMatthew Wilcox1-2/+2
The IUs are not being fully initialised by the driver (due to the reserved space). Since we should be zeroing reserved fields, use kzalloc to do it for us. Reported-by: Luben Tuikov <[email protected]> Signed-off-by: Matthew Wilcox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15USB: uas: Fix up the Sense IUMatthew Wilcox1-2/+5
Add a comment to the Sense IU data structure that it's also used for Read Ready and Write Ready. Remove the 'service response' element since it's gone from the current draft (04). Signed-off-by: Matthew Wilcox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-15Merge branch 'musb-hw' of git://gitorious.org/usb/usb into musbGreg Kroah-Hartman18-585/+2166
* 'musb-hw' of git://gitorious.org/usb/usb: (43 commits) usb: musb: core: kill unneeded #include's DA8xx: assign name to MUSB IRQ resource arm: OMAP4430: musb: Configure musb to OTG mode usb: musb: Adding musb support for OMAP4430 usb: otg: TWL6030: Add twl6030_usb file for compilation mfd: TWL6030: OMAP4: Registering the TWL6030-usb device usb: musb: TWL6030: Selecting TWL6030_USB transceiver usb: otg: Kconfig: Add Kconfig option for TWL6030 transceiver. usb: otg: Adding twl6030-usb transceiver driver for OMAP4430 mfd: TWL6030: USBOTG VBUS event generation on usb: musb: add support for ux500 platform musb: am35x: fix compile error due to control apis arm: omap4: enable usb on 4430sdp usb: musb: drop board_set_vbus usb: musb: drop musb_platform_suspend/resume usb: musb: blackfin: usb dev_pm_ops structure usb: musb: am35x: usb dev_pm_ops structure usb: musb: omap2430: use dev_pm_ops structure usb: musb: omap2430: drop the nops usb: musb: mark musb_save/restore_context static ...
2010-12-15workqueue: convert cancel_rearming_delayed_work[queue]() users to ↵Tejun Heo1-1/+1
cancel_delayed_work_sync() cancel_rearming_delayed_work[queue]() has been superceded by cancel_delayed_work_sync() quite some time ago. Convert all the in-kernel users. The conversions are completely equivalent and trivial. Signed-off-by: Tejun Heo <[email protected]> Acked-by: "David S. Miller" <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Acked-by: Evgeniy Polyakov <[email protected]> Cc: Jeff Garzik <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Mauro Carvalho Chehab <[email protected]> Cc: [email protected] Cc: Anton Vorontsov <[email protected]> Cc: David Woodhouse <[email protected]> Cc: "J. Bruce Fields" <[email protected]> Cc: Neil Brown <[email protected]> Cc: Alex Elder <[email protected]> Cc: [email protected] Cc: Christoph Lameter <[email protected]> Cc: Pekka Enberg <[email protected]> Cc: Andrew Morton <[email protected]> Cc: [email protected] Cc: Trond Myklebust <[email protected]> Cc: [email protected]
2010-12-14Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds1-12/+3
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (75 commits) pppoe.c: Fix kernel panic caused by __pppoe_xmit WAN: Fix a TX IRQ causing BUG() in PC300 and PCI200SYN drivers. bnx2x: Advance a version number to 1.60.01-0 bnx2x: Fixed a compilation warning bnx2x: LSO code was broken on BE platforms qlge: Fix deadlock when cancelling worker. net: fix skb_defer_rx_timestamp() cxgb4vf: Ingress Queue Entry Size needs to be 64 bytes phy: add the IC+ IP1001 driver atm: correct sysfs 'device' link creation and parent relationships MAINTAINERS: remove me from tulip SCTP: Fix SCTP_SET_PEER_PRIMARY_ADDR to accpet v4mapped address enic: Bug Fix: Pass napi reference to the isr that services receive queue ipv6: fix nl group when advertising a new link connector: add module alias net: Document the kernel_recvmsg() function r8169: Fix runtime power management hso: IP checksuming doesn't work on GE0301 option cards xfrm: Fix xfrm_state_migrate leak net: Convert netpoll blocking api in bonding driver to be a counter ...
2010-12-11usb: musb: core: kill unneeded #include'sSergei Shtylyov1-11/+0
musb_core.c #include's a bunch of ARM and DaVinci specific headers, goodness knows why -- it happily compiles without them... Signed-off-by: Sergei Shtylyov <[email protected]> Signed-off-by: Felipe Balbi <[email protected]>
2010-12-10atm: correct sysfs 'device' link creation and parent relationshipsDan Williams1-12/+3
The ATM subsystem was incorrectly creating the 'device' link for ATM nodes in sysfs. This led to incorrect device/parent relationships exposed by sysfs and udev. Instead of rolling the 'device' link by hand in the generic ATM code, pass each ATM driver's bus device down to the sysfs code and let sysfs do this stuff correctly. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-12-10usb: gadget: g_ncm addedYauheni Kaliuta3-0/+263
This patches makes possible to use composite framework and f_ncm NCM function driver to build a standalone NCM gadget device. Signed-off-by: Yauheni Kaliuta <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10usb: gadget: f_ncm.c addedYauheni Kaliuta2-0/+1408
Initial submittion of NCM link function driver. The driver's logic is based on f_ecm driver and does not use most of the NCM advantages like frame grouping and alignment. Signed-off-by: Yauheni Kaliuta <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10usb: gadget: u_ether: prepare for NCMYauheni Kaliuta2-2/+16
NCM is a Network Control Model, subclass of USB CDC class, specification is available at http://www.usb.org/developers/devclass_docs This patch makes possible for u_ether to use multiply of wMaxPacketSize predefined size transfers without ZLP (Zero Length Packet), required by NCM spec. Signed-off-by: Yauheni Kaliuta <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10usb: pch_udc: Fix setup transfers with data outRichard Röjfors1-1/+4
This patch fixes an issue where the driver does not handle out data in setup transactions. The per endpoint cached status register is cleared in the pch_udc_svc_control_out function. When there is out data available the function pch_udc_svc_data_out is called which tries to pick it up the status, which now is cleared to 0. When the status is 0, the function doesn't start reading the data from the FIFO. There is a second bug in all this, pch_udc_svc_data_out takes the endpoint number (0 for EP0), while pch_udc_svc_control_out passes the endpoint index (1 for EP0). Effectively pch_udc_svc_data_out picks up the wrong internal ep structure. This patch makes sure to put back the cached status and pass the endpoint number rather than index when calling pch_udc_svc_data_out. Signed-off-by: Richard Röjfors <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10usb: pch_udc: Fix compile error, warnings and checkpatch warningsRichard Röjfors1-8/+11
Building pch_udc in linux-next fails, this patch fixes the a compile error: drivers/usb/gadget/pch_udc.c: In function ‘usb_gadget_register_driver’: drivers/usb/gadget/pch_udc.c:2645: error: ‘struct usb_gadget_driver’ has no member named ‘bind’ drivers/usb/gadget/pch_udc.c:2664: error: ‘struct usb_gadget_driver’ has no member named ‘bind’ And a couple of compiler warnings and checkpatch warnings. Signed-off-by: Richard Röjfors <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10usb: add ab8500 usb transceiver driverMian Yousaf Kaukab3-0/+595
Basic driver for ab8500 usb otg transceiver TODO: -Regulators support -Host and OTG testing -Interface with PRCMU -Charging support Signed-off-by: Mian Yousaf Kaukab <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Implement runtime PM for MSM bus glue driverPavankumar Kondeti1-0/+4
OTG driver takes care of putting hardware in low power mode. Hence not registered for any runtime PM callbacks. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Implement runtime PM for ci13xxx gadgetPavankumar Kondeti1-0/+10
The actual suspend/resume work is delegated to bus glue driver, which is responsible for putting hardware in low power mode. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Add USB controller driver for MSM SoCPavankumar Kondeti4-0/+160
MSM SoC has chipidea USB controller. So use ci13xxx_udc core. This driver depends on transceiver driver for clock control, PHY initialization, VBUS detection. Register for notify_event callback to perform MSM specific quirks after controller is reset and stopped. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Introduce ci13xxx_udc_driver structPavankumar Kondeti3-55/+175
Introduces ci13xxx_udc_driver struct for bus glue drivers to hint ci13xxx_udc core about their special requirements. The flags include avoiding hardware register access when controller is not in peripheral mode, enabling pull-up upon VBUS, disabling streaming mode and dependency on transceiver driver. Initialize gadget_ops in udc_probe so that transceiver can notify VBUS presence even when no gadget driver is bounded. A notify_event callback is embedded in the same struct. This patch implements two events called CONTROLLER_RESET_EVENT and CONTROLLER_STOPPED_EVENT to notify the bus glue driver after resetting and stopping the controller for performing SoC specific quirks. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Initialize ci13xxx gadget device's coherent DMA maskPavankumar Kondeti1-0/+1
dma_alloc_coherent() which is internally called by dma_pool_alloc() flags a warning if device's coherent DMA mask. Hence initialize gadget device's coherent DMA mask to it's parent mask. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2010-12-10USB: gadget: Fix "scheduling while atomic" bugs in ci13xxx_udcPavankumar Kondeti1-6/+3
dma_pool_alloc() require sleeping context when called with GFP_KERNEL argument. Hence release the spin lock before calling dma_pool_alloc(). usb_ep_alloc_request can also be called with non-atomic GFP flags. Hence get rid off spin lock while allocation request memory. Use GFP_ATOMIC flag for allocating request for ep0 in interrupt handler. Signed-off-by: Pavankumar Kondeti <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>