qcacld-3.0: Remove per vdev tx descriptor pool
Remove per vdev tx descriptor pool feature as it is applicable only for High Latency. CRs-Fixed: 916724 Change-Id: I22ab3dd187518790694356bdde8475b194845bf5
This commit is contained in:
14
Kbuild
14
Kbuild
@@ -164,15 +164,6 @@ ifeq ($(CONFIG_ROME_IF),usb)
|
|||||||
CONFIG_ATH_11AC_TXCOMPACT := 0
|
CONFIG_ATH_11AC_TXCOMPACT := 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#Enable per vdev Tx desc pool
|
|
||||||
ifeq ($(CONFIG_ROME_IF),pci)
|
|
||||||
CONFIG_PER_VDEV_TX_DESC_POOL := 0
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_ROME_IF),usb)
|
|
||||||
CONFIG_PER_VDEV_TX_DESC_POOL := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#Enable OS specific IRQ abstraction
|
#Enable OS specific IRQ abstraction
|
||||||
CONFIG_ATH_SUPPORT_SHARED_IRQ := 1
|
CONFIG_ATH_SUPPORT_SHARED_IRQ := 1
|
||||||
|
|
||||||
@@ -1072,11 +1063,6 @@ ifeq ($(CONFIG_ATH_11AC_TXCOMPACT), 1)
|
|||||||
CDEFINES += -DATH_11AC_TXCOMPACT
|
CDEFINES += -DATH_11AC_TXCOMPACT
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#Enable per vdev Tx desc pool
|
|
||||||
ifeq ($(CONFIG_PER_VDEV_TX_DESC_POOL), 1)
|
|
||||||
CDEFINES += -DCONFIG_PER_VDEV_TX_DESC_POOL
|
|
||||||
endif
|
|
||||||
|
|
||||||
#Enable OS specific IRQ abstraction
|
#Enable OS specific IRQ abstraction
|
||||||
ifeq ($(CONFIG_ATH_SUPPORT_SHARED_IRQ), 1)
|
ifeq ($(CONFIG_ATH_SUPPORT_SHARED_IRQ), 1)
|
||||||
CDEFINES += -DATH_SUPPORT_SHARED_IRQ
|
CDEFINES += -DATH_SUPPORT_SHARED_IRQ
|
||||||
|
|||||||
@@ -127,14 +127,6 @@ struct ol_tx_desc_t *ol_tx_desc_alloc(struct ol_txrx_pdev_t *pdev,
|
|||||||
ol_tx_desc_compute_delay(tx_desc);
|
ol_tx_desc_compute_delay(tx_desc);
|
||||||
}
|
}
|
||||||
cdf_spin_unlock_bh(&pdev->tx_mutex);
|
cdf_spin_unlock_bh(&pdev->tx_mutex);
|
||||||
if (!tx_desc)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
tx_desc->vdev = vdev;
|
|
||||||
cdf_atomic_inc(&vdev->tx_desc_count);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return tx_desc;
|
return tx_desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,19 +243,6 @@ void ol_tx_desc_free(struct ol_txrx_pdev_t *pdev, struct ol_tx_desc_t *tx_desc)
|
|||||||
ol_tx_desc_reset_timestamp(tx_desc);
|
ol_tx_desc_reset_timestamp(tx_desc);
|
||||||
|
|
||||||
ol_tx_put_desc_global_pool(pdev, tx_desc);
|
ol_tx_put_desc_global_pool(pdev, tx_desc);
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
|
|
||||||
if ((cdf_atomic_read(&tx_desc->vdev->os_q_paused)) &&
|
|
||||||
(cdf_atomic_read(&tx_desc->vdev->tx_desc_count) <
|
|
||||||
TXRX_HL_TX_FLOW_CTRL_VDEV_LOW_WATER_MARK)) {
|
|
||||||
/* wakeup netif_queue */
|
|
||||||
cdf_atomic_set(&tx_desc->vdev->os_q_paused, 0);
|
|
||||||
ol_txrx_flow_control_cb(tx_desc->vdev, true);
|
|
||||||
}
|
|
||||||
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
|
||||||
cdf_atomic_dec(&tx_desc->vdev->tx_desc_count);
|
|
||||||
tx_desc->vdev = NULL;
|
|
||||||
#endif
|
|
||||||
cdf_spin_unlock_bh(&pdev->tx_mutex);
|
cdf_spin_unlock_bh(&pdev->tx_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -965,9 +965,6 @@ ol_txrx_vdev_attach(ol_txrx_pdev_handle pdev,
|
|||||||
vdev->safemode = 0;
|
vdev->safemode = 0;
|
||||||
vdev->drop_unenc = 1;
|
vdev->drop_unenc = 1;
|
||||||
vdev->num_filters = 0;
|
vdev->num_filters = 0;
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
cdf_atomic_init(&vdev->tx_desc_count);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
cdf_mem_copy(&vdev->mac_addr.raw[0], vdev_mac_addr,
|
cdf_mem_copy(&vdev->mac_addr.raw[0], vdev_mac_addr,
|
||||||
OL_TXRX_MAC_ADDR_LEN);
|
OL_TXRX_MAC_ADDR_LEN);
|
||||||
|
|||||||
@@ -39,10 +39,6 @@ void ol_txrx_peer_unref_delete(struct ol_txrx_peer_t *peer);
|
|||||||
#define OL_TX_AVG_FRM_BYTES 1000
|
#define OL_TX_AVG_FRM_BYTES 1000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PER_VDEV_TX_DESC_POOL
|
|
||||||
#define TXRX_HL_TX_FLOW_CTRL_VDEV_LOW_WATER_MARK 400
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ol_txrx_get_vdev_from_vdev_id() - get vdev from vdev_id
|
* ol_txrx_get_vdev_from_vdev_id() - get vdev from vdev_id
|
||||||
* @vdev_id: vdev_id
|
* @vdev_id: vdev_id
|
||||||
|
|||||||
@@ -162,9 +162,6 @@ struct ol_tx_desc_t {
|
|||||||
after tx complete */
|
after tx complete */
|
||||||
uint8_t orig_l2_hdr_bytes;
|
uint8_t orig_l2_hdr_bytes;
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
struct ol_txrx_vdev_t *vdev;
|
|
||||||
#endif
|
|
||||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||||
struct ol_tx_flow_pool_t *pool;
|
struct ol_tx_flow_pool_t *pool;
|
||||||
#endif
|
#endif
|
||||||
@@ -852,10 +849,6 @@ struct ol_txrx_vdev_t {
|
|||||||
cdf_spinlock_t flow_control_lock;
|
cdf_spinlock_t flow_control_lock;
|
||||||
ol_txrx_tx_flow_control_fp osif_flow_control_cb;
|
ol_txrx_tx_flow_control_fp osif_flow_control_cb;
|
||||||
void *osif_fc_ctx;
|
void *osif_fc_ctx;
|
||||||
|
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
cdf_atomic_t tx_desc_count;
|
|
||||||
#endif
|
|
||||||
uint16_t wait_on_peer_id;
|
uint16_t wait_on_peer_id;
|
||||||
cdf_event_t wait_delete_comp;
|
cdf_event_t wait_delete_comp;
|
||||||
#if defined(FEATURE_TSO)
|
#if defined(FEATURE_TSO)
|
||||||
|
|||||||
@@ -148,30 +148,6 @@ void hdd_softap_tx_resume_cb(void *adapter_context, bool tx_resume)
|
|||||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||||
WLAN_DATA_FLOW_CONTROL);
|
WLAN_DATA_FLOW_CONTROL);
|
||||||
}
|
}
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
else if (false == tx_resume) { /* Pause TX */
|
|
||||||
hddLog(LOG1, FL("Disabling queues"));
|
|
||||||
wlan_hdd_netif_queue_control(pAdapter,
|
|
||||||
WLAN_STOP_ALL_NETIF_QUEUE,
|
|
||||||
WLAN_DATA_FLOW_CONTROL);
|
|
||||||
if (CDF_TIMER_STATE_STOPPED ==
|
|
||||||
cdf_mc_timer_get_current_state(&pAdapter->
|
|
||||||
tx_flow_control_timer)) {
|
|
||||||
CDF_STATUS status;
|
|
||||||
status =
|
|
||||||
cdf_mc_timer_start(&pAdapter->tx_flow_control_timer,
|
|
||||||
WLAN_SAP_HDD_TX_FLOW_CONTROL_OS_Q_BLOCK_TIME);
|
|
||||||
if (!CDF_IS_STATUS_SUCCESS(status))
|
|
||||||
CDF_TRACE(CDF_MODULE_ID_HDD,
|
|
||||||
CDF_TRACE_LEVEL_ERROR,
|
|
||||||
"%s: Failed to start tx_flow_control_timer",
|
|
||||||
__func__);
|
|
||||||
else
|
|
||||||
pAdapter->hdd_stats.hddTxRxStats.txflow_timer_cnt++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
||||||
|
|||||||
@@ -142,32 +142,6 @@ void hdd_tx_resume_cb(void *adapter_context, bool tx_resume)
|
|||||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||||
WLAN_DATA_FLOW_CONTROL);
|
WLAN_DATA_FLOW_CONTROL);
|
||||||
}
|
}
|
||||||
#if defined(CONFIG_PER_VDEV_TX_DESC_POOL)
|
|
||||||
else if (false == tx_resume) { /* Pause TX */
|
|
||||||
hddLog(LOG1, FL("Disabling queues"));
|
|
||||||
wlan_hdd_netif_queue_control(pAdapter,
|
|
||||||
WLAN_STOP_ALL_NETIF_QUEUE,
|
|
||||||
WLAN_DATA_FLOW_CONTROL);
|
|
||||||
if (CDF_TIMER_STATE_STOPPED ==
|
|
||||||
cdf_mc_timer_get_current_state(&pAdapter->
|
|
||||||
tx_flow_control_timer)) {
|
|
||||||
CDF_STATUS status;
|
|
||||||
status =
|
|
||||||
cdf_mc_timer_start(&pAdapter->tx_flow_control_timer,
|
|
||||||
WLAN_HDD_TX_FLOW_CONTROL_OS_Q_BLOCK_TIME);
|
|
||||||
if (!CDF_IS_STATUS_SUCCESS(status))
|
|
||||||
CDF_TRACE(CDF_MODULE_ID_HDD,
|
|
||||||
CDF_TRACE_LEVEL_ERROR,
|
|
||||||
"%s: Failed to start tx_flow_control_timer",
|
|
||||||
__func__);
|
|
||||||
else
|
|
||||||
pAdapter->hdd_stats.hddTxRxStats.txflow_timer_cnt++;
|
|
||||||
}
|
|
||||||
pAdapter->hdd_stats.hddTxRxStats.txflow_pause_cnt++;
|
|
||||||
pAdapter->hdd_stats.hddTxRxStats.is_txflow_paused = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user