[ARM] tegra: Set bit 22 in the PL310 AuxCtrl
authorGary King <gking@nvidia.com>
Wed, 13 Oct 2010 01:55:07 +0000 (18:55 -0700)
committerColin Cross <ccross@android.com>
Mon, 18 Oct 2010 22:55:29 +0000 (15:55 -0700)
commitaba71d0453b73cbea8297d092be5bb3ecb3fd311
tree1e5a2a32b600c5ada60e2c811a1ce801a6438b7e
parentdca2f292ae2126db4c1e86c0eb2c74fa4e500c3c
[ARM] tegra: Set bit 22 in the PL310 AuxCtrl

Duplicate Catalin Marinas' <catalin.marinas@arm.com> ARM change
6395/1 for VExpress to tegra

Clearing bit 22 in the PL310 Auxiliary Control register (shared
attribute override enable) has the side effect of transforming Normal
Shared Non-cacheable reads into Cacheable no-allocate reads.

Coherent DMA buffers in Linux always have a Cacheable alias via the
kernel linear mapping and the processor can speculatively load cache
lines into the PL310 controller. With bit 22 cleared, Non-cacheable
reads would unexpectedly hit such cache lines leading to buffer
corruption.

Change-Id: I37232041c035f5153a7ad73257c6333634a5f4b8
Signed-off-by: Gary King <gking@nvidia.com>
arch/arm/mach-tegra/common.c