Commit Graph

211786 Commits

Author SHA1 Message Date
Jay Cheng
fc84cd7dba [ARM/tegra] dma: add transfer count query. Checking interrupt pending status.
Stopping Dma after last req transfer.

add an API to return the completed transfer count of a pending, active
or finished DMA request

originally fixed by Gary King <gking@nvidia.com>

It is observed that the dma interrupt has the lower priority then
its client interupt priority. When client's isr calls dma get transfer,
the dma status has not been upated as dma isr have not been served yet.
So before reading the status, explicitly checking the interrupt status and
handling accordingly.

The another issue which is observed is that if dma has transferred the data
of amount = requested -4 and if it moves to invalid requestor before stopping
then status got reset and tarnsfered bytes becomes 0. This seems the apb dma
hw behavior. Following is the suggestion to overcome this issue:
- Disable global enable bit.
- Read status.
- Stop dma.
- Enable global status bit.

Added this workaround and it worked fine.

originally fixed by Laxman Dewangan <ldewangan@nvidia.com>

In continous mode, dma should stop after last transfer completed and
if there is no more req pending.
If there is pending req then it should check whether it has updated
in hw for next transfer or not and if it has not started then stop dma
and start new req immediatley.

originally fixed by Laxman Dewangan <ldewangan@nvidia.com>

Change-Id: I49c97c96eacdf4060de6b21cec0e71d940d33f00
2010-10-18 15:44:51 -07:00
Erik Gilling
831bbd76da video: tegra: add hdmi switch_dev for hotplug notifications
Change-Id: I0454179633835d35367bc5c28513319e3aa6a069
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 15:40:06 -07:00
Erik Gilling
3a44a94cab video: tegra: disable display on hotunplug
Also tighents up the hotplug detect timing

Change-Id: I2d48c38250b5aaef2d30895fe44806e7d133a823
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 15:40:05 -07:00
Benoit Goby
45659f705d usb: host: ehci-tegra: Don't power down the phy on shutdown
There is no need to poweroff the phy and disable the clocks on shutdown.
This interferes with autopm that may try to disable the clocks after
shutdown.

Change-Id: I3aee19abe6dd11685b3be348e25fc3e195a2a416
Signed-off-by: Benoit Goby <benoit@android.com>
2010-10-18 15:27:33 -07:00
Erik Gilling
bf82ae424d i2c: tegra: fix repeated start handling
A repeated start should be used for all but the last msg in an xfer.  The
NOSTART flag is for skipping the START frame (addr/rw)

Change-Id: If4bc88478521a8c4e1ec761bd42a84d3e398fa26
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 15:23:35 -07:00
Erik Gilling
943300a8d5 video: tegra: don't assert/deassert reset in dc
There seems to be some interdependency between the two display controllers'
resets and HDMI.  If dc0 is put into reset while HDMI is connected to dc1,
HDMI will blank.

Change-Id: I978814628609ebe3d78e7809fccef6a3d19c0f7f
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 12:08:26 -07:00
Erik Gilling
686530be3e video: tegra: fb var info on monspecs change
activates the default mode

