arm: tegra: optimize L2 enable/disable paths for secureos
authorHyung Taek Ryoo <hryoo@nvidia.com>
Tue, 31 Jul 2012 22:43:34 +0000 (15:43 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 19:31:07 +0000 (12:31 -0700)
commite56efa2bf7779f651d5d10ceca634291a90eeb3d
tree9acff93f9b9cb994ba9c6a874ca743efa74a6f17
parent642d00b649091b787360aefae1ee9dd889d8809c
arm: tegra: optimize L2 enable/disable paths for secureos

For the CONFIG_TRUSTED_FOUNDATION code paths, differentiate L2
enable vs. reenable, which are different SMCs (won't trigger an
invalidate in the case of a reenable).

On an L2 disable SMC, optionally pass a 0 for the L2 ways arg,
which skips the full clean/invalidate (and simply just disabled
the L2).

In order to safely skip flushing the L2 on the disable, we have
to be careful what we dirty from the type we flush the L1 and
disable the L2.

Bug 939415
Signed-off-by: Chris Johnson<cwj@nvidia.com>

Change-Id: I756d2ceda83d5d8d6bc5670218e9d874d5e5f62a
Reviewed-on: http://git-master/r/119786
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

Rebase-Id: R3ef57b700f11d16ca5821194ab8144fd97a9fb47
arch/arm/mach-tegra/common.c
arch/arm/mach-tegra/headsmp.S
arch/arm/mach-tegra/pm.c
arch/arm/mach-tegra/pm.h
arch/arm/mach-tegra/sleep.S