sitara-epos/sitara-epos-kernel.git
9 years agoarm:omap:am33xx: McASP hookup for AM335x EVM
Hebbar, Gururaja [Mon, 26 Sep 2011 11:33:23 +0000 (17:03 +0530)]
arm:omap:am33xx: McASP hookup for AM335x EVM

This patch adds the machine driver for AM335x EVM in conformance with the new
ASoC framework.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am33xx: Register McASP Platform on AM335x EVM
Hebbar, Gururaja [Tue, 4 Oct 2011 15:35:46 +0000 (21:05 +0530)]
arm:omap:am33xx: Register McASP Platform on AM335x EVM

This patch adds the hardware info like base addresses, EDMA events,
interrupt nos. and other module specific data for the McASP IP.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoARM:omap:am33xx: ASoC: Add support for am33xx in ASoC
Hebbar, Gururaja [Mon, 26 Sep 2011 11:00:21 +0000 (16:30 +0530)]
ARM:omap:am33xx: ASoC: Add support for am33xx in ASoC

AM33xx uses same McASP IP as the Davinci Platform. This patch adds
config option to enable the McASP driver for AM335x (Kconfig & Makefile)

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoASoC: davinci-mcasp: Flush the FIFO before enabling
Vaibhav Bedia [Mon, 17 Oct 2011 09:12:11 +0000 (14:42 +0530)]
ASoC: davinci-mcasp: Flush the FIFO before enabling

FIFO should be flushed before it is enabled for the first time
This fixes the I/O errors reported by the ASoC core on a fresh boot

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoARM:davinci:mcasp: Support new McASP IP Variant
Hebbar, Gururaja [Fri, 23 Sep 2011 12:17:35 +0000 (17:47 +0530)]
ARM:davinci:mcasp: Support new McASP IP Variant

Few OMAP platform has a new Variant of McASP than those found on Davinci
Platform.

This patch adds support for the same.

Changes
- Add new MCASP_VERSION_3 to identify new IP
- The FIFO offsets for the McASP in new platform are different from the
  ones seen on previous varianats. Use version member to identify and
  process accordingly

This has been tested on DM365 platform to make sure nothing existing
breaks

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoARM:davinci:mcasp: remove unused header file
Hebbar, Gururaja [Mon, 26 Sep 2011 12:46:19 +0000 (18:16 +0530)]
ARM:davinci:mcasp: remove unused header file

parameters from <mach/mux.h> isnt used anywhere. Hence removed

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:davinci:mcasp: Move McASP related defines to common place
Vaibhav Hiremath [Sat, 26 Nov 2011 19:43:37 +0000 (01:13 +0530)]
arm:davinci:mcasp: Move McASP related defines to common place

Davinci McASP IP & its Driver is shared by few OMAP platforms. Moving the
McASP ddefines to a common place, helps to share the same header file
across platforms

This patch moves asp.h from
arch/arm/mach-davinci/include/mach/asp.h -> arch/arm/include/asm/hardware/asp.h

Header define check is also updated to reflect hardware name rather than
platform

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am33xx: Make Dummy Regulator default selected
Hebbar, Gururaja [Mon, 26 Sep 2011 09:54:07 +0000 (15:24 +0530)]
arm:omap:am33xx: Make Dummy Regulator default selected

Since Regulators are not (yet) enabled/configured on AM335x, Enable Dummy
Regulator support as default in defconfig

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoConsolidate SRAM support
Jean-Christophe PLAGNIOL-VILLARD [Sun, 10 Jul 2011 12:19:39 +0000 (14:19 +0200)]
Consolidate SRAM support

We have two SoCs using SRAM, both with their own allocation systems,
and both with their own ways of copying functions into the SRAM.

Let's unify this before we have additional SoCs re-implementing this
obviously common functionality themselves.

For this use the generic allocator and the newly introduce
gen_pool_add_virt and gen_pool_virt_to_phys

Uio_pruss should probably take the SRAM pool pointer via
platform data so that it doesn't have to include Davinci specific
includes.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Cc: Kevin Hilman <khilman@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Sascha Hauer <kernel@pengutronix.de>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoAM335X: Avoid i2c pin mux setup.
Patil, Rachna [Wed, 28 Sep 2011 11:01:50 +0000 (16:31 +0530)]
AM335X: Avoid i2c pin mux setup.

Since i2c1 is available only in some profiles, we bypass i2c pin
muxing in i2c.c file. Pin muxing is taken care of, in the board file
instead.

Signed-off-by: Patil, Rachna <rachna@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am33xx: ADD support for i2c-1 instance
Hebbar, Gururaja [Mon, 26 Sep 2011 09:44:07 +0000 (15:14 +0530)]
arm:omap:am33xx: ADD support for i2c-1 instance

i2c-1 bus is available on few EVM variants of AM335X. Provide support
for the same (Pin-mux, board-info, device registration)

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarch:arm:nand - Changing SPL and U-boot partition permission
Philip, Avinash [Fri, 18 Nov 2011 09:18:39 +0000 (14:48 +0530)]
arch:arm:nand - Changing SPL and U-boot partition permission