Change-Id: I34d27d2947377771e8f1c89f3933204d7e65364f
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 12:08:26 -07:00
Erik Gilling
a07fcc9ac9 video: tegra: ensure first video mode is marked with FB_MODE_IS_FIRST
Change-Id: If3c417c670962e4ca6ff92c3bd1a388c189f11ab
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 12:08:19 -07:00
Erik Gilling
3cebbf8d89 video: modedb: make fb_add_videomode keep modelist in order added
This makes the default case in fb_find_best_display ("last resort, use
the very first mode") actually use the first mode added.

Change-Id: Ia43ac4a4251522cd30c0da514da23e47b2906e2c
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-18 12:06:36 -07:00
Chris Fries
0c6062a8ff [ARM] tegra_i2s_audio: allow different DMA bus widths
Added separate APB DMA bus-width controls depending on the audio bus format.

Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-10-16 21:07:26 -07:00
Chris Fries
eee4c1fd23 [ARM] tegra_i2s_audio: add suspend/resume handlers
The resume handler restores i2s state, which gets lost on LP0

Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-10-16 20:53:07 -07:00
Iliyan Malchev
810694cfa9 [ARM] tegra_i2s_audio: add a few overlooked checks
Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-10-16 19:56:22 -07:00
Colin Cross
89c37cce1c Merge commit 'v2.6.36-rc8' into linux-tegra-2.6.36 2010-10-15 12:03:22 -07:00
Linus Torvalds
cd07202cc8 Linux 2.6.36-rc8 v2.6.36-rc8 2010-10-14 16:26:43 -07:00
Mike Corrigan
43ca7cdda2 [arm]: tegra: dma: DMA error debugging.
Print an error message when a DMA channel cannot be allocated.

Change-Id: I93a96851ac12c5ea66b2fb053033aa4260c2178a
Signed-off-by: Mike Corrigan <michael.corrigan@motorola.com>
2010-10-14 16:07:43 -07:00
Mike Corrigan
1785cb19f0 [arm]: tegra: serial: DMA allocation fix.
Handle the case where DMA channels cannot be allocated and PIO must be used.
Fixed a typo for forcing RX to use PIO.

Change-Id: I167184f9ce936d4a08dd9919ae4f8b0d9ad7e0c4
Signed-off-by: Mike Corrigan <michael.corrigan@motorola.com>
2010-10-14 16:07:37 -07:00
Linus Torvalds
3aa0ce825a Un-inline the core-dump helper functions
Tony Luck reports that the addition of the access_ok() check in commit
0eead9ab41 ("Don't dump task struct in a.out core-dumps") broke the
ia64 compile due to missing the necessary header file includes.

Rather than add yet another include (<asm/unistd.h>) to make everything
happy, just uninline the silly core dump helper functions and move the
bodies to fs/exec.c where they make a lot more sense.

dump_seek() in particular was too big to be an inline function anyway,
and none of them are in any way performance-critical.  And we really
don't need to mess up our include file headers more than they already
are.

Reported-and-tested-by: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-10-14 14:32:06 -07:00
Erik Gilling
90b46c5cf7 video: tegra: update overlay stride in fb_set_par
Fixes recovery graphics

Change-Id: I68824dfcd29b40eaa27a8b5ee437e5763288a49e
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-14 11:34:44 -07:00
Erik Gilling
cef728fe09 spi: tegra: cleanups from upstream review
Change-Id: Icecf7e64efcb39de072a15234ba1faa4bad40d25
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-14 11:33:12 -07:00
Linus Torvalds
ae42d8d441 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  ehea: Fix a checksum issue on the receive path
  net: allow FEC driver to use fixed PHY support
  tg3: restore rx_dropped accounting
  b44: fix carrier detection on bind
  net: clear heap allocations for privileged ethtool actions
  NET: wimax, fix use after free
  ATM: iphase, remove sleep-inside-atomic
  ATM: mpc, fix use after free
  ATM: solos-pci, remove use after free
  net/fec: carrier off initially to avoid root mount failure
  r8169: use device model DMA API
  r8169: allocate with GFP_KERNEL flag when able to sleep
2010-10-14 11:19:44 -07:00
Linus Torvalds
0eead9ab41 Don't dump task struct in a.out core-dumps
akiphie points out that a.out core-dumps have that odd task struct
dumping that was never used and was never really a good idea (it goes
back into the mists of history, probably the original core-dumping
code).  Just remove it.

Also do the access_ok() check on dump_write().  It probably doesn't
matter (since normal filesystems all seem to do it anyway), but he
points out that it's normally done by the VFS layer, so ...

[ I suspect that we should possibly do "vfs_write()" instead of
  calling ->write directly.  That also does the whole fsnotify and write
  statistics thing, which may or may not be a good idea. ]

And just to be anal, do this all for the x86-64 32-bit a.out emulation
code too, even though it's not enabled (and won't currently even
compile)

