Commit Graph

50215 Commits

Author SHA1 Message Date
Colin Cross
9b571241de Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-22 11:42:14 -07:00
Colin Cross
b7f9c567e6 ARM: tegra: dma: Do not call complete callback on canceled requests
Calling the complete callback when a request is cancelled leads to
locking problems in the callback, which could be called from an IRQ
with no locks held, or from whatever context called
tegra_dma_dequeue_req.  Instead, expect the caller to handle the
now-cancelled request as needed.

Also removes tegra_dma_dequeue, since all users can be trivially
converted to tegra_dma_dequeue_req.

Change-Id: If699239c09c78d1cd3afa0eaad46535b1d401a24
Signed-off-by: Colin Cross <ccross@android.com>
2011-03-22 11:25:25 -07:00
Rebecca Schultz Zavin
6c18f5c4b2 Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-21 14:14:12 -07:00
Rebecca Schultz Zavin
34279b4fb5 Revert "[ARM] tegra: Enable pl310 data prefetching and prefetch offset"
This reverts commit 6c77fdda35.

Conflicts:

	arch/arm/mach-tegra/common.c

Change-Id: I35858f63da5cfd00885dd765da45db39be16b8b7
2011-03-21 14:09:44 -07:00
Rebecca Schultz Zavin
fe7c356123 Merge remote branch 'tegra/linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-08 12:22:31 -08:00
Rebecca Schultz Zavin
be7b9ce20d Revert "Revert "tegra: host: move stale wait checking into the kernel""
This reverts commit b3cc1d84d0.
2011-03-08 12:15:30 -08:00
Colin Cross
07a84a1ce6 Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-03 18:55:38 -08:00
James Wylder
1bc517b59d ARM: tegra: add generic memory vendor matching
Update tegra_init_emc to provide generic memory
vendor matching.  Read values from EMC_MRR_0, to
uniquely identify memory types and compare them
to table of memory passed in.

Change-Id: Ie116fa6f497076149c87ff6c0ae0621309bac65f
Signed-off-by: James Wylder <james.wylder@motorola.com>
2011-03-03 18:54:12 -08:00
Colin Cross
8e15ee8536 ARM: tegra: Use readl/writel_relaxed for reset
tegra_assert_system_reset is called after the cache is disabled.
Calling writel will cause the PL310 store buffers to be drained,
which requires taking a spinlock.  Taking a spinlock is not safe
after the caches are disabled.  Convert to readl_relaxed and
writel_relaxed.

Change-Id: I6850179b931ca865580c0fd3fe003b46bdfa43ae
Signed-off-by: Colin Cross <ccross@android.com>
2011-03-03 18:53:08 -08:00
Rebecca Schultz Zavin
492f2efde4 Merge remote branch 'tegra/linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-03 14:29:26 -08:00
Rebecca Schultz Zavin
b3cc1d84d0 Revert "tegra: host: move stale wait checking into the kernel"
This reverts commit 2d49bf33f3.
2011-03-03 14:28:07 -08:00
Rebecca Schultz Zavin
85d34d3140 Merge remote branch 'tegra/linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-02 17:31:34 -08:00
Prajakta Gudadhe
2d49bf33f3 tegra: host: move stale wait checking into the kernel
The kernel now receives wait tracking data (similar to gathers and
relocs) and compares the current syncpt with the threshold value.

If it's old, it gets a kernel mapping and rewrites the method data
to use a kernel reserved syncpt that is always 0 (so trivially pops
when seen by the HW).

Patch has dependency to the user-space patches

Submitted on behalf of: Chris Johnson <cjohnson@nvidia.com>
original work by: Chris Johnson <cjohnson@nvidia.com>

Change-Id: I4d4e5d3b49cab860485c4172f87247f5b4f5ea6e
2011-03-02 17:16:55 -08:00
Colin Cross
4f72bb8edd Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-03-01 17:26:56 -08:00
Benoit Goby
e859d82480 ARM: tegra: select USB_ARCH_HAS_EHCI
usb_phy now depends on USB_ULPI_VIEWPORT

