|
@@ -2097,6 +2097,9 @@ static void wlan_hdd_update_queue_oper_stats(struct hdd_adapter *adapter,
|
|
|
switch (action) {
|
|
|
case WLAN_STOP_ALL_NETIF_QUEUE:
|
|
|
case WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER:
|
|
|
+ case WLAN_NETIF_BE_BK_QUEUE_OFF:
|
|
|
+ case WLAN_NETIF_VI_QUEUE_OFF:
|
|
|
+ case WLAN_NETIF_VO_QUEUE_OFF:
|
|
|
case WLAN_NETIF_PRIORITY_QUEUE_OFF:
|
|
|
case WLAN_STOP_NON_PRIORITY_QUEUE:
|
|
|
adapter->queue_oper_stats[reason].pause_count++;
|
|
@@ -2104,6 +2107,8 @@ static void wlan_hdd_update_queue_oper_stats(struct hdd_adapter *adapter,
|
|
|
case WLAN_START_ALL_NETIF_QUEUE:
|
|
|
case WLAN_WAKE_ALL_NETIF_QUEUE:
|
|
|
case WLAN_START_ALL_NETIF_QUEUE_N_CARRIER:
|
|
|
+ case WLAN_NETIF_VI_QUEUE_ON:
|
|
|
+ case WLAN_NETIF_VO_QUEUE_ON:
|
|
|
case WLAN_NETIF_PRIORITY_QUEUE_ON:
|
|
|
case WLAN_WAKE_NON_PRIORITY_QUEUE:
|
|
|
adapter->queue_oper_stats[reason].unpause_count++;
|
|
@@ -2306,6 +2311,52 @@ void wlan_hdd_netif_queue_control(struct hdd_adapter *adapter,
|
|
|
spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
break;
|
|
|
|
|
|
+ case WLAN_NETIF_BE_BK_QUEUE_OFF:
|
|
|
+ spin_lock_bh(&adapter->pause_map_lock);
|
|
|
+ netif_stop_subqueue(adapter->dev, HDD_LINUX_AC_BK);
|
|
|
+ netif_stop_subqueue(adapter->dev, HDD_LINUX_AC_BE);
|
|
|
+ wlan_hdd_update_txq_timestamp(adapter->dev);
|
|
|
+ wlan_hdd_update_unpause_time(adapter);
|
|
|
+ adapter->pause_map |= (1 << reason);
|
|
|
+ spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case WLAN_NETIF_VI_QUEUE_OFF:
|
|
|
+ spin_lock_bh(&adapter->pause_map_lock);
|
|
|
+ netif_stop_subqueue(adapter->dev, HDD_LINUX_AC_VI);
|
|
|
+ wlan_hdd_update_txq_timestamp(adapter->dev);
|
|
|
+ wlan_hdd_update_unpause_time(adapter);
|
|
|
+ adapter->pause_map |= (1 << reason);
|
|
|
+ spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case WLAN_NETIF_VI_QUEUE_ON:
|
|
|
+ spin_lock_bh(&adapter->pause_map_lock);
|
|
|
+ temp_map = adapter->pause_map;
|
|
|
+ adapter->pause_map &= ~(1 << reason);
|
|
|
+ netif_wake_subqueue(adapter->dev, HDD_LINUX_AC_VI);
|
|
|
+ wlan_hdd_update_pause_time(adapter, temp_map);
|
|
|
+ spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case WLAN_NETIF_VO_QUEUE_OFF:
|
|
|
+ spin_lock_bh(&adapter->pause_map_lock);
|
|
|
+ netif_stop_subqueue(adapter->dev, HDD_LINUX_AC_VO);
|
|
|
+ wlan_hdd_update_txq_timestamp(adapter->dev);
|
|
|
+ wlan_hdd_update_unpause_time(adapter);
|
|
|
+ adapter->pause_map |= (1 << reason);
|
|
|
+ spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case WLAN_NETIF_VO_QUEUE_ON:
|
|
|
+ spin_lock_bh(&adapter->pause_map_lock);
|
|
|
+ temp_map = adapter->pause_map;
|
|
|
+ adapter->pause_map &= ~(1 << reason);
|
|
|
+ netif_wake_subqueue(adapter->dev, HDD_LINUX_AC_VO);
|
|
|
+ wlan_hdd_update_pause_time(adapter, temp_map);
|
|
|
+ spin_unlock_bh(&adapter->pause_map_lock);
|
|
|
+ break;
|
|
|
+
|
|
|
case WLAN_START_ALL_NETIF_QUEUE:
|
|
|
spin_lock_bh(&adapter->pause_map_lock);
|
|
|
temp_map = adapter->pause_map;
|