Reported-by: akiphie <akiphie@lavabit.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-10-14 10:57:40 -07:00
Chris Fries
34179ead6c [ARM] tegra_i2s_audio: add support for DSP (PCM) mode.
Change-Id: I132b8b7709c154ca1fb52f437966bd90451e89f7
Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-10-13 19:15:43 -07:00
Iliyan Malchev
ce3ae8e74b [ARM] tegra_i2s_audio: fixes
-- Ignore kfifo thresholds on recording and playback and adjust the delays.
-- Take out the code from TEGRA_AUDIO_IN_STOP into a separate function
   stop_recording_nosync()
-- Rename stop_recording() to wait_for_recording_to_stop().
-- add ioctl(TEGRA_AUDIO_OUT_FLUSH), which blocks the caller until the output
   fifo is drained.  While the caller is blocked, pending write() calls will
   return immediately with whatever data they had managed to queue up.
-- removed ioctl(TEGRA_AUDIO_OUT_PRELOAD_FIFO)
-- since TEGRA_AUDIO_OUT_FLUSH and TEGRA_AUDIO_IN_STOP act similarly, moved
   audio_driver_state::recording_cancelled to audio_stream::stop and changed
   the code accordingly.  Renamed functions wait_for_recording_to_stop() and
   stop_recording_nosync() to wait_till_stopped() and request_stop_nosync()
   since they handle both playback and recording.
-- print errors on close() if wakelocks are still held
-- Call request_stop_nosync() on close() of a recording file handle
-- Do not use struct audio_stream::active for playback streams.  Instead,
   where applicable, use kfifo_len().  As a consequence, playback kfifo
   underruns are no longer reported.  These were bogus anyway, as we really
   need the DMA engine to tell us if there are underruns.
-- Because of above item, had to rework tx_fifo_atn_store(),
   rx_fifo_atn_store(), and __attr_fifo_atn_write().
-- Set struct audio_stream::active for a recording stream to true when a
   recording starts, and set it to false when recording get stopped.  Do not
   set/clear it within the body of read(), because just being within read()
   does not mean that recording is in progress.
-- In tegra_audio_read(), check for stop == true before calling
   start_recording_if_necessary(); this makes sure that if a user calls read()
   after calling ioctl(TEGRA_AUDIO_IN_STOP), recording will not resume unless
   ioctl(TEGRA_AUDIO_IN_START) gets called, or the file is closed and
   re-opened.
-- Fixed TEGRA_AUDIO_IN_START
-- In PIO mode, enabled FIFOs before enabling interrupts as specified in the
   TRM.
-- Added missing break in tegra_audio_ioctl().
-- Silenced some debug spew

Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-10-13 19:15:43 -07:00
Jay Cheng
d774220d60 usb: gadget: fsl_udc: Add support for USB test mode feature
Adding support for USB-IF High Speed electrical test mode for device mode.
Support added for electrical test modes:
1. TEST_J
2. TEST_K
3. TEST_SE0_NAK
4. TEST_PACKET
5. TEST_FORCE_ENABLE

originally fixed by Venkat Moganty <vmoganty@nvidia.com>

Change-Id: If5a4dcf9eb81dc368f24c660460d35495b6a4253
Signed-off-by: Jay Cheng <jacheng@nvidia.com>
2010-10-13 17:10:40 -07:00
Linus Torvalds
53eeb64e80 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
  ioat2: fix performance regression
2010-10-13 16:51:59 -07:00
Linus Torvalds
8c35bf368c Merge branch 'for-2.6.36' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.36' of git://linux-nfs.org/~bfields/linux:
  nfsd: fix BUG at fs/nfsd/nfsfh.h:199 on unlink
2010-10-13 16:51:29 -07:00
Linus Torvalds
fec896e21b Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  ring-buffer: Fix typo of time extends per page
  perf, MIPS: Support cross compiling of tools/perf for MIPS
  perf: Fix incorrect copy_from_user() usage
2010-10-13 16:50:23 -07:00
Benoit Goby
5aca5c3c19 usb: gadget: fsl_udc: Fix dTDs allocation gfp flags
fsl_build_dtd may be called from atomic context. Don't hardcode the gfp
flag to GFP_KERNEL. Pass down to dma_pool_alloc the flag used by the
function driver to enqueue the request.