SPL and U-boot partition provided with write permission in order to
update SPL and U-boot from kernel.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarch:arm:nand - 14 byte ECC support for BCH8
Philip, Avinash [Thu, 17 Nov 2011 14:43:56 +0000 (20:13 +0530)]
arch:arm:nand - 14 byte ECC support for BCH8

14 bytes of ECC is provided for every 512 byte even though 13 byte is the
actual requirement. This is to synchronize the ECC layout with U-boot.
Extra byte is cleared to 0.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - Enable BCH8 support
Philip, Avinash [Wed, 2 Nov 2011 09:22:50 +0000 (14:52 +0530)]
arm:omap:nand - Enable BCH8 support

1. BCH8 ECC support is enabled.
2. Support for BCH8 error correction using ELM module is added.
3. ECC positions updated for BCH8 in synchronized with U-boot.
4. Corrected GPMC settings for BCH8 ECC scheme.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am335x - Disabled JFFS2 filesystem support
Philip, Avinash [Tue, 6 Dec 2011 07:18:49 +0000 (12:48 +0530)]
arm:omap:am335x - Disabled JFFS2 filesystem support

JFFS2 requires 8 byte in OOB area for clean markers leaving 56 bytes for
ECC. However with BCH8 support requires 58 bytes for ECC which leaves 6
bytes. This causes JFSS2 to fail.

This patch removes JFFS2 Support. Instead UBIFS will be used in NAND
flash device.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarch:arm:nand - ELM Module is added
Philip, Avinash [Wed, 30 Nov 2011 11:59:58 +0000 (17:29 +0530)]
arch:arm:nand - ELM Module is added

Module support for ELM is added.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarch:arm:elm - updated Hardware mode data for ELM
Philip, Avinash [Wed, 30 Nov 2011 11:58:15 +0000 (17:28 +0530)]
arch:arm:elm - updated Hardware mode data for ELM

Hardware mode data is updated for ELM module

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - Fix for NAND module build support
Philip, Avinash [Wed, 2 Nov 2011 09:43:04 +0000 (15:13 +0530)]
arm:omap:nand - Fix for NAND module build support

This patch fixes build error of NAND module due to unknown symbols from
gpmc module and is fixed through EXPORT_SYMBOL from gpmc module.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - Updated JFFS2 clean marker offset.
Philip, Avinash [Mon, 17 Oct 2011 06:21:25 +0000 (11:51 +0530)]
arm:omap:nand - Updated JFFS2 clean marker offset.

JFFS2 clean marker offset used by Linux in case of 8-bit NAND device was
0x1 omap2 NAND driver. But 1st 2 bytes is used to indicate bad blocks by
manufacturers. So offset for JFFS2 clean markers is fixed to 0x2 in
omap2 NAND driver irrespective of 8/16 bit device.

Introduced new macro : JFFS2_CLEAN_MARKER_OFFSET to indicate 0x2 offset
for JFFS2 clean marker.

Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - Synching HAMMING ECC layout with that of U-boot.
Vaibhav Hiremath [Sat, 26 Nov 2011 20:22:47 +0000 (01:52 +0530)]
arm:omap:nand - Synching HAMMING ECC layout with that of U-boot.

For OOb_64, offset is fixed to 40 for kernel/fs, by changing
kernel code to calculate hw_ecc layout considering these:
1) 12 bytes in case of 512 byte access and 24 bytes in case of 256 byte
access in OOB_64 can be supported.
2) Ecc bytes lie to the end of OOB area.
Introducing a new macro : MAX_HWECC_BYTES_OOB_64 which is the maximum
number of eccbytes supported for OOB_64n Hamming ECC mode.

Signed-off-by: Hrishikesh Bhandiwad <hrishikesh.b@ti.com>
Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - BCH ecc support added
Vaibhav Hiremath [Wed, 30 Nov 2011 11:54:11 +0000 (17:24 +0530)]
arm:omap:nand - BCH ecc support added

bch error correction (t=4 and t=8) for 512 bytes support added.
Tested in omap-3630 es-1.1 silicon.

Need to select the bch-ecc from board file. E.g.
arch/arm/mach-omap2/board-flash.c: board_nand_init()
board_nand_data.ecc_opt = OMAP_ECC_BCH4_CODE_HW

This patch has dependency on -
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42658.html

Signed-off-by: Parth Mauria Saxena <parth.saxena@ti.com>
Signed-off-by: Sukumar Ghorai <s-ghorai@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Abhilash K V <abhilash.kv@ti.com>
Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am335x - Selects HAMMING ECC scheme.
Parth Mauria Saxena [Tue, 14 Dec 2010 11:25:43 +0000 (16:55 +0530)]
arm:omap:am335x - Selects HAMMING ECC scheme.

ECC scheme selected to Hamming code & prefetch polled mode used by GPMC to
access NAND device.

