- Feb 21, 2011
-
-
Sergei Shtylyov authored
In the gadget code, there are several DBG() macro invocations that explicitly print the calling function's name while DBG() macro itself does this anyway; most of these were added by commit f11d893d (usb: musb: support ISO high bandwidth for gadget mode). Remove the duplicated printing, somewhat clarifying the messages at the same time... Signed-off-by:
Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
- Feb 18, 2011
-
-
Hema HK authored
OMAP4430 is embedded with UTMI PHY. This PHY does not support the OTG features like ID pin detection and VBUS detection. This function is exported to an external companion chip TWL6030. Software must retrieve the OTG HNP and SRP status from the TWL6030 and configure the bits inside the control module that drive the related USBOTGHS UTMI interface signals. It must also read back the UTMI signals needed to configure the TWL6030 OTG module. Can find more details in the TRM[1]. [1]:http://focus.ti.com/pdfs/wtbu/OMAP4430_ES2.0_Public_TRM_vJ.pdf In OMAP4430 musb driver VBUS and ID notifications are received from the transceiver driver. If the cable/device is connected during boot, notifications from transceiver driver will be missed till musb driver is loaded. Patch to configure the transceiver in the platform_enable/disable functions and enable the vbus in the gadget driver based on the last_event of the otg_transceiver. Signed-off-by:
Hema HK <hemahk@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Paul Walmsley <paul@pwsan.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
- Feb 17, 2011
-
-
Hema HK authored
Calling runtime pm APIs pm_runtime_put_sync() and pm_runtime_get_sync() for enabling/disabling the clocks, sysconfig settings. Enable clock, configure no-idle/standby when active and configure force idle/standby and disable clock when idled. This is taken care by the runtime framework when driver calls the pm_runtime_get_sync and pm_runtime_put_sync APIs. Need to configure MUSB into force standby and force idle mode when usb not used Signed-off-by:
Hema HK <hemahk@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Cousson, Benoit <b-cousson@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
struct usb_request's list_head is supposed to be used only by gadget drivers, but musb is abusing that. Give struct musb_request its own list_head and prevent musb from poking into other driver's business. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
Just a few cosmetic fixes to usb_gadget_probe_driver() and usb_gadget_unregister_driver(). Decreased a few indentation levels with goto statements. While at that, also add the missing call to musb_stop(). If we don't have OTG, there's no point of leaving MUSB prepared for operation if a gadget driver fails to probe. The same is valid for usb_gadget_unregister_driver(), since we are removing the gadget driver and we don't have OTG, we can completely unconfigure MUSB. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
During development, even though board is wired to e.g. OTG, we might want to compile host-only or peripheral-only configurations. Let's allow that to happen. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
- Feb 04, 2011
-
-
Robert Morell authored
The convention is to prefix symbols exported from the USB HCD core with "usb_hcd". This change makes unmap_urb_setup_for_dma() and unmap_urb_for_dma() consistent with that. Signed-off-by:
Robert Morell <rmorell@nvidia.com> Acked-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- Feb 01, 2011
-
-
Mian Yousaf Kaukab authored
Gadget MUSB driver handles dma mappings in musb_gadget_queue(). Where as it is possible for dma code to reject the usb request later at ->channel_program() called from txstate()/rxstate() For example ->channel_program in tusb6010_omap.c: static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz, u8 rndis_mode, dma_addr_t dma_addr, u32 len) { ... if (unlikely(dma_addr & 0x1) || (len < 32) || (len > packet_sz)) return false; ... if (dma_addr & 0x2) return false; ... } In this case, usb request will be handled in PIO mode which renders dma mapping operations unnecessary. This patch adds an api to allow dma code to indicate incompatibility with usb request. Gadget musb driver call this api, if available, before dma mappings to avoid any unnecessary mapping operations. Signed-off-by:
Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Mian Yousaf Kaukab authored
If dma buffers are mapped by a higher layer, with a boolean musb_request.mapped it is still possible to call dma_sync_single_for_device() from musb_g_giveback(), even if txstate()/rxstate() has called unmap_dma_buffer() before falling back to pio mode. Moreover, check for musb_ep->dma is moved within map_dma_buffer() so where applicable checks for it are removed. And where possible, checks for is_dma_capable() are merged with buffer map state check. Signed-off-by:
Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
We know that blackfin doesn't support double buffering feature as of today. So we add a flag set by musb_platform_init() to forcefully disable that feature. Such flag is created and marked as deprecated to force us to find a solution for the missing double buffering support on blackfin. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Bob Liu authored
Blackfin platform doesn't support 32bits musbdma registers, so change back to use musb_read/writew instead of musb_read/writel and simply some format casts. Signed-off-by:
Bob Liu <lliubbo@gmail.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Sergei Shtylyov authored
musb_probe() only regards 0 as a wrong IRQ number, despite platform_get_irq() that it calls returns -ENXIO in that case. It leads to musb_init_controller() calling request_irq() with a negative IRQ number, and when it naturally fails, the following is printed to the console: request_irq -6 failed! musb_init_controller failed with status -19 Fix musb_probe() to filter out the error values as well as 0. Signed-off-by:
Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Ming Lei authored
This patch fixes kernel panic during s2ram, which is caused by the below: - musb is not put into drv data of musb platform device if CONFIG_USB_MUSB_HDRC_HCD is defined - glue layer driver always get musb instance via platform_get_drvdata. The patch fixes the issue by always puting musb into drv data of musb platform device, which is doable even the platform device is a host controller device. Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Sergei Shtylyov <sshtylyov@mvista.com> Signed-off-by:
Ming Lei <tom.leiming@gmail.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
- Jan 10, 2011
-
-
Alexey Dobriyan authored
Remove kobject.h from files which don't need it, notably, sched.h and fs.h. Signed-off-by:
Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Dec 16, 2010
-
-
Greg Kroah-Hartman authored
This reverts commit 32d5dc95. Needed to properly merge the musb changes that are in the usb-next branch into Linus's tree. Acked-by:
Felipe Balbi <balbi@ti.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Greg Kroah-Hartman authored
This reverts commit 1e393c6e. Needed to properly merge the musb changes that are in the usb-next branch into Linus's tree. Acked-by:
Felipe Balbi <balbi@ti.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- Dec 11, 2010
-
-
Sergei Shtylyov authored
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 <sshtylyov@ru.mvista.com> Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
- Dec 10, 2010
-
-
Hema HK authored
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>
-
Hema HK authored
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>
-
Mian Yousaf Kaukab authored
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>
-
Ajay Kumar Gupta authored
commit 4814ced5 (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>
-
Felipe Balbi authored
that's not used anymore. So let's drop it. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
we don't need those nops, so drop them. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
those aren't used outside musb_core.c, so mark them as static. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
... that can be easily folded into the musb_platform_suspend/resume calls. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
... then we don't need to export any symbols from glue layer to musb_core. Signed-off-by:
Felipe Balbi <balbi@ti.com>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-
Felipe Balbi authored
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>
-