Change-Id: Iba1ccf73bbcd648b8c13228157431d2ce52979ef
Signed-off-by: Benoit Goby <benoit@android.com>
2010-10-13 16:37:08 -07:00
Colin Cross
cafc989dd8 usb: gadget: fsl_udc: Prevent udc timeout on suspend
Change-Id: Ic4780063d432860df835c54c17b2b9249132c8c5
Signed-off-by: Colin Cross <ccross@android.com>
2010-10-13 16:37:07 -07:00
Linus Torvalds
d94bc4fc24 Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
  ARM: relax ioremap prohibition (309caa9) for -final and -stable
  ARM: 6440/1: ep93xx: DMA: fix channel_disable
  cpuimx27: fix i2c bus selection
  cpuimx27: fix compile when ULPI is selected
  ARM: 6435/1: Fix HWCAP_TLS flag for ARM11MPCore/Cortex-A9
  ARM: 6436/1: AT91: Fix power-saving in idle-mode on 926T processors
  ARM: fix section mismatch warnings in Versatile Express
  ARM: 6412/1: kprobes-decode: add support for MOVW instruction
  ARM: 6419/1: mmu: Fix MT_MEMORY and MT_MEMORY_NONCACHED pte flags
  ARM: 6416/1: errata: faulty hazard checking in the Store Buffer may lead to data corruption
2010-10-13 16:35:33 -07:00
Linus Torvalds
7081319658 Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
  omap: iommu-load cam register before flushing the entry
2010-10-13 16:35:05 -07:00
Linus Torvalds
a56f31a0c6 Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
  drm/radeon/kms: Silent spurious error message
  drm/radeon/kms: fix bad cast/shift in evergreen.c
  drm/radeon/kms: make TV/DFP table info less verbose
  drm/radeon/kms: leave certain CP int bits enabled
  drm/radeon/kms: avoid corner case issue with unmappable vram V2
2010-10-13 16:34:46 -07:00
Linus Torvalds
509d4486bd Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, numa: For each node, register the memory blocks actually used
  x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order
  x86, mce, therm_throt.c: Fix missing curly braces in error handling logic
2010-10-13 16:34:23 -07:00
Dan Williams
c50a898fd4 ioat2: fix performance regression
Commit 0793448 "DMAENGINE: generic channel status v2" changed the interface for
how dma channel progress is retrieved.  It inadvertently exported an internal
helper function ioat_tx_status() instead of ioat_dma_tx_status().  The latter
polls the hardware to get the latest completion state, while the helper just
evaluates the current state without touching hardware.  The effect is that we
end up waiting for completion timeouts or descriptor allocation errors before
the completion state is updated.

iperf (before fix):
[SUM]  0.0-41.3 sec   364 MBytes  73.9 Mbits/sec

iperf (after fix):
[SUM]  0.0- 4.5 sec   499 MBytes   940 Mbits/sec

This is a regression starting with 2.6.35.

Cc: <stable@kernel.org>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Linus Walleij <linus.walleij@stericsson.com>
Cc: Maciej Sosnowski <maciej.sosnowski@intel.com>
Reported-by: Richard Scobie <richard@sauce.co.nz>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-10-13 15:43:10 -07:00
Breno Leitao
71085ce828 ehea: Fix a checksum issue on the receive path
Currently we set all skbs with CHECKSUM_UNNECESSARY, even
those whose protocol we don't know. This patch just
add the CHECKSUM_COMPLETE tag for non TCP/UDP packets.

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-13 14:24:59 -07:00
J. Bruce Fields
b1e86db1de nfsd: fix BUG at fs/nfsd/nfsfh.h:199 on unlink
As of commit 43a9aa64a2 "NFSD:
Fill in WCC data for REMOVE, RMDIR, MKNOD, and MKDIR", we sometimes call
fh_unlock on a filehandle that isn't fully initialized.

We should fix up the callers, but as a quick fix it is also sufficient
just to remove this assertion.