Signed-off-by: Saxena, Parth <parth.saxena@ti.com>
Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:nand - Release memory region in remove API
Basheer, Mansoor Ahamed [Fri, 15 Jul 2011 07:32:37 +0000 (13:02 +0530)]
arm:omap:nand - Release memory region in remove API

  OMAP2 NAND driver does not release memory region
  in the remove API hence loadable module support for
  OMAP2 NAND driver was broken. This patch releases
  memory region in the remove API.

Signed-off-by: Basheer, Mansoor Ahamed <mansoor.ahamed@ti.com>
Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm:omap:am335x - Support for NAND flash device is added.
Sugumar Natarajan [Wed, 20 Jul 2011 15:07:00 +0000 (20:37 +0530)]
arm:omap:am335x - Support for NAND flash device is added.

NAND flash device support is added.
1. Pin-muxing enabled for profiles.
2. NAND partition information is added.

Signed-off-by: Sugumar Natarajan <sugumar@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Philip, Avinash <avinashphilip@ti.com>
Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoarm: omap: am335xevm: enable usb in defconfig
Ajay Kumar Gupta [Tue, 27 Sep 2011 05:07:42 +0000 (10:37 +0530)]
arm: omap: am335xevm: enable usb in defconfig

Enabled:
- MUSB, MSC, HID, AUDIO and VIDEO class
- Ethernet gadget for first musb port and second port gadget
  need to be inserted after boot.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb: dma fixes for dual gadget mode
Ajay Kumar Gupta [Mon, 26 Sep 2011 09:19:31 +0000 (14:49 +0530)]
usb: musb: dma fixes for dual gadget mode

Has fixes for dual mode gadget related to num_max_ch. Also has Babble interrupt
related fixes/cleanupss

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: adding support for am335x
Ajay Kumar Gupta [Fri, 29 Jul 2011 12:29:00 +0000 (17:59 +0530)]
musb: adding support for am335x

am335x has two musb interface and uses cppi4.1 dma engine. It's
almost same as ti81xx and so using ti81xx files for am335x.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoam335x: add musb support
Ajay Kumar Gupta [Fri, 29 Jul 2011 09:15:22 +0000 (14:45 +0530)]
am335x: add musb support

Adding musb support in am335evm board file. Configured for:
- Two instance of musb
- 500mA of power
Also added the pinmux needed for drvvbus pins of each usb interface.
Others usb pins are not multiplexed so no need to setup them.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb: misc fixes for v3.1.0
Ajay Kumar Gupta [Fri, 23 Sep 2011 09:09:57 +0000 (14:39 +0530)]
usb: musb: misc fixes for v3.1.0

Changes
- v3.1-rc3 has replaced all DBG to dev_dbg.
- CONFIG_MUSB_DEBUG related cleanups
- drivers always in OTG mode so drop all GADGET or HOST ifdefs

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: gadget: don't allow suspend when connected to host
Ajay Kumar Gupta [Thu, 14 Jul 2011 08:15:43 +0000 (13:45 +0530)]
musb: gadget: don't allow suspend when connected to host

While the target is connected to host and user has initiated suspend
then we should not allow system suspend as target is acting as slave
in gadget mode and can't suspend the bus without host initiation.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:ti81xx: removed warning while using toolchain arago-gcc-4.5.3
Ravi B [Thu, 22 Sep 2011 06:00:01 +0000 (11:30 +0530)]
musb:ti81xx: removed warning while using toolchain arago-gcc-4.5.3

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:cppi41: fix for early tx-dma completion
Ravi B [Thu, 15 Sep 2011 11:30:46 +0000 (17:00 +0530)]
musb:cppi41: fix for early tx-dma completion

The tx-dma completion occurs early, while endpoint fifo
is nonempty and transmit is still in progress.
The patch workaround this issue by polling for tx endpoint
fifo in worker thread till last byte from fifo is
transmitted out.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb_host: cppi41 dma fixes for cdc-class
Ravi B [Wed, 14 Sep 2011 12:54:12 +0000 (18:24 +0530)]
usb: musb_host: cppi41 dma fixes for cdc-class

Fixes the cppi41 dma issue while configuring rx dma.
Fixes the bug in rx short pkt completion in
musb-host-rx.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:cppi41: Added rx-dma infinite mode for fsg gadget mode
Ravi B [Mon, 5 Sep 2011 17:47:17 +0000 (23:17 +0530)]
musb:cppi41: Added rx-dma infinite mode for fsg gadget mode

In infinite dma mode the DMA ignores the SOP bit and closes up
a packet after a max_buf_cnt buffer has been filled OR if
the EOP field is set in the info word 0

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:cppi41: The epsize register must be multiple of 64
Ravi B [Mon, 5 Sep 2011 17:27:41 +0000 (22:57 +0530)]
musb:cppi41: The epsize register must be multiple of 64

