Revert "Tegra: Add support for fake system suspend"
This reverts commit c41df8fda84b9bc56bbb2347fb902f64b1bb557e Fake system suspend relies on software running on EL3 to trigger a warm reset. Revert enabling fake system suspend, as the software running on El3 is not allowed to trigger a warm reset. Change-Id: I6035f2a7bcb0a4ad50a62c5bc5239226c625ee5e Signed-off-by: Vignesh Radhakrishnan <vigneshr@nvidia.com>
This commit is contained in:
parent
a04808c16c
commit
cf489bf118
|
@ -27,14 +27,6 @@
|
|||
extern uint64_t tegra_bl31_phys_base;
|
||||
extern uint64_t tegra_sec_entry_point;
|
||||
|
||||
/*
|
||||
* tegra_fake_system_suspend acts as a boolean var controlling whether
|
||||
* we are going to take fake system suspend code or normal system suspend code
|
||||
* path. This variable is set inside the sip call handlers,when the kernel
|
||||
* requests a SIP call to set the suspend debug flags.
|
||||
*/
|
||||
uint8_t tegra_fake_system_suspend;
|
||||
|
||||
/*
|
||||
* The following platform setup functions are weakly defined. They
|
||||
* provide typical implementations that will be overridden by a SoC.
|
||||
|
@ -233,31 +225,10 @@ void tegra_pwr_domain_suspend(const psci_power_state_t *target_state)
|
|||
__dead2 void tegra_pwr_domain_power_down_wfi(const psci_power_state_t
|
||||
*target_state)
|
||||
{
|
||||
uint8_t pwr_state = target_state->pwr_domain_state[PLAT_MAX_PWR_LVL];
|
||||
uint64_t rmr_el3 = 0;
|
||||
|
||||
/* call the chip's power down handler */
|
||||
(void)tegra_soc_pwr_domain_power_down_wfi(target_state);
|
||||
|
||||
/*
|
||||
* If we are in fake system suspend mode, ensure we start doing
|
||||
* procedures that help in looping back towards system suspend exit
|
||||
* instead of calling WFI by requesting a warm reset.
|
||||
* Else, just call WFI to enter low power state.
|
||||
*/
|
||||
if ((tegra_fake_system_suspend != 0U) &&
|
||||
(pwr_state == (uint8_t)PSTATE_ID_SOC_POWERDN)) {
|
||||
|
||||
/* warm reboot */
|
||||
rmr_el3 = read_rmr_el3();
|
||||
write_rmr_el3(rmr_el3 | RMR_WARM_RESET_CPU);
|
||||
|
||||
} else {
|
||||
/* enter power down state */
|
||||
wfi();
|
||||
}
|
||||
|
||||
/* we can never reach here */
|
||||
wfi();
|
||||
panic();
|
||||
}
|
||||
|
||||
|
|
|
@ -24,12 +24,6 @@
|
|||
#define TEGRA_SIP_NEW_VIDEOMEM_REGION 0x82000003
|
||||
#define TEGRA_SIP_FIQ_NS_ENTRYPOINT 0x82000005
|
||||
#define TEGRA_SIP_FIQ_NS_GET_CONTEXT 0x82000006
|
||||
#define TEGRA_SIP_ENABLE_FAKE_SYSTEM_SUSPEND 0xC2000007
|
||||
|
||||
/*******************************************************************************
|
||||
* Fake system suspend mode control var
|
||||
******************************************************************************/
|
||||
extern uint8_t tegra_fake_system_suspend;
|
||||
|
||||
/*******************************************************************************
|
||||
* SoC specific SiP handler
|
||||
|
@ -162,26 +156,6 @@ uintptr_t tegra_sip_handler(uint32_t smc_fid,
|
|||
|
||||
SMC_RET0(handle);
|
||||
|
||||
case TEGRA_SIP_ENABLE_FAKE_SYSTEM_SUSPEND:
|
||||
/*
|
||||
* System suspend fake mode is set if we are on VDK and we make
|
||||
* a debug SIP call. This mode ensures that we excercise debug
|
||||
* path instead of the regular code path to suit the pre-silicon
|
||||
* platform needs. These include replacing the call to WFI by
|
||||
* a warm reset request.
|
||||
*/
|
||||
if (tegra_platform_is_virt_dev_kit() != false) {
|
||||
|
||||
tegra_fake_system_suspend = 1;
|
||||
SMC_RET1(handle, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* We return to the external world as if this SIP is not
|
||||
* implemented in case, we are not running on VDK.
|
||||
*/
|
||||
break;
|
||||
|
||||
default:
|
||||
ERROR("%s: unhandled SMC (0x%x)\n", __func__, smc_fid);
|
||||
break;
|
||||
|
|
|
@ -97,8 +97,6 @@ void tegra_security_setup(void);
|
|||
void tegra_security_setup_videomem(uintptr_t base, uint64_t size);
|
||||
|
||||
/* Declarations for tegra_pm.c */
|
||||
extern uint8_t tegra_fake_system_suspend;
|
||||
|
||||
void tegra_pm_system_suspend_entry(void);
|
||||
void tegra_pm_system_suspend_exit(void);
|
||||
int32_t tegra_system_suspended(void);
|
||||
|
|
Loading…
Reference in New Issue