|
@@ -1865,15 +1865,23 @@ static inline uint8_t wma_is_user_set_li_params(struct wma_txrx_node *iface)
|
|
void wma_set_suspend_dtim(tp_wma_handle wma)
|
|
void wma_set_suspend_dtim(tp_wma_handle wma)
|
|
{
|
|
{
|
|
uint8_t i;
|
|
uint8_t i;
|
|
|
|
+ bool li_offload_support = false;
|
|
|
|
|
|
if (NULL == wma) {
|
|
if (NULL == wma) {
|
|
WMA_LOGE("%s: wma is NULL", __func__);
|
|
WMA_LOGE("%s: wma is NULL", __func__);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (WMI_SERVICE_EXT_IS_ENABLED(wma->wmi_service_bitmap,
|
|
|
|
+ wma->wmi_service_ext_bitmap,
|
|
|
|
+ WMI_SERVICE_LISTEN_INTERVAL_OFFLOAD_SUPPORT)) {
|
|
|
|
+ WMA_LOGD("%s: listen interval support is enabled", __func__);
|
|
|
|
+ li_offload_support = true;
|
|
|
|
+ }
|
|
|
|
|
|
for (i = 0; i < wma->max_bssid; i++) {
|
|
for (i = 0; i < wma->max_bssid; i++) {
|
|
if (wma->interfaces[i].handle) {
|
|
if (wma->interfaces[i].handle) {
|
|
- if (!wma_is_user_set_li_params(&wma->interfaces[i]))
|
|
|
|
|
|
+ if (!wma_is_user_set_li_params(&wma->interfaces[i]) &&
|
|
|
|
+ !li_offload_support)
|
|
wma_set_vdev_suspend_dtim(wma, i);
|
|
wma_set_vdev_suspend_dtim(wma, i);
|
|
wma_configure_vdev_suspend_params(wma, i);
|
|
wma_configure_vdev_suspend_params(wma, i);
|
|
}
|
|
}
|
|
@@ -1976,15 +1984,23 @@ static void wma_set_vdev_resume_dtim(tp_wma_handle wma, uint8_t vdev_id)
|
|
void wma_set_resume_dtim(tp_wma_handle wma)
|
|
void wma_set_resume_dtim(tp_wma_handle wma)
|
|
{
|
|
{
|
|
uint8_t i;
|
|
uint8_t i;
|
|
|
|
+ bool li_offload_support = false;
|
|
|
|
|
|
if (NULL == wma) {
|
|
if (NULL == wma) {
|
|
WMA_LOGE("%s: wma is NULL", __func__);
|
|
WMA_LOGE("%s: wma is NULL", __func__);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (WMI_SERVICE_EXT_IS_ENABLED(wma->wmi_service_bitmap,
|
|
|
|
+ wma->wmi_service_ext_bitmap,
|
|
|
|
+ WMI_SERVICE_LISTEN_INTERVAL_OFFLOAD_SUPPORT)) {
|
|
|
|
+ WMA_LOGD("%s: listen interval support is enabled", __func__);
|
|
|
|
+ li_offload_support = true;
|
|
|
|
+ }
|
|
|
|
|
|
for (i = 0; i < wma->max_bssid; i++) {
|
|
for (i = 0; i < wma->max_bssid; i++) {
|
|
if (wma->interfaces[i].handle) {
|
|
if (wma->interfaces[i].handle) {
|
|
- if (!wma_is_user_set_li_params(&wma->interfaces[i]))
|
|
|
|
|
|
+ if (!wma_is_user_set_li_params(&wma->interfaces[i]) &&
|
|
|
|
+ !li_offload_support)
|
|
wma_set_vdev_resume_dtim(wma, i);
|
|
wma_set_vdev_resume_dtim(wma, i);
|
|
wma_configure_vdev_resume_params(wma, i);
|
|
wma_configure_vdev_resume_params(wma, i);
|
|
}
|
|
}
|