mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-10 03:20:49 +00:00
1d328606c6
The "powered-down" cpuidle mode of Tegra20 needs the CPU0 be the last one core to go into this mode before other core. The coupled cpuidle framework can help to sync the MPCore to coupled state then go into "powered-down" idle mode together. The driver can just assume the MPCore come into "powered-down" mode at the same time. No need to take care if the CPU_0 goes into this mode along and only can put it into safe idle mode (WFI). The powered-down state of Tegra20 requires power gating both CPU cores. When the secondary CPU requests to enter powered-down state, it saves its own contexts and then enters WFI for waiting CPU0 in the same state. When the CPU0 requests powered-down state, it attempts to put the secondary CPU into reset to prevent it from waking up. Then power down both CPUs together and power off the cpu rail. Be aware of that, you may see the legacy power state "LP2" in the code which is exactly the same meaning of "CPU power down". Based on the work by: Colin Cross <ccross@android.com> Gary King <gking@nvidia.com> Signed-off-by: Joseph Lo <josephl@nvidia.com> Acked-by: Colin Cross <ccross@android.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
65 lines
1.7 KiB
Plaintext
65 lines
1.7 KiB
Plaintext
if ARCH_TEGRA
|
|
|
|
comment "NVIDIA Tegra options"
|
|
|
|
config ARCH_TEGRA_2x_SOC
|
|
bool "Enable support for Tegra20 family"
|
|
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
select ARM_ERRATA_720789
|
|
select ARM_ERRATA_742230 if SMP
|
|
select ARM_ERRATA_751472
|
|
select ARM_ERRATA_754327 if SMP
|
|
select ARM_ERRATA_764369 if SMP
|
|
select ARM_GIC
|
|
select CPU_FREQ_TABLE if CPU_FREQ
|
|
select CPU_V7
|
|
select PINCTRL
|
|
select PINCTRL_TEGRA20
|
|
select PL310_ERRATA_727915 if CACHE_L2X0
|
|
select PL310_ERRATA_769419 if CACHE_L2X0
|
|
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
|
select USB_ULPI if USB
|
|
select USB_ULPI_VIEWPORT if USB_SUPPORT
|
|
help
|
|
Support for NVIDIA Tegra AP20 and T20 processors, based on the
|
|
ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
|
|
|
|
config ARCH_TEGRA_3x_SOC
|
|
bool "Enable support for Tegra30 family"
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
select ARM_ERRATA_743622
|
|
select ARM_ERRATA_751472
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_764369 if SMP
|
|
select ARM_GIC
|
|
select CPU_FREQ_TABLE if CPU_FREQ
|
|
select CPU_V7
|
|
select PINCTRL
|
|
select PINCTRL_TEGRA30
|
|
select PL310_ERRATA_769419 if CACHE_L2X0
|
|
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
|
select USB_ULPI if USB
|
|
select USB_ULPI_VIEWPORT if USB_SUPPORT
|
|
help
|
|
Support for NVIDIA Tegra T30 processor family, based on the
|
|
ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
|
|
|
|
config TEGRA_PCI
|
|
bool "PCI Express support"
|
|
depends on ARCH_TEGRA_2x_SOC
|
|
select PCI
|
|
|
|
config TEGRA_AHB
|
|
bool "Enable AHB driver for NVIDIA Tegra SoCs"
|
|
default y
|
|
help
|
|
Adds AHB configuration functionality for NVIDIA Tegra SoCs,
|
|
which controls AHB bus master arbitration and some
|
|
performance parameters(priority, prefech size).
|
|
|
|
config TEGRA_EMC_SCALING_ENABLE
|
|
bool "Enable scaling the memory frequency"
|
|
|
|
endif
|