Преглед на файлове

qcacld-3.0: Update IPA uC TXRX stats to SAP adapter stats

Update the queried IPA uC TXRX stats to SAP adapter netdev stats.

Change-Id: I34ded780e6cbeba827c6d06b45720ee16c6be231
CRs-Fixed: 2234379
Sravan Kumar Kairam преди 7 години
родител
ревизия
86fce778a0
променени са 2 файла, в които са добавени 18 реда и са изтрити 3 реда
  1. 9 2
      core/hdd/src/wlan_hdd_ipa.c
  2. 9 1
      core/hdd/src/wlan_hdd_main.c

+ 9 - 2
core/hdd/src/wlan_hdd_ipa.c

@@ -382,8 +382,15 @@ void hdd_ipa_send_skb_to_network(qdf_nbuf_t skb, qdf_netdev_t dev)
 	cpu_index = wlan_hdd_get_cpu();
 
 	++adapter->hdd_stats.tx_rx_stats.rx_packets[cpu_index];
-	++adapter->stats.rx_packets;
-	adapter->stats.rx_bytes += skb->len;
+
+	/*
+	 * Update STA RX exception packet stats.
+	 * For SAP as part of IPA HW stats are updated.
+	 */
+	if (adapter->device_mode == QDF_STA_MODE) {
+		++adapter->stats.rx_packets;
+		adapter->stats.rx_bytes += skb->len;
+	}
 
 	result = hdd_ipa_aggregated_rx_ind(skb);
 	if (result == NET_RX_SUCCESS)

+ 9 - 1
core/hdd/src/wlan_hdd_main.c

@@ -7192,7 +7192,7 @@ static void hdd_bus_bw_work_handler(struct work_struct *work)
 {
 	struct hdd_context *hdd_ctx = container_of(work, struct hdd_context,
 					bus_bw_work);
-	struct hdd_adapter *adapter = NULL;
+	struct hdd_adapter *adapter = NULL, *con_sap_adapter = NULL;
 	uint64_t tx_packets = 0, rx_packets = 0;
 	uint64_t fwd_tx_packets = 0, fwd_rx_packets = 0;
 	uint64_t fwd_tx_packets_diff = 0, fwd_rx_packets_diff = 0;
@@ -7253,6 +7253,9 @@ static void hdd_bus_bw_work_handler(struct work_struct *work)
 			}
 		}
 
+		if (adapter->device_mode == QDF_SAP_MODE)
+			con_sap_adapter = adapter;
+
 		total_rx += adapter->stats.rx_packets;
 		total_tx += adapter->stats.tx_packets;
 
@@ -7280,6 +7283,11 @@ static void hdd_bus_bw_work_handler(struct work_struct *work)
 		tx_packets += (uint64_t)ipa_tx_packets;
 		rx_packets += (uint64_t)ipa_rx_packets;
 
+		if (con_sap_adapter) {
+			con_sap_adapter->stats.tx_packets += ipa_tx_packets;
+			con_sap_adapter->stats.rx_packets += ipa_rx_packets;
+		}
+
 		ucfg_ipa_set_perf_level(hdd_ctx->hdd_pdev, tx_packets, rx_packets);
 		ucfg_ipa_uc_stat_request(hdd_ctx->hdd_pdev, 2);
 	}