@@ -460,6 +460,7 @@ sl_si91x_performance_profile_t ConvertPowerSaveConfiguration(PowerSaveInterface:
460460 profile = HIGH_PERFORMANCE;
461461 break ;
462462 case PowerSaveInterface::PowerSaveConfiguration::kConnectedSleep :
463+ case PowerSaveInterface::PowerSaveConfiguration::kLIConnectedSleep :
463464 profile = ASSOCIATED_POWER_SAVE;
464465 break ;
465466 case PowerSaveInterface::PowerSaveConfiguration::kDeepSleep :
@@ -837,6 +838,9 @@ sl_status_t WifiInterfaceImpl::TriggerPlatformWifiDisconnection()
837838#if CHIP_CONFIG_ENABLE_ICD_SERVER
838839CHIP_ERROR WifiInterfaceImpl::ConfigurePowerSave (PowerSaveInterface::PowerSaveConfiguration configuration, uint32_t listenInterval)
839840{
841+ // Power save configuration is already set, nothing to do
842+ VerifyOrReturnValue (mCurrentPowerSaveConfiguration != configuration, CHIP_NO_ERROR);
843+
840844 int32_t error = rsi_bt_power_save_profile (RSI_SLEEP_MODE_2, RSI_MAX_PSP);
841845 VerifyOrReturnError (error == RSI_SUCCESS, CHIP_ERROR_INTERNAL,
842846 ChipLogError (DeviceLayer, " rsi_bt_power_save_profile failed: %ld" , error));
@@ -851,6 +855,7 @@ CHIP_ERROR WifiInterfaceImpl::ConfigurePowerSave(PowerSaveInterface::PowerSaveCo
851855 VerifyOrReturnError (status == SL_STATUS_OK, CHIP_ERROR_INTERNAL,
852856 ChipLogError (DeviceLayer, " sl_wifi_set_performance_profile failed: 0x%lx" , status));
853857
858+ mCurrentPowerSaveConfiguration = configuration;
854859 return CHIP_NO_ERROR;
855860}
856861
0 commit comments