In generic rnids mode the epsize register must be
receive length multiple of 64 bytes.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:cppi41: use GRNDIS mode for rx-dma except file-storage gadget
Ravi B [Wed, 10 Aug 2011 10:52:46 +0000 (16:22 +0530)]
musb:cppi41: use GRNDIS mode for rx-dma except file-storage gadget

The cppi41 rx-dma in gadget mode is configured for transparent mode
only for file-storage-gadget driver and GRNDIS mode is used for
other gadget driver.
Also fixes the interrupt out transfer for 1024 bytes in gadget mode,
since the transparent mode does not work for interrupt transfer of
1024 size.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: pm workaround fix in host mode when no device connected to ports
Ravi B [Tue, 30 Aug 2011 12:56:37 +0000 (18:26 +0530)]
musb: pm workaround fix in host mode when no device connected to ports

In host mode, the musb does not go to suspend state when no
device connected to port0/port1, only in the otg mode the try
idle function tries to turn off the session when no device is
connected to port.
This patch workaround this issue by clear/set the session bit
when system wide suspend/resume is invoked.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoti816x:usb: Added usb hwmod and platform support for ti816x usb
Ravi B [Mon, 5 Sep 2011 08:05:54 +0000 (13:35 +0530)]
ti816x:usb: Added usb hwmod and platform support for ti816x usb

1.Added the hwmod usb support
2.Added the platform driver changes for hwmod
3.The musb_probe function should check for named resource for
  dual instance of musb.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Added babble workaround enable/disable control
Ravi B [Mon, 5 Sep 2011 06:10:05 +0000 (11:40 +0530)]
musb: Added babble workaround enable/disable control

Added enable/disable babble workaround through procfs entry
to eanble babble workaround
echo 'K' > /proc/driver/musb_hdrc.0 or 1
to disable babble workaround
echo 'k' > /proc/driver/musb_hdrc.0 or 1

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: driving usbid pin control through sofware
Ravi B [Wed, 10 Aug 2011 11:13:03 +0000 (16:43 +0530)]
musb: driving usbid pin control through sofware

By default usbid pin is controlled from external through
mini-A or mini-B plug. This patch adds the configuration
of usbid pin through software to force usbid to ground or
open.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:ti81x: cppi41dma modular fixes for musb gadget mode
Ravi B [Thu, 7 Jul 2011 12:16:17 +0000 (17:46 +0530)]
musb:ti81x: cppi41dma modular fixes for musb gadget mode

This patch fixes the insmod/rmmod fixes for musb
gadget mode and cppi41dma cleanup.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Fix for the test mode feature of musb controller
Ravi B [Wed, 6 Jul 2011 13:22:58 +0000 (18:52 +0530)]
musb: Fix for the test mode feature of musb controller

This patch fixes the generation of test packet when
musb controller enters into test mode.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: dynamic fifo-mode selection for host/device for ti81xx platform
Ravi B [Tue, 21 Jun 2011 09:31:05 +0000 (15:01 +0530)]
musb: dynamic fifo-mode selection for host/device for ti81xx platform

1. Added mode_6_cfg musb fifo table with double buffer
enabled for musb fifo in gadget mode
2. dynamic fifo mode selection thru platform device

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb:musb: Fixes for code review of musb for ti81xx platform
Ravi B [Tue, 21 Jun 2011 07:00:13 +0000 (12:30 +0530)]
usb:musb: Fixes for code review of musb for ti81xx platform

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Fix for dma race condition during i/o completion
Ravi B [Thu, 19 May 2011 05:51:19 +0000 (11:21 +0530)]
musb: cppi41: Fix for dma race condition during i/o completion

This patch fixes the cppi41 dma race condition, where software
reads buffer descriptor before being updated by dma as rx/tx
buffer descriptor(BD) writes by dma still pending in
interconnect bridge when traffic on interconnect is high.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Workaround for early rx cppi41 dma completion in GRNDIS mode
Ravi B [Fri, 8 Apr 2011 09:05:05 +0000 (14:35 +0530)]
musb: Workaround for early rx cppi41 dma completion in GRNDIS mode

Fix for device resets during file transfer from one usb stick to other.
Multiple Resets of msc device while transfering file one usb
stick to other. Root caused at CPPI-41 DMA Level. During transfer
of file from one msc-device1 to msc-device2, there is continuous
scsi-read from device-1 and scsi-write to device-2.
After few Mega Bytes of data are transfered, the scsi-read operation
stops and timeout is occuring at scsi layer hence the scsi-subsystem
resets the device-1.
The CATC capture shows that after sending CBW command to read 240
sectors of data, IN tokens are send by controller to receive few
Kilo bytes, further there were no IN-tokens send by controller to
read the data from device-1.
The analysis shows the corresponding rx endpoint-FIFO is full and
XDMA is not moving the data due CPPI-4.1 Rx DMA channel halted.
What exactly happened was, the scsi submitted request to read 28K data,
one rx-bd is queued to rx-free queue of RX-DMA channel configured in
Generic-RNDIS mode and RNDIS-EPSIZE register is set to 28K value.
For some reason the interrupt has occured with 16K data in rx-bd and
the usb driver gives back this request to application layer.
Since this request is abnormally aborted by DMA, there are no free bd
at input queue and transfer DMA has send IN token to receive further data,
the data received is available in FIFO, FIFO is full and there is no rx-bd
the DMA Stalls. This is reason why there are no IN-token seen on the bus
and the request aborted and continuous resets to device is happening

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb:cppi41: Fix for modular support issue for TI81XX (DMA mode)
Ravi B [Tue, 22 Mar 2011 08:34:00 +0000 (14:04 +0530)]
musb:cppi41: Fix for modular support issue for TI81XX (DMA mode)