Change-Id: I5f3c996b41b50e74aa2b53eb246e100926108bff
Signed-off-by: Benoit Goby <benoit@android.com>
2011-03-01 17:13:34 -08:00
Benoit Goby
614d2e5a27 ARM: tegra: use generic ulpi operations
Change-Id: I5b56a8a1b10532683accfe885387afb309b26b19
Signed-off-by: Benoit Goby <benoit@android.com>
2011-03-01 17:13:33 -08:00
Benoit Goby
27c50127f6 ARM: tegra: usb_phy: Fix return values
Changed frequency table into a struct

Change-Id: I202f808b912ce61e1f804103ea6d1197a57c1e62
Signed-off-by: Benoit Goby <benoit@android.com>
2011-03-01 17:13:31 -08:00
Benoit Goby
a0c8749ef1 ARM: tegra: usb_phy: Cleanup before sending upstream
Change-Id: I2548ca931f8ae37757115b7753d520d576bb173d
Signed-off-by: Benoit Goby <benoit@android.com>
2011-03-01 17:13:30 -08:00
Colin Cross
0fcb985c6a Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-02-26 17:19:19 -08:00
Colin Cross
86714b70a1 ARM: tegra: fuse: Fix bug in get_spare_fuse
get_spare_fuse was calling tegra_apb_readl and passing an
offset, but tegra_apb_readl requires a physical address.
Fix it by calling tegra_fuse_readl instead, which takes
an offset.

Fixes a crash booting on A03 parts, where get_spare_fuse
is used to determine the difference between A03 and A03
prime.

Change-Id: Ie386dc099e1c14eeb36262bfcc882e29a40a8da6
Signed-off-by: Colin Cross <ccross@android.com>
2011-02-26 16:47:37 -08:00
Erik Gilling
01863b94e7 Merge remote branch android-2.6.36 into android-tegra-2.6.36
Change-Id: I1d7f83e8eb433df8076a9d636ff03e174a3ff581
2011-02-24 17:17:21 -08:00
Erik Gilling
56edb8f957 Merge branch linux-tegra-2.6.36 into android-tegra-2.6.36
Conflicts:
	drivers/video/tegra/dc/hdmi.c

Change-Id: I10fd2dbcc07d7961dd75e10a2c4de926457c2912
2011-02-24 17:13:10 -08:00
Jon Mayo
1249163215 [ARM] tegra: use APB DMA for accessing APB devices
Change-Id: I165411a14342666cbac02fb8cb171580ab0826aa
Reviewed-on: http://git-master/r/14464
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
2011-02-24 16:59:41 -08:00
Jon Mayo
241fcb6f2d [ARM] tegra: add kfuse peripherial clk entry
Change-Id: I89fc144428b140288126790065902ea9e49b41e4
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
2011-02-24 16:59:41 -08:00
Jon Mayo
36c62f5f06 [ARM] tegra: enable kfuse clock on boot
Change-Id: I7e8d9b5fa275af738fe22be2082a709a3902bdee
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
2011-02-24 16:59:41 -08:00
Jon Mayo
1f90a35f3b [ARM] tegra: kfuse driver
factory programmed encrypted key fuses held in kfuse module.
use APB DMA for accessing kfuse registers, reading directly can hang if any
other DMA is active.

Change-Id: I85e44cc169607bc22116075e28938014aa299d75
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
2011-02-24 16:59:40 -08:00
Jon Mayo
cf030d95bb [ARM] tegra: hdmi nvhdcp driver
Device /dev/nvhdcpX is used to manage NVHDCP on framebuffer /dev/fbX.
These devices are created on hdmi driver initialition when it is
attached to dc. Currently only one nvhdcp device may be created. An ioctl
interface is in video/nvhdcp.h

Check for repeaters and store repeater info. userspace application
queries this status to authenticate the connection. When authentication
fails, auto-renegotiate every 1.75 seconds. Give up after 5 failed attempts,
reset after hotplug or policy change.

