From 1033b6bcf5a60a485eb0199ff2c2f366bf147b32 Mon Sep 17 00:00:00 2001 From: "Pamidipati, Vijay" Date: Mon, 19 Jun 2017 10:15:35 +0530 Subject: [PATCH 1/3] qcacmn: Increase Tx descriptor pool size to meet single client peak KPIs Current Tx Descriptor pool size is tuned for emulation; Increase the pool size to 16K to ensure peak performance in DL for TCP and UDP. Change-Id: Ifc253d01a8f2b083a8ca4239611f1209726d7af5 CRs-Fixed: 2004658 --- wlan_cfg/wlan_cfg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index 72a6a341af..9c1ab31fbe 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -38,8 +38,6 @@ #define RXDMA_MONITOR_DEST_RING_SIZE 2048 #define RXDMA_MONITOR_STATUS_RING_SIZE 2048 -#define WLAN_CFG_NUM_TX_DESC 1024 -#define WLAN_CFG_NUM_TX_EXT_DESC 1024 #ifdef TX_PER_PDEV_DESC_POOL #define WLAN_CFG_NUM_TX_DESC_POOL MAX_PDEV_CNT @@ -82,10 +80,14 @@ #define WLAN_CFG_PER_PDEV_RX_RING 0 #define NUM_RXDMA_RINGS_PER_PDEV 2 #define WLAN_LRO_ENABLE 1 +#define WLAN_CFG_NUM_TX_DESC 1024 +#define WLAN_CFG_NUM_TX_EXT_DESC 1024 #else #define WLAN_CFG_PER_PDEV_RX_RING 1 #define NUM_RXDMA_RINGS_PER_PDEV 1 #define WLAN_LRO_ENABLE 0 +#define WLAN_CFG_NUM_TX_DESC (16 << 10) +#define WLAN_CFG_NUM_TX_EXT_DESC (8 << 10) #endif #ifdef WLAN_RX_HASH From a46056182a7c3a235f362eb5d42376eb6b17e164 Mon Sep 17 00:00:00 2001 From: Sravan Kumar Kairam Date: Fri, 17 Feb 2017 16:31:09 +0530 Subject: [PATCH 2/3] qcacmn: Add support to log IP addr of the wow wakeup packet Add support to log the IP header source and destination address for the first Rx packet received after host wakeup. Change-Id: Ie8cf71c8ce913378687ad2c79ab9d5f46c0c2419 CRs-Fixed: 1106593 --- qdf/inc/qdf_nbuf.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index cef0e0f14b..37aa4e3faa 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -212,9 +212,11 @@ struct mon_rx_status { #define ARP_REQUEST (1) #define ARP_RESPONSE (2) -/* IPV4 Related Mask */ +/* IPV4 header fields offset values */ #define IPV4_PKT_LEN_OFFSET 16 #define IPV4_TCP_SEQ_NUM_OFFSET 38 +#define IPV4_SRC_ADDR_OFFSET 26 +#define IPV4_DST_ADDR_OFFSET 30 #define IPV4_SRC_PORT_OFFSET 34 #define IPV4_DST_PORT_OFFSET 36 @@ -224,9 +226,14 @@ struct mon_rx_status { #define ICMP_REQUEST 0x08 #define ICMP_RESPONSE 0x00 -/* IPV6 Related Mask */ +#define IPV6_ADDR_STR "%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:"\ + "%02x%02x:%02x%02x" + +/* IPV6 header fields offset values */ #define IPV6_PKT_LEN_OFFSET 18 #define IPV6_TCP_SEQ_NUM_OFFSET 58 +#define IPV6_SRC_ADDR_OFFSET 22 +#define IPV6_DST_ADDR_OFFSET 38 #define IPV6_SRC_PORT_OFFSET 54 #define IPV6_DST_PORT_OFFSET 56 From 5d6386f288946cdab5228d628194bb6a3f68d065 Mon Sep 17 00:00:00 2001 From: Mohit Khanna Date: Mon, 17 Apr 2017 16:24:05 -0700 Subject: [PATCH 3/3] qcacmn: Fix core_ctl_set_boost "off" ref count In current implementation, we may call core_ctl_set_boost(false) even if its already been turned off an a previous occasion. This leads to excessive prints in the kmsg "Error turning off boost. Boost already turned off" Fix the ref_count such that we donot call the API to turn core_ctl_set_boost "off", if it is already off. CRs-Fixed: 2034738 Change-Id: I6e0760c9e6778087f8de6e5329bcaf110c7b264b --- hif/src/hif_napi.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/hif/src/hif_napi.c b/hif/src/hif_napi.c index 499c7fc726..36f6a4ce5e 100644 --- a/hif/src/hif_napi.c +++ b/hif/src/hif_napi.c @@ -1559,14 +1559,15 @@ int hif_napi_cpu_blacklist(struct qca_napi_data *napid, } break; case BLACKLIST_OFF: - if (ref_count) + if (ref_count) { ref_count--; - rc = 0; - if (ref_count == 0) { - rc = hif_napi_core_ctl_set_boost(false); - NAPI_DEBUG("boost_off() returns %d - refcnt=%d", - rc, ref_count); - hif_napi_bl_irq(napid, false); + rc = 0; + if (ref_count == 0) { + rc = hif_napi_core_ctl_set_boost(false); + NAPI_DEBUG("boost_off() returns %d - refcnt=%d", + rc, ref_count); + hif_napi_bl_irq(napid, false); + } } break; default: