Reference Manual
Redpine Signals, Inc. Proprietary and Confidential Page 84
RS9116 n-Link Linux and Android
Technical Reference Manual
Version 2.0
d. <num_dtims_per_sleep>
• Periodic UAPSD: This mode is enabled by the set_uapsd_params command only if the <uapsd_wakeup_period>
parameter is assigned with a non-zero value. For this mode, the wakeup period can be assigned with a value ranging
between 10 and 100 milliseconds. If it is supported by the Access Point, then in this mode, the module wakes up at
the end of each sleep period and transmits pending data or a QoS Null packet in order to retrieve the data from the
Access Point. The sleep period is governed by the parameter set which is using commands like set_ps_params
command (see the list under Max PSP above) and also set_uapsd_params command. The sleep period has the
minimum of the values programmed using the above two commands. If the Access Point does not support UAPSD, the
module tries to mimic this mode by waking up at the end of the sleep period and transmits pending data and a
PS_POLL packet to retrieve the data from the Access Point.
• Transmit based UAPSD: If <uapsd_wakeup_period> parameter is set to 0 in the set_uapsd_params command, the
Transmit based UAPSD mode is enabled. In ULP mode, the Transmit based UAPSD mode can be used only when the
signal-based handshake is enabled (and not in packet-based handshake mode). In this mode, the module wakes up
from sleep when the Host sends a packet to be transmitted and then retrieves the pending packets from the Access
Point by transmitting the packet. The module also wakes up if there is no packet transmitted for the sleep duration
programmed in the set_ps_params command. If the Access Point does not support UAPSD, the module mimics this
mode by waking up whenever there is a packet to be transmitted.
It generally transmits the packet and then retrieves the pending data from the Access Point by sending a PS_POLL
packet.
15.4 Power save Parameters
The input parameters of the set_ps_params command are explained below.
• <ps_en>: This parameter is used to enable (1) or disable (0) power save mode.
• <sleep_type>: This parameter is used to select the sleep mode between LP (1) and ULP (2) modes.
• <tx_threshold>: If a non-zero value is assigned, this parameter is used to set a threshold for the Transmit throughput
computed during the <monitor_interval> period so that the module can decide to enter (throughput ≤ threshold) or
exit (throughput > threshold) the power save mode. The value is in Mbps and minimum value is 0 Mbps.
• <rx_threshold>: If a non-zero value is assigned, this parameter is used to set a threshold for the Receive throughput
computed during the <monitor_interval> period so that the module can decide to enter (throughput ≤ threshold) or
exit (throughput > threshold) the power save mode. The value is in Mbps and minimum value is 0 Mbps.
• <tx_hysteresis>: The decision to enter or exit power save mode based on the Transmit throughput alone can result in
frequent switching between the power save and non-power save modes. If this is not beneficial, the <tx_hysteresis>
parameter can used to make the module re-enter the power save mode only when the throughput falls below the
difference between the <tx_threshold> and <tx_hysteresis> values. The value is in Mbps and minimum value is 0
Mbps. This parameter should be assigned a value which is less than the value assigned to the <tx_threshold>
parameter.
• <rx_hysteresis>: The decision to enter or exit power save mode based on the Receive throughput which alone can
result in frequent switching between the power save and non-power save modes. If this is not beneficial, the
<rx_hysteresis> parameter can be used to make the module re-enter the power save mode only when the throughput
falls below the difference between the <rx_threshold> and <rx_hysteresis> values. The value is in Mbps and minimum
value is 0 Mbps. This parameter should be assigned a value which is less than the value assigned to the
<rx_threshold> parameter.
• <monitor_interval>: This parameter specifies the duration (in milliseconds) over which the Transmit and Receive
throughputs are computed to compare with the <tx_threshold>, <rx_threshold>, <tx_hysteresis> and <rx_hysteresis>
values. The maximum value of this parameter is 30000 ms (30 seconds).
• <sleep_duration>: This parameter specifies the duration (in milliseconds) for which the module sleeps in the Deep
Sleep mode. For LP mode, a value of 0 for the <sleep_duration> parameter programs the module to be in Deep Sleep
mode indefinitely till it is woken up by the Host processor via the host interface. The value of 0 is invalid for ULP mode
and should not be used. The maximum value for this parameter can be 65535.
• <listen_interval_duration>: This parameter specifies the duration (in milliseconds) for which the module sleeps in the
connected state power save modes. If a non-zero value is assigned to this parameter it takes precedence over the