use TEGRA_DC_OUT_NVHDCP_POLICY_ON_DEMAND in tegra_dc_out.flags in board
panel configuration to select a different default policy at probe. Currently
only TEGRA_DC_OUT_NVHDCP_POLICY_ALWAYS_ON is supported.

Change-Id: I0db66fc86096b98d2604544061721d291523de75
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Phillip Smith <psmith@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Signed-off-by: Erik Gilling <konkers@android.com>
2011-02-24 16:59:40 -08:00
Todd Poynor
bb2a3184bc ARM: tegra: PL310 restore dynamic clock gating on resume
Tegra 2.6.36 code needs to restore PL310 dynamic clock gating upon
resume from a power event.

As of 2.6.39 the PL310 is re-init'ed from scratch upon resume,
and this patch can be dropped.

Change-Id: I8c1fb1add3c3cfcffff58fab642b84d8d5a7a90a
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-24 16:38:22 -08:00
Todd Poynor
91406b03fa ARM: Cortex-A9: Enable dynamic clock gating
Enable dynamic high level clock gating for Cortex-A9 CPUs, as
described in 2.3.3 "Dynamic high level clock gating" of the
Cortex-A9 TRM.  This may cut the clock of the integer core,
system control block, and Data Engine in certain conditions.

Add ARM errata 720791 to avoid corrupting the Jazelle
instruction stream on earlier Cortex-A9 revisions.

Change-Id: I48e51d907e593f26982ea91b0a811553f68e3c86
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-22 20:01:45 -08:00
Todd Poynor
996d8ccfe7 ARM: tegra: Enable PL310 dynamic clock gating
The cache controller will stop its clock when idle after several
clock cycles.

Change-Id: Ifc9997d4e7fd4f1e3c6129bac2fd42f8995a069e
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-16 13:30:34 -08:00
Todd Poynor
e4c3b484a4 ARM: PL310: Add power control register definition
Change-Id: Ia1f759aab15a241e8e29447622cd1e2998fa745c
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-16 13:26:42 -08:00
Rebecca Schultz Zavin
b5cefc25cd Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-02-14 15:32:12 -08:00
Chris Fries
6c77fdda35 [ARM] tegra: Enable pl310 data prefetching and prefetch offset
Enable data prefetching in the L2 cache controller, and set
the prefetch offset to 7.

Memcpy performance measured copying 16 MB buffers 78 times:
Data prefetch disabled, prefetch offset 0: 440 MB/s
Enabling data prefetching, prefetch offset 0: 430 MB/s
Enabling data prefetching, prefetch offset 7: 502 MB/s

Overall, this patch gives a 14% improvement in memcpy performance.

Prefetch offset of 8 causes prefetches to cross 4k boundaries
and cannot be used.

Original-author: Gary King <gking@nvidia.com>
Signed-off-by: Chris Fries <C.Fries@motorola.com>
Signed-off-by: Colin Cross <ccross@android.com>
Change-Id: I7ce0810b3f94edc2640df3f643cf81357052f2f1
2011-02-12 14:52:03 -08:00
Colin Cross
5a7997f3fb Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-02-12 14:13:29 -08:00
Todd Poynor
6b825e9aaa ARM: tegra: Handle timers during LP2 idle ticks
Timer ticks aren't properly serviced while a CPU is in LP2 idle.
Although the Tegra LP2 idle code calls hrtimer_peek_ahead_timers,
because no IRQ regs have been saved, update_process_times is not
called, and thus the timer list is not serviced (and neither is
SMP rebalancing, etc.)  This can cause significant delays
scheduling timer-based activity, especially on CPU 1 (which is
not servicing most other IRQs).

Colin Cross suggested a patch based on upstream review feedback
that uses clock notifiers to switch to the "broadcast" clock event
source ("timer0" Tegra timer 3) during LP2, which has a real
interrupt handler defined that calls the clock event handler in
IRQ context, allowing timers to be checked.

