diff --git a/drivers/firmware/rockchip_sip.c b/drivers/firmware/rockchip_sip.c index f7c716232fb9..a4e0e93a0b2d 100644 --- a/drivers/firmware/rockchip_sip.c +++ b/drivers/firmware/rockchip_sip.c @@ -64,6 +64,14 @@ int sip_smc_set_suspend_mode(u32 ctrl, u32 config1, u32 config2) return res.a0; } +struct arm_smccc_res sip_smc_get_suspend_info(u32 info) +{ + struct arm_smccc_res res; + + res = __invoke_sip_fn_smc(SIP_SUSPEND_MODE, info, 0, 0); + return res; +} + int sip_smc_virtual_poweroff(void) { struct arm_smccc_res res; diff --git a/include/linux/rockchip/rockchip_sip.h b/include/linux/rockchip/rockchip_sip.h index 121843343539..80d936b82eb1 100644 --- a/include/linux/rockchip/rockchip_sip.h +++ b/include/linux/rockchip/rockchip_sip.h @@ -78,6 +78,7 @@ #define SUSPEND_DEBUG_ENABLE 0x05 #define APIOS_SUSPEND_CONFIG 0x06 #define VIRTUAL_POWEROFF 0x07 +#define SUSPEND_WFI_TIME_MS 0x08 /* SIP_REMOTECTL_CFG call types */ #define REMOTECTL_SET_IRQ 0xf0 @@ -110,6 +111,7 @@ struct arm_smccc_res sip_smc_request_share_mem(u32 page_num, share_page_type_t page_type); struct arm_smccc_res sip_smc_mcu_el3fiq(u32 arg0, u32 arg1, u32 arg2); struct arm_smccc_res sip_smc_vpu_reset(u32 arg0, u32 arg1, u32 arg2); +struct arm_smccc_res sip_smc_get_suspend_info(u32 info); int sip_smc_set_suspend_mode(u32 ctrl, u32 config1, u32 config2); int sip_smc_virtual_poweroff(void); @@ -173,6 +175,11 @@ static inline int sip_smc_set_suspend_mode(u32 ctrl, u32 config1, u32 config2) return 0; } +static inline int sip_smc_get_suspend_info(u32 info) +{ + return 0; +} + static inline int sip_smc_virtual_poweroff(void) { return 0; } static inline int sip_smc_remotectl_config(u32 func, u32 data) { return 0; } static inline u32 sip_smc_secure_reg_read(u32 addr_phy) { return 0; }