Reported-by: Marius Tolzmann <tolzmann@molgen.mpg.de>
Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2010-10-13 15:48:55 -04:00
Greg Ungerer
6fcc040f02 net: allow FEC driver to use fixed PHY support
At least one board using the FEC driver does not have a conventional
PHY attached to it, it is directly connected to a somewhat simple
ethernet switch (the board is the SnapGear/LITE, and the attached
4-port ethernet switch is a RealTek RTL8305). This switch does not
present the usual register interface of a PHY, it presents nothing.
So a PHY scan will find nothing - it finds ID's of 0 for each PHY
on the attached MII bus.

After the FEC driver was changed to use phylib for supporting PHYs
it no longer works on this particular board/switch setup.

Add code support to use a fixed phy if no PHY is found on the MII bus.
This is based on the way the cpmac.c driver solved this same problem.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-13 09:56:31 -07:00
Gary King
4beaf8cc13 [ARM] tegra: ventana: add graphics support
register the tegradc0, tegradc1, grhost, pwm-backlight and carveout
devices

Change-Id: Ia61c0632470e571cc57279dc3b197ccd1fca80f0
Signed-off-by: Gary King <gking@nvidia.com>
2010-10-12 18:31:57 -07:00
Gary King
21f62ce1a8 [ARM] tegra: ventana: add ldo3 consumer for avdd_lvds
Change-Id: If5e07b2eb62805a00426799184989fa290318f4a
Signed-off-by: Gary King <gking@nvidia.com>
2010-10-12 18:31:56 -07:00
Gary King
04500101f0 [ARM] tegra: ventana: remove BUG() in set_charge.
Signed-off-by: Gary King <gking@nvidia.com>
2010-10-12 18:31:51 -07:00
Rebecca Schultz Zavin
359cf685af video: tegra: nvmap: Only allow allocations out of highmem
Low mem pages are allocated in larger super pages and their caching
attributes can't be controlled on a per page basis.  This patch
forces nvmap to map out of highmem pages which are guaranteed to have
page mappings.

Change-Id: Id3921342ecceb0345d43365d4dd90b82ca8cfd11
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2010-10-12 18:15:56 -07:00
Rebecca Schultz Zavin
3501c826b4 Revert "[ARM] mmu: add option to map lowmem with page mappings"
This reverts commit ac21b32104.
2010-10-12 18:15:56 -07:00
Gary King
f3d83237ea [ARM] attrib_alloc: fix outer cache flush end address
when allocating uncached pages, the outer cache should be flushed;
the end address should be specified in bytes, not in pages.

Change-Id: I3fe036f4f7e10e009f96567e3afeeef6ea603240
Signed-off-by: Gary King <gking@nvidia.com>
2010-10-12 18:15:55 -07:00
Erik Gilling
22adcfad50 Revert "video: tegra: add utility function to compute framebuffer stride"
This reverts commit 10c751b8f5.

Change-Id: I236ddcd531d3ca17c8727cac84e6d2aa6e27dbe1
2010-10-12 18:07:15 -07:00
Erik Gilling
19eb4599aa video: tegra: clean up fb flipping code
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: I1c1f5aea92c1b062c8ccf2f2f6116c399d847262
2010-10-12 18:07:15 -07:00
Erik Gilling
155f26884a [ARM] tegra: add 10us delay after unclamping in powergate_on sequence
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: I94a979e6a1ec6ecf80b4d4f1721a8aacac7b8a11
2010-10-12 18:07:15 -07:00
Michael I. Gold
f6e31e5516 video: tegra: dump current pushbuffer from channel debugger
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: Ia14a2bad23ae1c6401755d413ffdc32c9f35b0fd
2010-10-12 18:07:15 -07:00
Erik Gilling
55114fde7b video: tegra: fix host1x command decoding debug prints
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: Ia0073a4e679174fc7e9ca6ff0b67973980c6af97
2010-10-12 18:07:14 -07:00
Erik Gilling
3e6ad4d3bb video: tegra: lock around DC suspend/resume
Change-Id: I9c134a2417106538b15cc1cfd615cfb65573e878
Signed-off-by: Erik Gilling <konkers@android.com>
2010-10-12 18:07:14 -07:00
Russell King
06c1088448 ARM: relax ioremap prohibition (309caa9) for -final and -stable
... but produce a big warning about the problem as encouragement
for people to fix their drivers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-10-13 00:19:03 +01:00