Change-Id: Ifa3f4ec662f07dc9636e433f278358f75b65d10c
Signed-off-by: Todd Poynor <toddpoynor@google.com>
2011-02-08 18:50:26 -08:00
Erik Gilling
a979d00287 Merge branch linux-tegra-2.6.36 into android-tegra-2.6.36
Change-Id: I65d011f4a13d99ffc617a807d551d5869b739662
2011-02-03 13:29:49 -08:00
Erik Gilling
4a6469b9eb video: tegra: add height/width to dc and fb
Change-Id: I22c280928079af04263375fce63a87776588a457
Signed-off-by: Erik Gilling <konkers@android.com>
2011-02-03 13:21:31 -08:00
Erik Gilling
e445bfcaf1 Merge branch linux-tegra-2.6.36 into android-tegra-2.6.36
Change-Id: I870875673113113940a47d30010683e51b12a27b
2011-02-02 18:41:46 -08:00
Erik Gilling
29cf32156d video: tegra: support v/h sync polarity
Change-Id: Ida82a70efaeadc9d5b11d8703e688063680b72a8
Signed-off-by: Erik Gilling <konkers@android.com>
2011-02-02 18:36:55 -08:00
Colin Cross
c8dd518b20 Merge branch 'android-2.6.36' into android-tegra-2.6.36 2011-02-02 10:03:34 -08:00
Colin Cross
23b6f13927 ARM: vfp: Move exception address fixup into vfphw.S
If the PC on the stack is updated in entry-armv.S,
do_undefinstr can get called after the fixup.  do_undefinstr
does its own fixup, and doing both causes the PC to point to
half way through an instruction.

Instead, do the fixup in do_vfp, where only the vfp code
can get called.

Change-Id: I6d966887adc8ed58d88bfe0cb3c0ba29213be488
Signed-off-by: Colin Cross <ccross@android.com>
2011-02-02 09:52:38 -08:00
Rebecca Schultz Zavin
8f47f22d81 Merge remote branch 'tegra/linux-tegra-2.6.36' into android-tegra-2.6.36 2011-01-28 21:51:32 -08:00
Eric Laurent
a0bcb8eaba [ARM] tegra_i2s_audio: separate TX/RX DMA setup
Fixed a problem preventing independent setup/teardown
of TX and RX DMAs when setting playback or capture buffer count.

Signed-off-by: Eric Laurent <elaurent@google.com>
2011-01-28 13:44:56 -08:00
Rebecca Schultz Zavin
1d5631d33e Merge remote branch 'tegra/linux-tegra-2.6.36' into android-tegra-2.6.36 2011-01-25 20:34:59 -08:00
Nathan Connell
769922c5aa ARM: tegra: usb_phy: Configure USB1 PHY to use programmed value
instead of fused value.  This is required
to meet High Speed USB signaling requirements.

Change-Id: I659b33faa950605ecf040598112e1972047ae7ad
Signed-off-by: Nathan Connell <w14185@motorola.com>
2011-01-25 17:33:24 -08:00
Colin Cross
ae80836c40 Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-01-21 19:10:39 -08:00
Colin Cross
3edd9628c0 ARM: tegra: Prevent dynamically ioremapping device io memory
Change-Id: I893a42bd773b1acdf2b83f8602fe1aa6a8ea6741
Signed-off-by: Colin Cross <ccross@android.com>
2011-01-21 17:05:18 -08:00
Colin Cross
5d8b46b6df ARM: tegra: Statically map all device io memory
Change-Id: I0c750b766dcdd166ddff6317b93556f9f5cce899
Signed-off-by: Colin Cross <ccross@android.com>
2011-01-21 17:05:16 -08:00
Colin Cross
52cb8859b6 Merge branch 'linux-tegra-2.6.36' into android-tegra-2.6.36 2011-01-21 00:33:14 -08:00
Benoit Goby
1df24cc5cf ARM: tegra: clocks: Add shared emc clocks for usb gadget
Change-Id: Idf1982fac02b987cb16ef89509cfe4d72953d1e5
Signed-off-by: Benoit Goby <benoit@android.com>
2011-01-20 15:41:58 -08:00