Cleanup of cppi41dma and added un-init routine for
queue manager and dma blocks.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb-musb: Fix for modular support issue for TI81XX (PIO Mode)
Ravi B [Tue, 22 Mar 2011 08:26:24 +0000 (13:56 +0530)]
usb-musb: Fix for modular support issue for TI81XX (PIO Mode)

This patch fixes the modular support issue for dual
musb instances in ti81xx (for pio mode).

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb-musb: Enabling fifo double buffering for gadget mode
Ravi B [Mon, 21 Mar 2011 12:40:22 +0000 (18:10 +0530)]
usb-musb: Enabling fifo double buffering for gadget mode

1. Enable the endpoint fifo double buffering for gadget
mode to increase the performance
2. Increase the number of cppidma bd to 128

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Fixes for cppi41 rmmod issue
Ravi B [Wed, 15 Jun 2011 06:09:26 +0000 (11:39 +0530)]
musb: cppi41: Fixes for cppi41 rmmod issue

The cppi41 dma is common module for multi musb instances,
the cppi41 deinitialization will be done as part of
platform exit.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: workaround patch for babble condition
Ravi B [Tue, 1 Feb 2011 07:29:12 +0000 (12:59 +0530)]
musb: workaround patch for babble condition

1) During the babble condition occured in host mode
the musb controller removes the session bit and drives
drvvbus to low and musb controller stops working.
2) This patch workaround this issue by restarting the musb
controller by performing usbotgss controller reset, restart
usb phy, enable all interrupts and then starts the musb
session.
3) Since musb controller shutdown during babble, the
disconnect event generated through software to notify
the associated class driver of connected that
musb is not operational.
3) The procfs entry is added to simulate the babble
condition interrupt through software
usage: echo 'b' > /proc/driver/musb_hdrc.0 or 1

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: CPPI4.1 Tx/Rx DMA Teardown Fixes
Ravi B [Wed, 15 Jun 2011 05:16:58 +0000 (10:46 +0530)]
musb: CPPI4.1 Tx/Rx DMA Teardown Fixes

This patch fixes the teardown fixes for tx/rx dma channels.
During tx/rx dma channel teardown, the completion BDs from
the tx/rx completion queues must need to removed and recycled
to the BD free pool.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Fix multiple define of AUTOREQ and TD reg offset
Ravi B [Thu, 9 Dec 2010 06:20:05 +0000 (11:50 +0530)]
musb: cppi41: Fix multiple define of AUTOREQ and TD reg offset

Fixes multiple definitions of AUTOREQ and TEARDOWN register offset
by adding similar field inside 'struct cppi41'. This is needed as
different platforms has different offsets.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Adding BD interrupt enable feature
Ravi B [Thu, 9 Dec 2010 06:12:12 +0000 (11:42 +0530)]
musb: cppi41: Adding BD interrupt enable feature

Adding BD interrupt enable feature available in CPPI41 DMA on TI81xx
platform. This feature is not supported in AM35x/DA8x.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: teardown descriptor cleanup
Ajay Kumar Gupta [Tue, 1 Feb 2011 11:28:07 +0000 (16:58 +0530)]
musb: cppi41: teardown descriptor cleanup

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Drop const for rx/tx_comp_q
Ajay Kumar Gupta [Tue, 1 Feb 2011 11:27:24 +0000 (16:57 +0530)]
musb: cppi41: Drop const for rx/tx_comp_q

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Adding support for TI81XX platform
Ravi B [Wed, 15 Jun 2011 05:32:45 +0000 (11:02 +0530)]
musb: Adding support for TI81XX platform

TI81x platform has two musb controller and has CPPI4.1 DMA engine.

Changes:
        - Changes done for Kconfig/Makefile for ti81xx usb support
        - Adds the ti81xx.c musb platform file
        - Multi-musb controller support at usb-musb.c

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb: fixes for DBG -> dev_dbg
Ajay Kumar Gupta [Thu, 22 Sep 2011 11:37:37 +0000 (17:07 +0530)]
usb: musb: fixes for DBG -> dev_dbg

v3.0 has changed DBG to dev_dbg.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Update usb_cppi41_info to support multi-ctrl
Ravi B [Thu, 9 Dec 2010 06:02:09 +0000 (11:32 +0530)]
musb: cppi41: Update usb_cppi41_info to support multi-ctrl

Changed usb_cppi41_info to an array of two such element to support
multi-controller scenarios.

Also updated the required changed in am35x.c

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Make cppi41_info as a part of struct cppi41
Ravi B [Thu, 9 Dec 2010 05:55:59 +0000 (11:25 +0530)]
musb: cppi41: Make cppi41_info as a part of struct cppi41

Added cppi41_info in 'struct cppi41' so that each cppi41 instance
can provide their data and thus supporting multi controller.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: General cleanup
Ravi B [Thu, 9 Dec 2010 05:51:29 +0000 (11:21 +0530)]
musb: cppi41: General cleanup

Changes:
- Removed the hard coded constants for size by adding 'size'
  field into cppi41 strcuture
- Added q_num and q_mgr as required to support multi-controller

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: nop: support for multi-nop tranceiver
Ravi B [Mon, 6 Dec 2010 13:09:22 +0000 (18:39 +0530)]
usb: nop: support for multi-nop tranceiver

Modified the nop driver to support multi nop transceiver.
Changes:
- Global xceiv to xceiv[2]
- nop transceiver regiser/deregiser based on musb->id
- Changes to other glue layers

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Changes required in procfs for multi-musb controller
Ajay Kumar Gupta [Tue, 1 Feb 2011 10:51:54 +0000 (16:21 +0530)]
musb: Changes required in procfs for multi-musb controller

Updated procfs part of code to support multi-musb procfs entries
based on musb->id field.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Adding musb->id to support multi-musb controller
Ravi B [Wed, 8 Dec 2010 11:58:03 +0000 (17:28 +0530)]
musb: Adding musb->id to support multi-musb controller

Added musb->id field to differenciate two controllers.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: gadget: Read ep0 fifo only if rxcount is non zero
Ravi B [Thu, 9 Dec 2010 06:31:39 +0000 (12:01 +0530)]
musb: gadget: Read ep0 fifo only if rxcount is non zero

Fixes the read_fifo call with '0' rxcount.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: modular fix
Ajay Kumar Gupta [Thu, 20 Jan 2011 14:44:46 +0000 (20:14 +0530)]
musb: cppi41: modular fix

Changes:
- Moved global defines to cppi41.c/cppi41_dma.c
- Platform files to fill those global defines.
- Added EXPORT_SYMBOL
- REVISIT: am35x: _put commented

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoAM3517: musb: undo pm changes affecting musb
Ajay Kumar Gupta [Tue, 5 Jan 2010 04:25:35 +0000 (09:55 +0530)]
AM3517: musb: undo pm changes affecting musb

musb becomes unusable due to below pm patch in AM3517.

------------------------------------------------
commit 53f18cf6026bc6a0152ea445f6b54de7fbea1b3c
Author: Tero Kristo <tero.kristo@nokia.com>
OMAP3: PM: Enable system control module autoidle
------------------------------------------------

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: teardown fix from Ravi
Ajay Kumar Gupta [Mon, 22 Nov 2010 12:22:38 +0000 (17:52 +0530)]
cppi41: teardown fix from Ravi

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: device fix from Ravi
Ajay Kumar Gupta [Mon, 22 Nov 2010 12:14:10 +0000 (17:44 +0530)]
cppi41: device fix from Ravi

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix IO_ADDRESS related issue on AM35x
Ajay Kumar Gupta [Mon, 25 Oct 2010 08:51:49 +0000 (14:21 +0530)]
cppi41: fix IO_ADDRESS related issue on AM35x

IO_ADDRESS for AM35x MUSB doesn't work and thus CPPI41 programming
also fails.

Fixing this by ioremapping MUSB complete address space (~32K) and
updating CPPI41 related memory base with this mappings.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: AM35x: Add CPPI4.1 DMA support
Ravi B [Tue, 14 Jun 2011 18:23:41 +0000 (23:53 +0530)]
musb: AM35x: Add CPPI4.1 DMA support

Adding CPPI4.1 DMA support for musb driver.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: change number of DMA BLOCK from 4 to 1
Ajay Kumar Gupta [Tue, 28 Jul 2009 13:12:50 +0000 (18:42 +0530)]
cppi41: change number of DMA BLOCK from 4 to 1

Number of DMA block is different for different platforms.

Changing this to '1' for AM3517 platform.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoAM3517: musb: fix iperf failure issue
Ajay Kumar Gupta [Thu, 24 Dec 2009 04:43:31 +0000 (10:13 +0530)]
AM3517: musb: fix iperf failure issue

As we get DMA completion interrupt even when data is in FIFO.
Fixing the issue by adding delay before calling dma completion.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi: ISO IN fixes for CPPI DMA
Ravi B [Tue, 14 Jun 2011 18:20:57 +0000 (23:50 +0530)]
musb: cppi: ISO IN fixes for CPPI DMA

ISO doesn't work without this patch as CPPI DMA is not even
programmed for ISO IN transfer.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix MODE_REG compatibility among platforms
Ajay Kumar Gupta [Fri, 24 Jul 2009 12:32:08 +0000 (18:02 +0530)]
cppi41: fix MODE_REG compatibility among platforms

AM3517 has seperate Tx and Rx MODE registers whereas OMAPL137/DA8x
has only one registers for both Rx and Tx modes.

Solving this difference by adding TX_MODE and RX_MODE registers
seperately which are actually same in case of OMAPL137/DA8x but
different for AM3517.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: procfs: add cppi41 related checks
Ajay Kumar Gupta [Thu, 23 Jul 2009 06:32:09 +0000 (12:02 +0530)]
musb: procfs: add cppi41 related checks

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: Remove platform definitions from cppi41_dma.h
Ajay Kumar Gupta [Thu, 13 Aug 2009 05:41:35 +0000 (11:11 +0530)]
musb: cppi41: Remove platform definitions from cppi41_dma.h

cppi41_dma.h should have common definitions as it would be used
by multiple platforms. As different platform can have different
register layouts so it's better to remove these definitions and
let them come from platform file at plat/usb.h

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix channel program for actual len
Ajay Kumar Gupta [Tue, 28 Jul 2009 14:03:06 +0000 (19:33 +0530)]
cppi41: fix channel program for actual len

actual length has to be zero at the start of new dma programming.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix macro definition in cppi41.h
Ajay Kumar Gupta [Mon, 27 Jul 2009 06:02:19 +0000 (11:32 +0530)]
cppi41: fix macro definition in cppi41.h

Macros definitions for number of queue managers and DMA blocks are
defined in cppi41.h only so use them instead of defining in other
files and using unnecessary extern.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix scheduler table init in dma_block_init()
Ajay Kumar Gupta [Mon, 9 Nov 2009 11:35:47 +0000 (17:05 +0530)]
cppi41: fix scheduler table init in dma_block_init()

scheduler table init programming is unreliable using for loops so
fixing this by using scheduler table entries.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: fix RGN0 memory alloc in queue_mgr_init()
Ajay Kumar Gupta [Tue, 28 Jul 2009 12:05:59 +0000 (17:35 +0530)]
cppi41: fix RGN0 memory alloc in queue_mgr_init()

queue_mgr_init() is currently allocating memory only for RGN1 and
expecting RGN0 memory to be allocated in platform files.

Normally RGN0 is only used so updating queue_mgr_init() to allocate
RGN0 memory.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: add cppi41_exit() to free up the memories
Ajay Kumar Gupta [Tue, 28 Jul 2009 13:20:27 +0000 (18:50 +0530)]
cppi41: add cppi41_exit() to free up the memories

Adding cppi41_exit() to free up the allocated memories.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: fixes to support new musb arch
Ajay Kumar Gupta [Thu, 20 Jan 2011 09:28:21 +0000 (14:58 +0530)]
musb: cppi41: fixes to support new musb arch

Changes:
- __init to __devinit
- rename create/destroy functions
- channels maxlen

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agocppi41: Move CPPI41 core to musb temporarily
Ravi B [Fri, 17 Jun 2011 12:27:48 +0000 (17:57 +0530)]
cppi41: Move CPPI41 core to musb temporarily

This is to ease our development effort and collaboration on Davinci
and OMAP35x family musb drivers.

This would be reverted back once the cppi41 drivers are accepted in
mainline and all confusion are cleared out.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: cppi41: adding musb CPPI41 DMA support
Ravi B [Tue, 14 Jun 2011 17:51:59 +0000 (23:21 +0530)]
musb: cppi41: adding musb CPPI41 DMA support

Texas Instruments CPPI 4.1 DMA support for the MUSBMHRDC driver.

The code makes use of the accelerated "generic RNDIS" DMA mode, falling back to
the transparent (packet per transfer) mode if the hardware restrictions prevent
it from using the accelerated mode.

Update:
        - has update for is_cppi41_enabled() due to musb changes

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
9 years agocppi41: adding CPPI4.1 DMA support
Ajay Kumar Gupta [Thu, 13 Aug 2009 11:39:33 +0000 (17:09 +0530)]
cppi41: adding CPPI4.1 DMA support

Add support for Texas Instuments Communication Port Programming Interface 4.1
(CPPI 4.1) used on OMAP-L137/DA830.

At this moment, only the DMA controller and queue manager are supported.
Support for the buffer manager is lacking but this chip doesn't have it anyway.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: pm: disbale autosuspend in default mode
Ajay Kumar Gupta [Fri, 7 Jan 2011 14:06:05 +0000 (19:36 +0530)]
usb: pm: disbale autosuspend in default mode

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoUSB: musb: NAK timeout scheme on bulk TX endpoint
Ajay Kumar Gupta [Fri, 31 Dec 2010 07:22:30 +0000 (12:52 +0530)]
USB: musb: NAK timeout scheme on bulk TX endpoint

Fixes endpoint starvation issue when more than one bulk QH is
multiplexed on the reserved bulk TX endpoint.

This patch sets the NAK timeout interval for such QHs, and when
a timeout triggers the next QH will be scheduled.

This scheme doesn't work for devices which are connected to a
high to full speed tree (transaction translator) as there is
no NAK timeout interrupt from the musb controller from such
devices.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Add workqueue for URB giveback
Ajay Kumar Gupta [Thu, 25 Nov 2010 12:55:47 +0000 (18:25 +0530)]
musb: Add workqueue for URB giveback

Current musb host driver does the giveback of completed urb first and
then start the next request. This is significantly affecting the streaming
from an USB camera wherein we observe huge delay between the two IN tokens
from musb host. This is due to the fact that UVC driver is doing decoding
and further processing in giveback context.

The patch tries to defer the giveback part to a workqueue and continues
with the start of new request in completion path.

the giveback workqueue has only succesfull completed URBs, it is safe to
giveback URBs without taking musb spinlocks.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: select fifo_mode at runtime
Ravi B [Mon, 6 Dec 2010 13:01:08 +0000 (18:31 +0530)]
musb: select fifo_mode at runtime

OMAP35x han an errata restricting active endpoints to use either
first 8K or next 8K of FIFO space while this issue has been
fixed in OMAP3630.

This issue requires the OMAP35x platform to use fifo_mode=5 but
OMAP3630 and AM35x can use fifo_mode=4 which utilises entire 16K
of FIFO.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Fixes for DTM tests.
Ravi B [Mon, 6 Dec 2010 12:56:05 +0000 (18:26 +0530)]
musb: Fixes for DTM tests.

Fixes all the DTM tests except mini6sendrecv tests.

Signed-off-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: kill unwanted messages
Ajay Kumar Gupta [Tue, 29 Sep 2009 11:16:52 +0000 (16:46 +0530)]
musb: kill unwanted messages

Remives below messages:
musb_bus_suspend 2285: trying to suspend as a_wait_bcon while active
....
....

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Add back old musb procfs file
Ajay Kumar Gupta [Mon, 22 Nov 2010 11:23:26 +0000 (16:53 +0530)]
musb: Add back old musb procfs file

Procfs file is removed from musb and an equivalent debugfs is
expected to replace it.

Adding the old file back to retain the debug functionalities untill
we get debugfs equivalent in mainline.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: Inform user when gadget cable is disconnected
Ajay Kumar Gupta [Fri, 28 May 2010 12:31:30 +0000 (18:01 +0530)]
musb: Inform user when gadget cable is disconnected

Currently we don't see any message to inform user that gadget cable is
successfully disconnected leading to suspicion if everything is fine at
driver therefore adding an informative print message in gadget
disconnect path.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agomusb: disable PING on status phase of control transfer
Ajay Kumar Gupta [Fri, 12 Jun 2009 13:37:13 +0000 (19:07 +0530)]
musb: disable PING on status phase of control transfer

PING token is not mandatory in status phase of control transfer
so some high speed USB sticks doesn't support this.If such devices
are connected to MUSB then they would not respond to PING token
causing delayed or failed enumeration.

Fixing this issue by disabling PING token in status phase of control
transfers.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoRevert: "musb: otg timer cleanup"
Ajay Kumar Gupta [Mon, 22 Nov 2010 11:17:22 +0000 (16:47 +0530)]
Revert: "musb: otg timer cleanup"

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoRevert "musb: make initial HNP roleswitch work (v2)"
Ajay Kumar Gupta [Fri, 28 May 2010 11:32:58 +0000 (17:02 +0530)]
Revert "musb: make initial HNP roleswitch work (v2)"

This reverts commit 1de00dae8036dfee44ebea2c38f942fb6072e0b7.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agoRevert: "musb: support disconnect after HNP roleswitch"
Ajay Kumar Gupta [Fri, 28 May 2010 11:32:00 +0000 (17:02 +0530)]
Revert: "musb: support disconnect after HNP roleswitch"

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb: implement runtime is_inventra_dma/is_cppi_enabled/tusb_dma_omap
Ming Lei [Thu, 23 Dec 2010 15:14:03 +0000 (23:14 +0800)]
usb: musb: implement runtime is_inventra_dma/is_cppi_enabled/tusb_dma_omap

Now we can implement the three helpers below in runtime method:

is_inventra_dma/is_cppi_enabled/tusb_dma_omap

so we can build all hw glue drivers, dma drivers and musb_hdrc into
one single binary image to support musb on mulitple machines.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
9 years agousb: musb: pass musb pointer to is_cppi_enabled helper
Ming Lei [Thu, 23 Dec 2010 15:14:02 +0000 (23:14 +0800)]
usb: musb: pass musb pointer to is_cppi_enabled helper

This patch passes musb pointer to is_cppi_enabled to
prepare for support of runtime is_cppi_enabled.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>